Portail des développeurs et jetons d'accès
1) Le rôle du portail des développeurs
Developer Portal est un « front office » pour les intégrateurs : libre-service (clés, jetons, webhooks, plans tarifaires), transparence (limites, utilisation, factures), sécurité (rotation, signatures), vitesse d'intégration (SDK, documentation, bac à sable).
Objectifs clés :- Réduire le TTI (time-to-integrate) à des heures.
- Donner la gérabilité de l'accès : qui/quoi/combien/quand.
- Réduire la charge de travail sur le support par le biais d'outils automatiques.
2) Onbording et comptes
Inscription : email + 2FA/SSO (SAML/OIDC) ; Confirmation de domaine (token DNS).
Organisations et équipes : rôles 'Owner', 'Admin', 'Developer', 'Billing', 'Security'.
Multi-tenant : lier les applications aux organisations ; l'accès aux données est par tenant/environnement.
KYC/B2B (opz.) : pour Enterprise - entité juridique, contrat, limites supérieures.
3) Annexes et credenshels
Types d'applications : 'server-to-server', 'web', 'mobile', 'machine-to-machine', 'webhook-consumer'.
3. 1 API Keys (server-to-server, intégrations simples)
Identifiant 'key _ id' + secret 'key _ secret' (visible une fois).
Ancrage au plan et aux jeux de scopes.
Signature des requêtes (HMAC) et/ou en-tête 'Autorisation : ApiKey <key_id>:<signature>'.
3. 2 OAuth2/OIDC (recommandé)
Subventions :- Client Credentials (machines).
- Authorization Code (+PKCE) (user-delegated).
- Refresh Token (accès hors ligne, rotation RT).
- Code de périphérique (TV/consoles).
3. 3 mTLS (niveau dopé)
TLS réciproque sur ingress ; les certificats sont téléchargés via le portail ; la liaison 'cert _ fingerprint' à l'application.
4) Tokens : types et cycle de vie
Principes :- Court AT + long RT ; RT est une rotation glissante (rotate-on-use).
- Révocation forcée (revoke) par clé/application/organisation.
- Pere-extradition avec maintien des restrictions sur les scopes/quotas.
4. 1 Format JWT (exemple)
json
{
"iss":"https://auth. example. com",
"sub":"app_123",
"aud":"https://api. example. com",
"exp":1730616000,
"iat":1730612400,
"scp":["wallet:read","bet:write"],
"org":"acme",
"kid":"jwks_2025_11",
"jti":"at_01HXY..."
}
Les clés publiques sont publiées dans le JWKS ; rotation par 'kid'.
4. 2 jetons Opaque et Introduction
Stockez « token _ store » (Redis/SQL) dans le serveur Auth.
Introspection : 'active', 'scope', 'bou', 'client _ id', 'org', 'tenant'.
5) Scopes, rôles et politiques d'accès
Scopes décrivent l'opération (' wallet:read ', ' wallet:write ', ' report:read ').
Les rôles agrégent les scopes (« Developer », « Billing »).
ABAC : attributs 'org', 'tenant', 'région', 'environnement'.
Politiques : « cette clé n'est que 'eu-west-1' et 'read' ».
Step-up : les méthodes critiques nécessitent des scopes étendus ou mTLS.
6) Quotas, limites et tarifs
Rate limits: RPS/RPM, burst.
Quotas : jour/mois, crédits.
Par clé/application/organisation/tenant.
Le portail montre l'utilisation, les titres « X-RateLimit- » et « X-Quot », ainsi que la prévision de l'overage.
Facturation : lien avec le plan, mesure par événement, factures et webhooks de facturation.
7) Gestion des webhooks
Enregistrement des endpoint's, secrets, versions des événements.
Essai-livraison et replay ; logs de tentative (2xx/4xx/5xx).
Signatures HMAC ('X-Signature'), 'X-Webhook-Id', déduplication, respect '410'.
8) Documentation et SDK
OpenAPI/AsyncAPI avec génération auto SDK.
Cookbook : exemples de demandes, retraits, idempotence, pagination, webhooks.
Try-it playground (avec des clés de sable).
Version Changelog et page de dépressions.
9) Sandbox et données de test
Environnements isolés : 'sandbox', 'staging', 'production'.
Entités de test (joueurs, transactions) et scripts (win/lose, retards, 5xx, 429).
Seeding de données à partir du portail et réinitialiser l'environnement.
10) Sécurité et stockage des secrets
Hachage des secrets de l'API Key (ne pas stocker en public) ; Afficher la clé une fois.
Un gestionnaire de secrets (KMS/HSM) pour les jetons de signature ; rotation des clés 'kid'.
IP allowlist, géo-contraintes, filtres ASN.
2FA/SSO, clés matérielles (WebAuthn).
Protection Abyse : CAPTCHA lors de la création, anti-bot heuristique, vitesse d'enregistrement.
Logs sans PII/secrets ; redaction par modèles.
11) Audit et conformité
Audit-log : qui a créé/examiné/retiré la clé, modifié le webhook, téléchargé le rapport.
GDPR/DSAR : déchargement et suppression des données de l'application/organisation.
Stratégies de stockage : TTL pour les logs, Legal Hold en cas d'incident.
Terms of Use/Fair Use et restrictions à l'exportation.
12) Administration et opérations
Rappel massif de tokens par incident/compromission.
Suspension temporaire de l'application (suspend) avec cause et appel.
Roll-over de clés (mode à deux clés : 'active/next').
Incident-com : page de statut, mailings, RSS/webhooks de statut.
13) Portail UI/UX (écrans clés)
Organisation Dashboard : utilisation/erreurs/SLO/facturation.
Application : clés, jetons, scopes, limites, webhooks, environnements.
Logs de livraison de webhooks avec filtres et bouton Replay.
Token Console : sortie/retour, historique, raisons.
Documentation et SDK, Quickstart, exemples de code (copier-coller).
Section « Dépréciation et migration ».
14) Exemples de contrats et de configues
14. 1 OpenAPI (fragments)
yaml paths:
/v1/apps:
post:
summary: Create app security: [{ oauth2: [admin:apps. write] }]
responses:
'201': { description: Created }
/v1/apps/{app_id}/keys:
post:
summary: Create API key (shown once)
responses:
'201': { description: Created }
/v1/oauth2/token:
post:
summary: Token endpoint (CC/AC)
responses:
'200': { description: Access token }
/v1/tokens/revoke:
post:
summary: Revoke access/refresh token responses:
'204': { description: Revoked }
14. 2 Introspection de token (réponse)
json
{
"active": true,
"client_id": "app_123",
"scope": "wallet:read bet:write",
"org": "acme",
"exp": 1730616000,
"token_type": "access_token",
"jti": "at_01HXY..."
}
14. 3 Politique des clés (JSON)
json
{
"app_id":"app_123",
"plan":"pro-2025",
"scopes":["wallet:read","report:read"],
"limits":{"rps":50,"daily_requests":250000},
"regions":["eu-west-1"],
"ip_allow":["192. 0. 2. 0/24"]
}
15) Processus de versioning et de déportation
Versions sémantiques de l'API ('/v1 ', '/v2'), compatibilité « ajoute, ne casse pas ».
Le portail montre : « ce qui est obsolète », jusqu'à quelle date, et « comment migrer ».
Guides de migration, bac à sable 'v2', dual-write/dual-read si possible.
16) Observation et rapport
Utilisation → chiffre d'affaires : graphiques des demandes/crédits/overidges.
Erreurs d'état/' error _ code ', histogrammes de latence.
Widgets SLO : disponibilité et p95 pour stylos clés.
Exportation CSV/JSON, rapports Web, API pour l'analyse.
17) Chèques-feuilles
17. 1 Sécurité
- 2FA/SSO, confirmation de domaine/courrier
- Afficher les secrets une fois, hachage
- JWKS et rotation des clés, 'kid'
- mTLS (opz.) , IP allowlist, filtres geo/ASN
- Anti-bot/anti-abuse, rate-limit sur la création de clés
- Audit-journal des actions et accès
17. 2 DX/Onbording
- Quickstart ≤ 5 minutes
- SDK (TS/Py/Java/Go/.NET) avec la même surface
- Playground + clés de sable
- Cookbook : webhooks, pagination, retrai, idempotentialité
- Page limites/plans/prix
- Exemples de copier-coller
17. 3 Opérations
- Rappel massif de tokens, suspend app
- Page incidents/statut + abonnement
- DLQ/Replay pour webhooks
- Auto-alertes sur l'épuisement proche des quotas
- Rapports mensuels et factures
18) Plan de mise en oeuvre (3 itérations)
Itération 1 - MVP (2-3 semaines) :- Enregistrement org/applications, émission d'API Keys, Client Credentials OAuth2, limites de base (RPS/quotas), logs de requête et graphiques d'utilisation, documentation et SDK TS/Python, bac à sable.
- JWT + JWKS, rotation de clé, Refresh Token + rotate-on-use, 2FA/SSO de mandat, webhooks (signatures, retraits, logging, replay), webhooks de facturation, rapports et exportations, rôles et ABAC.
- mTLS, outils admin (mass revoke/suspend), déprogrammation et migration v2, SDK Java/Go/.NET, dashboards, GDPR/DSAR, Legal Hold, anti-abyse avancée.
19) Mini-FAQ
JWT ou opaque ?
JWT est pratique sans demander au serveur Auth (signature/' kid '), opaque - plus facile à retirer et cache le contenu. Ils utilisent souvent les deux : à l'extérieur JWT, à l'intérieur - opaque avec introspection.
Combien vit Access Token ?
Court : 5-15 minutes pour les personnalisés, 15-60 minutes pour les machines. Compensé par la mécanique refresh.
Comment faire tourner les clés en toute sécurité ?
Gardez 'active/next', publiez les deux dans JWKS, passez les clients à 'kid', puis rappelez l'ancien.
Résultat
Le portail fort des développeurs est le libre-service, l'observation et la sécurité par défaut. Donnez des processus de sortie/rotation/rappel de token compréhensibles, des limites transparentes et de facturation, de la documentation de qualité et des SDK, des webhooks fiables et des audits. Ensuite, les intégrateurs démarrent rapidement et votre plateforme restera gérable, compacte et résistante sous charge.