Keycloak: OpenID Connect-identityprovider en mappers

Je hebt drie waarden uit de ontwikkelaarsconsole nodig: de client-ID, het clientgeheim (alleen voor webserver-apps) en de redirect-URI die je hebt geregistreerd. De rest staat in het discovery-document op https://identity.dazr.eu/.well-known/openid-configuration.

Keycloak (identity brokering)

Loggen je apps al in via Keycloak, voeg Dazr Identity dan toe als identity provider. Keycloak toont dan “Sign in with Dazr Identity” op zijn eigen inlogpagina, en je apps blijven met Keycloak praten. Open in de Keycloak-beheerconsole van je realm Identity providers, voeg OpenID Connect v1.0 toe en vul in:

InstellingWaarde
Aliasdazr (de redirect-URI die je bij Dazr registreert is 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 secretuit de ontwikkelaarsconsole van Dazr (webserver-app)
Use PKCEaan, methode S256
Validate signaturesaan, met Use JWKS URL aan en JWKS URL https://identity.dazr.eu/oauth/jwks
Scopesopenid profile email, plus organisations als je hieronder organisaties koppelt
Backchannel logoutuit: Dazr Identity heeft geen back-channel logout. Uitloggen gaat via de browser naar https://identity.dazr.eu/oauth/logout.
Disable user infouit: de mappers hieronder lezen het user info-antwoord
Trust emailaan: Dazr geeft alleen geverifieerde e-mailadressen uit
Sync modeForce, zodat namen en rollen bij elke inlog worden bijgewerkt

Keycloak koppelt het gebrokerde account aan de Dazr-sub. Stel de first login flow alleen zo in dat bestaande Keycloak-gebruikers via e-mail worden gekoppeld als je realm e-mailadressen zelf verifieert.

Organisaties en rollen koppelen

Als Keycloak Dazr Identity brokert (zie de Keycloak-handleiding), voeg dan mappers toe op het tabblad Mappers van de identity provider, met sync mode Force. Keycloak leest deze paden uit het user info-antwoord, en een pad kan één positie in een lijst noemen: organisations[0] is de eerste organisatie die iemand heeft aangevinkt. Voor een portaal met één klantaccount per persoon is dat genoeg; werken mensen voor meerdere organisaties, laat ze er dan één aanvinken of lees de hele lijst in je app.

Type mapperClaimResultaat
Attribute Importerorganisations[0].idGebruikersattribuut dazr_org_id: de tenantsleutel
Attribute Importerorganisations[0].nameGebruikersattribuut dazr_org_name
Claim to Roleorganisations[0].role, claimwaarde ownerRealm- of clientrol tenant_admin
Claim to Roleorganisations[0].role, claimwaarde adminRealm- of clientrol tenant_admin
Claim to Roleorganisations[0].role, claimwaarde memberRealm- of clientrol tenant_user
Claim to Roleorganisations[0].verification.status, claimwaarde verifiedRol verified_business

Voeg daarna een mapper van het type User Attribute voor dazr_org_id toe aan de client scope van je app in Keycloak, zodat je app de tenantsleutel krijgt in de eigen tokens van Keycloak, naast de rollen.

Meer voor ontwikkelaars