Intégrer Console ID
Console ID est un fournisseur OpenID Connect. Une organisation admise connecte ses usagers avec leur téléphone, et reçoit ce que chacun accepte de partager.
Découverte
https://auth-id.lavisionit.com/oidc/.well-known/openid-configuration
Les règles
- Code d’autorisation avec PKCE (S256), et rien d’autre.
- Authentification du client par
private_key_jwt(ES256 ou RS256) : vous donnez vos clés publiques, jamais un secret. - Un identifiant (
sub) propre à votre organisation : jamais le même que celui d’une autre. - Les informations du profil se lisent à
userinfo; le jeton d’identité portesub, le niveau (acr), la méthode (amr:sms, oupopetuserpour une clé d’accès) et l’heure de l’authentification (auth_time). - Déconnexion dans les deux sens :
end_session_endpointavecid_token_hintet une adresse de retour enregistrée ; un jeton de déconnexion (back-channel logout) à l’adresse que vous enregistrez, dès que la session de la personne se termine ici. - Requêtes d’autorisation poussées (PAR), réponses signées (JARM,
response_mode=jwt) et jetons liés à une clé (DPoP) : offerts à chaque organisation, exigés d’aucune pour l’instant. - Niveaux (
acr_values) : 0 déclaré, 1 téléphone vérifié, 2 pièce d’identité vérifiée en personne, 3 identité nationale. Leacrd’une connexion est le niveau de la personne plafonné par la façon dont elle s’est connectée : 2 au plus par SMS, 3 seulement avec une clé d’accès (/.well-known/identity-levels). - Chaque partage est enregistré et la personne le voit ; elle peut retirer votre accès à tout moment.
Les informations
| Scope | Informations |
|---|---|
openid | sub, acr, amr, auth_time |
profile | name, given_name, family_name, birthdate, locale, assurance_level |
phone | phone_number, phone_number_verified |
Ce que chaque catégorie peut demander
| Catégorie | Scopes |
|---|---|
| GOVERNMENT | openid profile phone kyc.verify kyc.full person.open |
| HEALTH | openid profile phone kyc.verify person.open |
| EDUCATION | openid profile |
| TELECOM | openid profile phone kyc.verify |
| FINANCE | openid profile phone kyc.verify kyc.full person.open |
| OTHER | openid profile |
Exemple
https://auth-id.lavisionit.com/oidc/auth?client_id=YOUR_CLIENT_ID&response_type=code&scope=openid%20profile&redirect_uri=https%3A%2F%2Fyour.example%2Fcallback&state=STATE&nonce=NONCE&code_challenge=S256_CHALLENGE&code_challenge_method=S256&acr_values=1
curl -X POST https://auth-id.lavisionit.com/oidc/token \ -d grant_type=authorization_code -d code=CODE \ -d redirect_uri=https://your.example/callback -d code_verifier=VERIFIER \ -d client_id=YOUR_CLIENT_ID \ -d client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer \ -d client_assertion=SIGNED_JWT # iss=sub=YOUR_CLIENT_ID, aud=https://auth-id.lavisionit.com/oidc, jti, exp
Vérifier une identité (eKYC)
Une organisation admise aux scopes kyc.verify / kyc.full (catégories administration, finance, santé et télécoms) demande, avec un jeton en son nom (client_credentials), si les informations qu’elle détient sur une personne — qu’elle connaît par son sub — correspondent : POST /kyc/verifications avec subject et, au choix, givenNames, familyName, dateOfBirth, document, minLevel. La personne approuve par SMS (« OUI 4821 ») ; l’organisation interroge GET /kyc/verifications/:id et lit APPROVED avec oui/non par information — jamais la valeur —, ou DENIED / EXPIRED. Trois demandes par personne et par heure. Depuis l’unité 82, l’organisation peut aussi demander en présence de la personne, par le numéro que celle-ci lui donne : number (et countryCode) à la place de subject. La personne approuve de la même façon, et la réponse apporte à l’organisation l’identifiant (subject) sous lequel elle la connaîtra désormais — comme une connexion l’aurait fait. Vingt numéros inconnus par heure, pas plus. Au lieu d’interroger, l’organisation peut recevoir la décision à l’adresse https qu’elle enregistre sur son portail : un POST JSON { id, event: "verification.decided", at, data } (data : ce que l’interrogation aurait répondu), signé X-ConsoleID-Signature: t=…,v1=HMAC-SHA256(secret, t + "." + corps) avec le secret que le portail lui a montré une fois ; six tentatives sur dix minutes, puis l’abandon est consigné.
Être admis
Écrivez à l’opérateur de Console ID avec votre convention de partage de données signée, votre base légale, vos adresses de retour (https, un seul domaine), vos clés publiques (JWKS ou son adresse), les informations demandées et, si vous le souhaitez, vos adresses de déconnexion (retour après déconnexion, back-channel logout). Un administrateur enregistre votre demande et l’approuve selon la politique de votre catégorie.