Keycloak: dostawca tożsamości OpenID Connect i mappery
Logowanie przez Dazr Identity: bezpłatny OpenID Connect hostowany w UE, z passkeys, kodami e-mail i kontami Google lub Microsoft pod jednym przyciskiem.
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:
| Ustawienie | Wartość |
|---|---|
| Alias | dazr (URI przekierowania do zarejestrowania w Dazr to https://keycloak.example.eu/realms/<realm>/broker/dazr/endpoint) |
| Display name | Dazr Identity |
| Discovery endpoint | https://identity.dazr.eu/.well-known/openid-configuration |
| Client authentication | Client secret sent as basic auth |
| Client ID and Client secret | z konsoli deweloperskiej Dazr (aplikacja serwerowa) |
| Use PKCE | włączone, metoda S256 |
| Validate signatures | włączone, z włączonym Use JWKS URL i JWKS URL https://identity.dazr.eu/oauth/jwks |
| Scope’y | openid profile email, a do tego organisations, jeśli mapujesz organizacje jak niżej |
| Backchannel logout | wyłączone: Dazr Identity nie ma back-channel logout. Wylogowanie odbywa się przez przeglądarkę pod https://identity.dazr.eu/oauth/logout. |
| Disable user info | wyłączone: mappery poniżej odczytują odpowiedź user info |
| Trust email | włączone: Dazr wydaje tylko zweryfikowane adresy e-mail |
| Sync mode | Force, 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 mappera | Claim | Wynik |
|---|---|---|
| Attribute Importer | organisations[0].id | Atrybut użytkownika dazr_org_id: klucz tenanta |
| Attribute Importer | organisations[0].name | Atrybut użytkownika dazr_org_name |
| Claim to Role | organisations[0].role, wartość claimu owner | Rola realmu lub klienta tenant_admin |
| Claim to Role | organisations[0].role, wartość claimu admin | Rola realmu lub klienta tenant_admin |
| Claim to Role | organisations[0].role, wartość claimu member | Rola realmu lub klienta tenant_user |
| Claim to Role | organisations[0].verification.status, wartość claimu verified | Rola 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.
sub jest pairwise: taki sam dla każdej aplikacji Twojej organizacji i inny dla każdej innej organizacji. Dla danej osoby nigdy się nie zmienia, a adres e-mail może. Zapisuj sub jako klucz konta, a email traktuj jako dane kontaktowe.
Więcej dla deweloperów
Dokumentacja dla deweloperówWszystkie przewodniki integracjiDowolna biblioteka OpenID ConnectCennik