OAuth 2

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

Che cos’è OIDC?

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

Perfetto per: applicazioni web, applicazioni mobili o qualsiasi servizio che necessiti di autenticazione sicura degli utenti.

Avvio rapido

1. Ottieni il tuo Context ID

In DTZ, ogni applicazione usa un “context” come identificatore. Avrai bisogno di un context-{uuid} a cui i tuoi utenti hanno accesso.

Esempio: context-abc123

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

2. Endpoint essenziali

Hai bisogno solo di questi due endpoint per iniziare:

Scopo Endpoint
Accesso 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. Scoperta automatica

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

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

Come funziona

Passo 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

Passo 2: L’utente effettua il login

DTZ gestisce il processo di login:

  • Se è già autenticato → reindirizzamento immediato alla tua app
  • Se non è autenticato → viene mostrato il modulo di login, poi reindirizza di nuovo

Passo 3: Scambia il codice per un token

DTZ reindirizza di nuovo 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"

Passo 4: Ottieni le informazioni sull’utente

Usa l’access token per ottenere i dettagli dell’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..."]
}