OAuth 2

Usa DTZ Identity come tuo provider OAuth 2.0 e OpenID Connect (OIDC) per permettere agli utenti di accedere alle tue applicazioni con i loro account DTZ.

Cos’è OIDC?

OpenID Connect (OIDC) permette alla tua applicazione di autenticare gli utenti tramite DTZ Identity senza gestire direttamente le password. Invece di gestire le credenziali degli utenti, reindirizzi gli utenti a DTZ per il login, poi ricevi un token sicuro per accedere alle loro informazioni.

Perfetto per: app web, app mobili o qualsiasi servizio che necessita di un’autenticazione sicura degli utenti.

Avvio Rapido

1. Ottieni il tuo Context ID

In DTZ, ogni applicazione utilizza un “context” come identificatore. Ti servirà un context-{uuid} a cui i tuoi utenti hanno accesso.

Esempio: context-abc123

Nota: Nel sistema DTZ, sia il tuo client_id che il client_secret sono lo stesso context ID. Questo semplifica la configurazione mantenendo la sicurezza.

2. Endpoint Essenziali

Ti servono solo questi due endpoint per iniziare:

Scopo Endpoint
Login Utente https://identity.dtz.rocks/api/2021-02-21/oauth/authorize
Ottieni Token https://identity.dtz.rocks/api/2021-02-21/oauth/token
Informazioni Utente https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo

3. Auto-Discovery

La maggior parte delle librerie OAuth può autoconfigurarsi usando l’endpoint di discovery di DTZ:

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

Come Funziona

Step 1: Reindirizza l’Utente a DTZ

Quando un utente vuole accedere, reindirizzalo a:

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: L’Utente Effettua il Login

DTZ gestisce il processo di login:

  • Se già autenticato → reindirizza immediatamente alla tua app
  • Se non autenticato → mostra il modulo di login, poi reindirizza

Step 3: Scambia il Codice per un Token

DTZ reindirizza alla tua app con un codice. Scambialo per 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: Ottieni le Informazioni dell’Utente

Usa il token di accesso per ottenere i dettagli utente:

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

Risposta:

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