Keycloak: identity provider OpenID Connect e mapper
Accesso con Dazr Identity: OpenID Connect gratuito, ospitato nell’UE, con passkey, codici via email e account Google o Microsoft dietro un solo pulsante.
Le servono tre valori dalla console per sviluppatori: il client ID, il client secret (solo per le app web server) e l’URI di reindirizzamento registrato. Tutto il resto è nel documento di discovery all’indirizzo https://identity.dazr.eu/.well-known/openid-configuration.
Keycloak (identity brokering)
Se le Sue app accedono già tramite Keycloak, aggiunga Dazr Identity come identity provider. Keycloak mostra allora “Sign in with Dazr Identity” nella propria pagina di accesso e le Sue app continuano a parlare con Keycloak. Nella console di amministrazione di Keycloak del Suo realm, apra Identity providers, aggiunga OpenID Connect v1.0 e compili:
| Impostazione | Valore |
|---|---|
| Alias | dazr (l’URI di reindirizzamento da registrare su Dazr è https://keycloak.example.eu/realms/<realm>/broker/dazr/endpoint) |
| Display name | Dazr Identity |
| Discovery endpoint | https://identity.dazr.eu/.well-known/openid-configuration |
| Client authentication | Client secret sent as basic auth |
| Client ID and Client secret | dalla console per sviluppatori di Dazr (app web server) |
| Use PKCE | attivo, metodo S256 |
| Validate signatures | attivo, con Use JWKS URL attivo e JWKS URL https://identity.dazr.eu/oauth/jwks |
| Scope | openid profile email, più organisations se collega le organizzazioni come sotto |
| Backchannel logout | disattivato: Dazr Identity non ha il back-channel logout. La disconnessione passa dal browser verso https://identity.dazr.eu/oauth/logout. |
| Disable user info | disattivato: i mapper qui sotto leggono la risposta user info |
| Trust email | attivo: Dazr rilascia solo indirizzi email verificati |
| Sync mode | Force, così nomi e ruoli si aggiornano a ogni accesso |
Keycloak collega l’account federato al sub di Dazr. Imposti il first login flow per collegare gli utenti Keycloak esistenti tramite email solo se il Suo realm verifica da sé gli indirizzi email.
Mappare organizzazioni e ruoli
Quando Keycloak fa da broker per Dazr Identity (veda la guida a Keycloak), aggiunga i mapper nella scheda Mappers dell’identity provider, con sync mode Force. Keycloak legge questi percorsi dalla risposta user info, e un percorso può indicare una posizione in una lista: organisations[0] è la prima organizzazione selezionata dalla persona. Per un portale con un account cliente per persona basta; se le persone lavorano per più organizzazioni, le faccia selezionare una sola, o legga l’elenco completo nella Sua app.
| Tipo di mapper | Claim | Risultato |
|---|---|---|
| Attribute Importer | organisations[0].id | Attributo utente dazr_org_id: la chiave del tenant |
| Attribute Importer | organisations[0].name | Attributo utente dazr_org_name |
| Claim to Role | organisations[0].role, valore del claim owner | Ruolo di realm o di client tenant_admin |
| Claim to Role | organisations[0].role, valore del claim admin | Ruolo di realm o di client tenant_admin |
| Claim to Role | organisations[0].role, valore del claim member | Ruolo di realm o di client tenant_user |
| Claim to Role | organisations[0].verification.status, valore del claim verified | Ruolo verified_business |
Poi aggiunga un mapper User Attribute per dazr_org_id al client scope della Sua app in Keycloak, così la Sua app riceve la chiave del tenant nei token di Keycloak, accanto ai ruoli.
sub è pairwise: lo stesso per ogni app della Sua organizzazione, diverso per ogni altra organizzazione. Per una persona non cambia mai, mentre un indirizzo email può cambiare. Salvi sub come chiave dell’account e tratti email come dato di contatto.
Altro per gli sviluppatori
Documentazione per sviluppatoriTutte le guide all’integrazioneQualsiasi libreria OpenID ConnectPrezzi