Intégration · Guide pratique
OAuth et OIDC
Intégrez le flux par code, PKCE, la découverte standard, les portées et une gestion sûre des jetons.
Krakstack Auth publie les métadonnées OpenID Connect et OAuth et prend en charge le flux par code d'autorisation. Utilisez une bibliothèque OAuth/OIDC maintenue plutôt que d'implémenter manuellement les requêtes et la validation.
Enregistrer un client#
Dans Administration > Clients, configurez :
- Un nom d'affichage reconnaissable
- Des URI de redirection exactes, incluant protocole, hôte, chemin et port
- Les portées minimales :
openid,profile,emailet éventuellementoffline_access - Un projet lié facultatif pour la marque et les options de connexion
Copiez immédiatement l'identifiant et le secret. Le secret n'est affiché qu'une fois et reste dans un coffre serveur. Les clients créés actuellement sont des clients Web confidentiels utilisant client_secret_basic et PKCE obligatoire. Les clients publics et natifs ne sont pas exposés.
Découverte#
Métadonnées OIDC racine : https://auth.example.com/.well-known/openid-configurationMétadonnées OAuth : https://auth.example.com/.well-known/oauth-authorization-server/api/authUtilisez l'issuer, les points d'autorisation et de jeton et l'URI JWKS exacts retournés. L'émetteur Better Auth peut inclure /api/auth; ne configurez pas l'origine seule si les métadonnées indiquent autre chose.
Flux d'autorisation#
- Générez des valeurs aléatoires
state,nonceet un vérificateur PKCE. - Stockez-les dans une session HttpOnly sûre et de courte durée.
- Redirigez vers le point d'autorisation découvert avec
response_type=code. - Comparez
stateau retour avant l'échange du code. - Échangez le code côté serveur et validez l'émetteur, l'audience, la signature, le nonce et l'expiration.
- Créez ou renouvelez la session de l'application.
Règles des URI de redirection#
Les URI de production utilisent HTTPS et une correspondance exacte. Enregistrez localhost séparément pour le développement et retirez les rappels inutilisés.
Jetons#
Conservez les jetons hors de localStorage; préférez une session serveur chiffrée ou des témoins HttpOnly. Demandez offline_access uniquement pour un accès en arrière-plan, renouvelez les jetons de renouvellement et révoquez les identifiants lors de la déconnexion du client.