Intégration OIDC
DTZ Identity est un fournisseur OpenID Connect (OIDC) conforme aux standards. Tout service qui prend en charge OIDC peut déléguer l’authentification à DTZ, permettant à vos utilisateurs de se connecter avec leurs identifiants DTZ existants.
Prérequis
- Un compte DTZ et au moins un contexte (
context-{id}) - Un service ou une application qui prend en charge OIDC / le flux d’autorisation OAuth 2.0 (authorization code)
Point de découverte
DTZ publie un document de découverte OIDC standard :
https://identity.dtz.rocks/.well-known/openid-configuration
La plupart des bibliothèques clientes OIDC acceptent une URL d’issuer et récupèrent automatiquement ce document pour se configurer. Définissez l’issuer sur https://identity.dtz.rocks et laissez la bibliothèque gérer la découverte des endpoints.
Identifiants client
DTZ utilise l’ID de contexte comme client_id et client_secret. Aucune inscription d’application séparée n’est requise.
| Paramètre | Valeur |
|---|---|
client_id |
Votre ID de contexte, ex. context-abc123 |
client_secret |
Même ID de contexte |
issuer |
https://identity.dtz.rocks |
Référence de configuration
Les variables d’environnement suivantes illustrent une intégration typique :
OIDC_ISSUER=https://identity.dtz.rocks
OIDC_CLIENT_ID={YOUR_CONTEXT_ID}
OIDC_CLIENT_SECRET={YOUR_CONTEXT_ID}
OIDC_REDIRECT_URI=https://yourapp.example.com/login
Les noms de variables diffèrent selon les bibliothèques et frameworks ; ce sont les valeurs ci‑dessus qui comptent.
Claims du jeton ID
Après un échange de jetons réussi, le jeton ID et l’endpoint userinfo renvoient les claims suivants :
| Claim | Valeur exemple | Description |
|---|---|---|
sub |
identity-12345678 |
Identifiant unique de l’identité |
iss |
dtz.rocks |
Émetteur du jeton — toujours dtz.rocks pour les jetons émis par DTZ |
contexts |
["abc124"] |
IDs de contexte auxquels l’utilisateur appartient |
roles |
["https://dtz.rocks/context/admin/abc123"] |
URIs de rôles concrets assignés à l’utilisateur |
Contrôle d’accès via les claims
Utilisez les valeurs des claims pour restreindre qui peut accéder à votre service après une connexion OIDC réussie.
Restreindre à tout utilisateur DTZ — vérifiez que iss est égal à dtz.rocks :
OIDC_ALLOWED_CLAIM=iss
OIDC_ALLOWED_VALUES=dtz.rocks
Restreindre aux utilisateurs d’un contexte spécifique — vérifiez le tableau contexts :
OIDC_ALLOWED_CLAIM=scope
OIDC_ALLOWED_VALUES={YOUR_CONTEXT_ID}}
Restreindre aux utilisateurs avec un rôle spécifique — vérifiez le tableau roles pour une URI de rôle concrète.
Le mécanisme exact d’évaluation de ces vérifications dépend de votre bibliothèque OIDC ou de votre middleware.
Flux d’autorisation (authorization code)
- Rediriger l’utilisateur non authentifié vers l’endpoint d’autorisation DTZ (résolu via la découverte).
- L’utilisateur s’authentifie sur
https://identity.dtz.rocks. Les utilisateurs déjà connectés sont redirigés immédiatement. - Échanger le code d’autorisation retourné contre des jetons au niveau de l’endpoint token.
- Valider le claim
issdu jeton ID et tout claim supplémentaire de contrôle d’accès. - Accorder ou refuser l’accès en fonction de votre politique de claims.
Point de terminaison userinfo
GET https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo
Authorization: Bearer <access_token>
Renvoie les mêmes claims que le jeton ID. Utilisez cet endpoint lorsque vous devez récupérer à nouveau des valeurs de claims à jour après la connexion initiale.
Articles connexes
- Aperçu d’OAuth 2 — comment DTZ implémente le flux d’autorisation par code
- Rôles — comprendre les rôles concrets et abstraits
- Aperçu de l’identité — contextes, identités et contrôle d’accès