Keycloak: furnizor de identitate OpenID Connect și mappere

Aveți nevoie de trei valori din consola pentru dezvoltatori: ID-ul de client, secretul de client (doar pentru aplicațiile cu server web) și URI-ul de redirecționare înregistrat. Restul se află în documentul de discovery de la https://identity.dazr.eu/.well-known/openid-configuration.

Keycloak (identity brokering)

Dacă aplicațiile dumneavoastră se autentifică deja prin Keycloak, adăugați Dazr Identity ca furnizor de identitate. Keycloak afișează atunci „Sign in with Dazr Identity” pe propria pagină de autentificare, iar aplicațiile continuă să comunice cu Keycloak. În consola de administrare Keycloak a realmului, deschideți Identity providers, adăugați OpenID Connect v1.0 și completați:

SetareValoare
Aliasdazr (URI-ul de redirecționare de înregistrat la Dazr este 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 secretdin consola pentru dezvoltatori Dazr (aplicație de server web)
Use PKCEactivat, metoda S256
Validate signaturesactivat, cu Use JWKS URL activat și JWKS URL https://identity.dazr.eu/oauth/jwks
Domenii (scopes)openid profile email, plus organisations dacă legați organizațiile ca mai jos
Backchannel logoutdezactivat: Dazr Identity nu are back-channel logout. Deconectarea trece prin browser către https://identity.dazr.eu/oauth/logout.
Disable user infodezactivat: mapperii de mai jos citesc răspunsul user info
Trust emailactivat: Dazr emite doar adrese de e-mail verificate
Sync modeForce, ca numele și rolurile să se actualizeze la fiecare autentificare

Keycloak leagă contul federat de sub de la Dazr. Configurați first login flow să lege utilizatorii Keycloak existenți după e-mail doar dacă realmul dumneavoastră verifică singur adresele de e-mail.

Maparea organizațiilor și a rolurilor

Când Keycloak face brokering pentru Dazr Identity (vedeți ghidul Keycloak), adăugați mapperi în fila Mappers a furnizorului de identitate, cu sync mode Force. Keycloak citește aceste căi din răspunsul user info, iar o cale poate indica o poziție dintr-o listă: organisations[0] este prima organizație bifată de persoană. Pentru un portal cu un cont de client per persoană este suficient; dacă oamenii lucrează pentru mai multe organizații, cereți-le să bifeze una singură sau citiți lista completă în aplicație.

Tip de mapperClaimRezultat
Attribute Importerorganisations[0].idAtribut de utilizator dazr_org_id: cheia tenantului
Attribute Importerorganisations[0].nameAtribut de utilizator dazr_org_name
Claim to Roleorganisations[0].role, valoarea claimului ownerRol de realm sau de client tenant_admin
Claim to Roleorganisations[0].role, valoarea claimului adminRol de realm sau de client tenant_admin
Claim to Roleorganisations[0].role, valoarea claimului memberRol de realm sau de client tenant_user
Claim to Roleorganisations[0].verification.status, valoarea claimului verifiedRol verified_business

Apoi adăugați un mapper User Attribute pentru dazr_org_id în client scope-ul aplicației din Keycloak, ca aplicația să primească cheia tenantului în tokenurile proprii ale Keycloak, lângă roluri.

Mai mult pentru dezvoltatori