Le modèle
en six lignes
- Norme
- OpenID Connect
- Flux
- Code d’autorisation avec PKCE (S256)
- Connexion
- Hébergée par Noir ID, clé d’accès en priorité
- Sujet
- Par paire, un par client
- URL de rappel
- Exactes, sans caractère générique
- Autorisations
- Restent dans votre produit
Quel schéma
suit votre application
Application web avec serveur
Votre serveur exécute le flux par code et conserve les jetons. Le navigateur ne détient qu’un cookie de session sécurisé, qui ne signifie rien à lui seul.
Application mobile ou de bureau
Ouvrez la connexion dans le navigateur du système, jamais dans une web view intégrée, et recevez le résultat sur votre URL de rappel enregistrée.
De service à service
Les clients machine utilisent le flux Client Credentials, avec leurs propres jetons de courte durée.
Quatre étapes,
une connexion qui marche
Enregistrez votre client
Envoyez-nous le nom de votre application et ses URL de rappel exactes. Vous recevez un identifiant client (client ID), et un secret si votre application a un serveur.
Envoyez les gens se connecter
Redirigez vers le point de terminaison d’autorisation avec votre identifiant client, l’URL de rappel, le scope, un state aléatoire et un challenge PKCE.
Traitez le retour
Vérifiez le state, échangez le code avec le verifier PKCE et validez le jeton d’identité (ID token) : signature, émetteur, audience et expiration.
Conservez le sujet
Indexez votre fiche utilisateur sur le sujet que renvoie Noir ID. Il reste le même pour votre client et ne signifie rien ailleurs.
À quoi ressemble la requête
Les valeurs entre chevrons sont les vôtres. L’émetteur est https://id.noir.bzh : lisez les points de terminaison dans son document de découverte (discovery) au lieu de les coder en dur.
GET <authorization_endpoint>
?response_type=code
&client_id=<your client id>
&redirect_uri=https://app.example/callback
&scope=openid
&state=<random value>
&code_challenge=<base64url(sha256(verifier))>
&code_challenge_method=S256Ce que Noir ID ne fera pas
- Les flux par mot de passe ou implicite
- Les URL de rappel génériques ou à correspondance partielle
- Une connexion intégrée à votre page ou dans une iframe
- L’enregistrement libre de clients sans revue
- Décider de ce qu’un utilisateur peut faire dans votre produit
Avant la mise en production
- Chaque URL de rappel est enregistrée exactement telle qu’elle est utilisée
- Le state et PKCE sont vérifiés à chaque connexion
- Les jetons d’identité sont validés, pas seulement décodés
- Une connexion échouée est traitée comme une connexion échouée, pas comme une panne
- Vous savez comment migrer vos utilisateurs si vous partiez
Envie d’intégreren avance ?
Dites-nous ce que vous construisez et quel schéma il suit. Les premières intégrations aident à façonner la première version.