OAuth 2

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 l’OIDC ?

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

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

Démarrage rapide

1. Obtenez votre ID de contexte

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

Exemple: context-abc123

Remarque : Dans le système DTZ, à la fois votre client_id et votre client_secret sont 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 endpoints pour commencer :

Purpose Endpoint
Connexion utilisateur https://identity.dtz.rocks/api/2021-02-21/oauth/authorize
Obtenir le token https://identity.dtz.rocks/api/2021-02-21/oauth/token
Infos utilisateur https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo

3. Auto-Discovery

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

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

Comment ça marche

Étape 1 : Rediriger l’utilisateur vers DTZ

When a user wants to sign in, redirect them to:

https://identity.dtz.rocks/api/2021-02-21/oauth/authorize?
  response_type=code&
  client_id=YOUR_CONTEXT_ID&
  redirect_uri=https://yourapp.com/callback&
  scope=openid&
  state=random-string-for-security

Étape 2 : L’utilisateur se connecte

DTZ gère le processus de connexion :

  • Si déjà connecté → redirection immédiate vers votre application
  • Si non connecté → affiche le 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=YOUR_CONTEXT_ID" \
  -d "client_secret=YOUR_CONTEXT_ID" \
  -d "redirect_uri=https://yourapp.com/callback" \
  -d "code=THE_CODE_FROM_REDIRECT"

Étape 4 : Obtenir les informations de l’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 YOUR_ACCESS_TOKEN"

Réponse:

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