Keycloak: OpenID-Connect-Identity-Provider und Mapper

Sie brauchen drei Werte aus der Entwicklerkonsole: die Client-ID, das Client-Secret (nur für Webserver-Apps) und die registrierte Weiterleitungs-URI. Alles Weitere steht im Discovery-Dokument unter https://identity.dazr.eu/.well-known/openid-configuration.

Keycloak (Identity Brokering)

Wenn sich Ihre Apps bereits über Keycloak anmelden, fügen Sie Dazr Identity als Identity Provider hinzu. Keycloak zeigt dann „Sign in with Dazr Identity“ auf seiner eigenen Anmeldeseite, und Ihre Apps sprechen weiter mit Keycloak. Öffnen Sie in der Keycloak-Admin-Konsole Ihres Realms Identity providers, fügen Sie OpenID Connect v1.0 hinzu und tragen Sie ein:

EinstellungWert
Aliasdazr (die bei Dazr zu registrierende Weiterleitungs-URI ist 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 und Client-Secretaus der Dazr-Entwicklerkonsole (Web-Server-App)
Use PKCEan, Methode S256
Validate signaturesan, mit Use JWKS URL an und JWKS URL https://identity.dazr.eu/oauth/jwks
Scopesopenid profile email, dazu organisations, wenn Sie unten Organisationen abbilden
Backchannel logoutaus: Dazr Identity hat kein Back-Channel-Logout. Die Abmeldung läuft über den Browser zu https://identity.dazr.eu/oauth/logout.
Disable user infoaus: Die Mapper unten lesen die Antwort des User-Info-Endpunkts
Trust emailan: Dazr gibt nur bestätigte E-Mail-Adressen aus
Sync modeForce, damit Namen und Rollen bei jeder Anmeldung aktualisiert werden

Keycloak verknüpft das gebrokerte Konto über das Dazr-sub. Stellen Sie den First Login Flow nur dann so ein, dass bestehende Keycloak-Nutzer per E-Mail verknüpft werden, wenn Ihr Realm E-Mail-Adressen selbst bestätigt.

Organisationen und Rollen zuordnen

Wenn Keycloak Dazr Identity brokert (siehe die Keycloak-Anleitung), fügen Sie im Tab Mappers des Identity Providers Mapper hinzu, mit Sync Mode Force. Keycloak liest diese Pfade aus der User-Info-Antwort, und ein Pfad kann eine Position in einer Liste nennen: organisations[0] ist die erste Organisation, die die Person angekreuzt hat. Für ein Portal mit einem Kundenkonto pro Person reicht das; arbeiten Menschen für mehrere Organisationen, lassen Sie sie eine ankreuzen oder lesen Sie die ganze Liste in Ihrer App.

Mapper-TypClaimErgebnis
Attribute Importerorganisations[0].idNutzerattribut dazr_org_id: der Mandantenschlüssel
Attribute Importerorganisations[0].nameNutzerattribut dazr_org_name
Claim to Roleorganisations[0].role, Claim-Wert ownerRealm- oder Client-Rolle tenant_admin
Claim to Roleorganisations[0].role, Claim-Wert adminRealm- oder Client-Rolle tenant_admin
Claim to Roleorganisations[0].role, Claim-Wert memberRealm- oder Client-Rolle tenant_user
Claim to Roleorganisations[0].verification.status, Claim-Wert verifiedRolle verified_business

Fügen Sie dann einen Mapper vom Typ User Attribute für dazr_org_id zum Client Scope Ihrer App in Keycloak hinzu, damit Ihre App den Mandantenschlüssel in Keycloaks eigenen Tokens erhält, neben den Rollen.

Mehr für Entwickler