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