Keycloak: identity provider OpenID Connect e mapper

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:

ImpostazioneValore
Aliasdazr (l’URI di reindirizzamento da registrare su Dazr è https://keycloak.example.eu/realms/<realm>/broker/dazr/endpoint)
Display nameDazr Identity
Discovery endpointhttps://identity.dazr.eu/.well-known/openid-configuration
Client authenticationClient secret sent as basic auth
Client ID and Client secretdalla console per sviluppatori di Dazr (app web server)
Use PKCEattivo, metodo S256
Validate signaturesattivo, con Use JWKS URL attivo e JWKS URL https://identity.dazr.eu/oauth/jwks
Scopeopenid profile email, più organisations se collega le organizzazioni come sotto
Backchannel logoutdisattivato: Dazr Identity non ha il back-channel logout. La disconnessione passa dal browser verso https://identity.dazr.eu/oauth/logout.
Disable user infodisattivato: i mapper qui sotto leggono la risposta user info
Trust emailattivo: Dazr rilascia solo indirizzi email verificati
Sync modeForce, 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 mapperClaimRisultato
Attribute Importerorganisations[0].idAttributo utente dazr_org_id: la chiave del tenant
Attribute Importerorganisations[0].nameAttributo utente dazr_org_name
Claim to Roleorganisations[0].role, valore del claim ownerRuolo di realm o di client tenant_admin
Claim to Roleorganisations[0].role, valore del claim adminRuolo di realm o di client tenant_admin
Claim to Roleorganisations[0].role, valore del claim memberRuolo di realm o di client tenant_user
Claim to Roleorganisations[0].verification.status, valore del claim verifiedRuolo 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.

Altro per gli sviluppatori