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.

What is 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 les redirigez vers DTZ pour la connexion, puis recevez un token sécurisé pour accéder à leurs informations.

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

Quick Start

1. Get Your Context ID

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

Remarque : 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 conservant la sécurité.

2. Essential Endpoints

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

Objet Point de terminaison
User Login https://identity.dtz.rocks/api/2021-02-21/oauth/authorize
Get Token https://identity.dtz.rocks/api/2021-02-21/oauth/token
User Info 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 l’endpoint de découverte de DTZ :

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

How It Works

Step 1: Redirect User to 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

Step 2: User Signs In

DTZ gère le processus d’authentification :

  • Si déjà connecté → redirection immédiate vers votre application
  • Si non connecté → affiche le formulaire de connexion, puis redirige

Step 3: Exchange Code for Token

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

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"

Step 4: Get User Information

Utilisez le token d’accès pour obtenir les informations 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..."]
}