Keycloak: dostawca tożsamości OpenID Connect i mappery

Potrzebujesz trzech wartości z konsoli dla deweloperów: identyfikatora klienta, sekretu klienta (tylko aplikacje serwerowe) i zarejestrowanego URI przekierowania. Resztę zawiera dokument discovery pod adresem https://identity.dazr.eu/.well-known/openid-configuration.

Keycloak (identity brokering)

Jeśli Twoje aplikacje już logują się przez Keycloak, dodaj Dazr Identity jako dostawcę tożsamości. Keycloak pokaże wtedy „Sign in with Dazr Identity” na własnej stronie logowania, a Twoje aplikacje nadal rozmawiają z Keycloak. W konsoli administracyjnej Keycloak dla swojego realmu otwórz Identity providers, dodaj OpenID Connect v1.0 i wypełnij:

UstawienieWartość
Aliasdazr (URI przekierowania do zarejestrowania w Dazr to 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 secretz konsoli deweloperskiej Dazr (aplikacja serwerowa)
Use PKCEwłączone, metoda S256
Validate signatureswłączone, z włączonym Use JWKS URL i JWKS URL https://identity.dazr.eu/oauth/jwks
Scope’yopenid profile email, a do tego organisations, jeśli mapujesz organizacje jak niżej
Backchannel logoutwyłączone: Dazr Identity nie ma back-channel logout. Wylogowanie odbywa się przez przeglądarkę pod https://identity.dazr.eu/oauth/logout.
Disable user infowyłączone: mappery poniżej odczytują odpowiedź user info
Trust emailwłączone: Dazr wydaje tylko zweryfikowane adresy e-mail
Sync modeForce, aby nazwy i role aktualizowały się przy każdym logowaniu

Keycloak wiąże konto z brokera z sub z Dazr. Ustaw first login flow tak, by łączył istniejących użytkowników Keycloak po e-mailu, tylko jeśli Twój realm sam weryfikuje adresy e-mail.

Mapowanie organizacji i ról

Gdy Keycloak pośredniczy w logowaniu przez Dazr Identity (zobacz instrukcję Keycloak), dodaj mappery na karcie Mappers dostawcy tożsamości, z trybem synchronizacji Force. Keycloak odczytuje te ścieżki z odpowiedzi user info, a ścieżka może wskazać jedną pozycję na liście: organisations[0] to pierwsza organizacja zaznaczona przez osobę. Dla portalu z jednym kontem klienta na osobę to wystarczy; jeśli ludzie pracują dla kilku organizacji, poproś ich o zaznaczenie jednej albo odczytaj całą listę w swojej aplikacji.

Typ mapperaClaimWynik
Attribute Importerorganisations[0].idAtrybut użytkownika dazr_org_id: klucz tenanta
Attribute Importerorganisations[0].nameAtrybut użytkownika dazr_org_name
Claim to Roleorganisations[0].role, wartość claimu ownerRola realmu lub klienta tenant_admin
Claim to Roleorganisations[0].role, wartość claimu adminRola realmu lub klienta tenant_admin
Claim to Roleorganisations[0].role, wartość claimu memberRola realmu lub klienta tenant_user
Claim to Roleorganisations[0].verification.status, wartość claimu verifiedRola verified_business

Następnie dodaj mapper User Attribute dla dazr_org_id do client scope swojej aplikacji w Keycloak, aby aplikacja otrzymywała klucz tenanta we własnych tokenach Keycloak, obok ról.

Więcej dla deweloperów