Keycloak: OpenID Connect-identitetsudbyder og mappers

Du skal bruge tre værdier fra udviklerkonsollen: klient-id’et, klienthemmeligheden (kun webserverapps) og den omdirigerings-URI, du har registreret. Resten står i discovery-dokumentet på https://identity.dazr.eu/.well-known/openid-configuration.

Keycloak (identity brokering)

Hvis dine apps allerede logger ind via Keycloak, så tilføj Dazr Identity som identitetsudbyder. Keycloak viser så “Sign in with Dazr Identity” på sin egen loginside, og dine apps taler fortsat med Keycloak. Åbn Identity providers i Keycloaks administrationskonsol for dit realm, tilføj OpenID Connect v1.0, og udfyld:

IndstillingVærdi
Aliasdazr (redirect-URI’en, der skal registreres hos Dazr, er 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 secretfra Dazrs udviklerkonsol (webserver-app)
Use PKCEtil, metode S256
Validate signaturestil, med Use JWKS URL slået til og JWKS URL https://identity.dazr.eu/oauth/jwks
Scopesopenid profile email plus organisations, hvis du kobler organisationer som nedenfor
Backchannel logoutfra: Dazr Identity har ingen back-channel logout. Logout går via browseren til https://identity.dazr.eu/oauth/logout.
Disable user infofra: mapperne nedenfor læser user info-svaret
Trust emailtil: Dazr udsteder kun verificerede e-mailadresser
Sync modeForce, så navne og roller opdateres ved hvert login

Keycloak knytter den brokerede konto til Dazr-sub. Sæt kun first login flow til at koble eksisterende Keycloak-brugere via e-mail, hvis dit realm selv verificerer e-mailadresser.

Tilknyt organisationer og roller

Når Keycloak brokerer Dazr Identity (se Keycloak-guiden), så tilføj mappers under identitetsudbyderens fane Mappers med sync mode Force. Keycloak læser disse stier fra user info-svaret, og en sti kan pege på én plads i en liste: organisations[0] er den første organisation, personen satte flueben ved. Til en portal med én kundekonto pr. person er det nok; arbejder folk for flere organisationer, så lad dem vælge én, eller læs hele listen i din app.

MappertypeClaimResultat
Attribute Importerorganisations[0].idBrugerattribut dazr_org_id: tenant-nøglen
Attribute Importerorganisations[0].nameBrugerattribut dazr_org_name
Claim to Roleorganisations[0].role, claim-værdi ownerRealm- eller klientrolle tenant_admin
Claim to Roleorganisations[0].role, claim-værdi adminRealm- eller klientrolle tenant_admin
Claim to Roleorganisations[0].role, claim-værdi memberRealm- eller klientrolle tenant_user
Claim to Roleorganisations[0].verification.status, claim-værdi verifiedRolle verified_business

Tilføj derefter en mapper af typen User Attribute for dazr_org_id til din apps client scope i Keycloak, så din app modtager tenant-nøglen i Keycloaks egne tokens ved siden af rollerne.

Mere til udviklere