Intégration OIDC
Ascencia ID parle OAuth 2.1 et OpenID Connect. Si ta bibliothèque connaît la découverte automatique, une seule URL suffit.
Découverte
Pointe ton client sur cette adresse : il y trouvera tout le reste, sans que tu aies à écrire une seule URL à la main.
https://id.ascencia.re/.well-known/openid-configurationC'est ce document qui fait foi. La page que tu lis en est la version commentée ; en cas de divergence, croyez le document.
Points d’entrée
Ce qui est imposé, et pourquoi
- Flux
- authorization_coderefresh_tokenclient_credentials
- PKCE
- obligatoire, S256
- Signature des jetons
- ES256
- Mode de réponse
- query
- Déconnexion propagée
- back-channel logout pris en charge
Les flux implicit et password ne sont pas supportés et ne le seront pas : OAuth 2.1 les a retirés. plain n'est pas accepté pour PKCE — il n'apporte aucune protection.
Un seul mode de réponse est annoncé, parce qu'un seul est implémenté. En annoncer davantage serait un piège : un client qui demande form_post — précisément pour que son code ne traîne ni dans l'URL, ni dans l'historique, ni dans un Referer — le recevrait quand même en query, sans le savoir.
Scopes
- openid
- Obligatoire. Donne l’identifiant du compte.
- profile
- Nom affiché et avatar.
- Adresse e-mail et son état de vérification.
- offline_access
- Jeton de rafraîchissement, pour rester connecté.
- ascencia.roles
- Les rôles du compte sur VOTRE application.
- ascencia.perms
- Les permissions qui en découlent, déjà résolues.
- ascencia.membership
- Le profil du compte sur ton application.
Les trois scopes ascencia.* évitent à ton application de réimplémenter une gestion de rôles : tu reçois les rôles et les permissions déjà résolus pour le compte, sur ton application, dans le jeton.
Obtenir un client_id
Les applications sont enregistrées depuis la console d'administration : il n'y a pas d'auto-inscription. Le type choisi à la création décide du reste — présence d'un secret, flux autorisés, code d'intégration proposé.
Une fois l'application créée, la console affiche l'extrait prêt à coller pour Next.js, SvelteKit, PHP ou le widget. Le client_secret n'est montré qu'une seule fois : il est stocké haché, personne ne peut le relire.