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_idche il tuoclient_secretsono 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..."]
}