OAuth 2

Usa DTZ Identity come provider OAuth 2.0 e OpenID Connect (OIDC) per consentire 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 amministrare le credenziali degli utenti, reindirizzi gli utenti a DTZ per il login, quindi ricevi un token sicuro per accedere alle loro informazioni.

Ideale per: applicazioni web, applicazioni mobile o qualsiasi servizio che richieda un’autenticazione utente sicura.

Avvio rapido

1. Ottieni il tuo Context ID

In DTZ, ogni applicazione utilizza un “context” come suo identificatore. Avrai bisogno di un context-{uuid} a cui i tuoi utenti abbiano 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. Auto-scoperta

La maggior parte delle librerie OAuth può configurarsi automaticamente 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 l’accesso

DTZ gestisce il processo di login:

  • Se già connesso → reindirizzamento immediato alla tua app
  • Se non connesso → mostra il modulo di login, poi reindirizza indietro

Passo 3: Scambia il codice per un token

DTZ reindirizza alla tua app con un codice. Scambialo per ottenere 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..."]
}