OAuth 2.0 & OpenID Connect

Utilisez DTZ Identity comme fournisseur OAuth 2.0 et OpenID Connect (OIDC) pour permettre aux utilisateurs de se connecter à vos applications avec leurs comptes DTZ.

Qu’est-ce que OIDC ?

OpenID Connect (OIDC) permet à votre application d’authentifier les utilisateurs via DTZ Identity sans gérer directement les mots de passe. Plutôt que de gérer les identifiants des utilisateurs, vous redirigez ces derniers vers DTZ pour la connexion, puis vous recevez un jeton sécurisé pour accéder à leurs informations.

Parfait pour : les applications web, les applications mobiles ou tout service nécessitant une authentification sécurisée des utilisateurs.

Démarrage rapide

1. Obtenez votre ID de contexte

Dans DTZ, chaque application utilise un « contexte » comme identifiant. Vous aurez besoin d’un context-{uuid} auquel vos utilisateurs ont accès.

Exemple : context-abc123

Note : Dans le système DTZ, votre client_id et votre client_secret sont tous deux le même ID de contexte. Cela simplifie la configuration tout en maintenant la sécurité.

2. Points de terminaison essentiels

Vous n’avez besoin que de ces deux points de terminaison pour commencer :

Objet Point de terminaison
Connexion utilisateur https://identity.dtz.rocks/api/2021-02-21/oauth/authorize
Obtenir le jeton https://identity.dtz.rocks/api/2021-02-21/oauth/token
Informations utilisateur https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo

3. Auto-découverte

La plupart des bibliothèques OAuth peuvent se configurer automatiquement en utilisant le point de terminaison de découverte DTZ :

https://identity.dtz.rocks/.well-known/openid-configuration

Comment ça fonctionne

Étape 1 : Rediriger l’utilisateur vers DTZ

Lorsqu’un utilisateur souhaite se connecter, redirigez-le vers :

https://identity.dtz.rocks/api/2021-02-21/oauth/authorize?
  response_type=code&
  client_id=VOTRE_ID_DE_CONTEXTE&
  redirect_uri=https://votreapp.com/callback&
  scope=openid&
  state=chaine-aleatoire-pour-la-securite

Étape 2 : L’utilisateur se connecte

DTZ gère le processus de connexion :

  • Si déjà connecté → redirection immédiate vers votre application
  • Sinon → affichage du formulaire de connexion, puis redirection

Étape 3 : Échanger le code contre un jeton

DTZ redirige vers votre application avec un code. Échangez-le contre un jeton :

curl -X POST https://identity.dtz.rocks/api/2021-02-21/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=VOTRE_ID_DE_CONTEXTE" \
  -d "client_secret=VOTRE_ID_DE_CONTEXTE" \
  -d "redirect_uri=https://votreapp.com/callback" \
  -d "code=LE_CODE_DE_LA_REDIRECTION"

Étape 4 : Obtenir les informations utilisateur

Utilisez le jeton d’accès pour obtenir les détails de l’utilisateur :

curl -X GET https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo \
  -H "Authorization: Bearer VOTRE_JETON_D_ACCES"

Réponse :

{
  "sub": "identity-12345678",
  "iss": "dtz.rocks",
  "contexts": ["abc124"],
  "roles": ["https://dtz.rocks/context/admin/abc123..."]
}