Keycloak: fornecedor de identidade OpenID Connect e mappers
Início de sessão com o Dazr Identity: OpenID Connect gratuito, alojado na UE, com passkeys, códigos por e-mail e contas Google ou Microsoft atrás de um só botão.
Precisa de três valores da consola para programadores: o ID de cliente, o segredo de cliente (apenas aplicações de servidor web) e o URI de redirecionamento que registou. O resto está no documento de descoberta em https://identity.dazr.eu/.well-known/openid-configuration.
Keycloak (identity brokering)
Se as suas aplicações já iniciam sessão através do Keycloak, adicione o Dazr Identity como fornecedor de identidade. O Keycloak mostra então «Sign in with Dazr Identity» na sua própria página de início de sessão e as suas aplicações continuam a falar com o Keycloak. Na consola de administração do Keycloak do seu realm, abra Identity providers, adicione OpenID Connect v1.0 e preencha:
| Definição | Valor |
|---|---|
| Alias | dazr (o URI de redirecionamento a registar na Dazr é 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 | da consola de programadores da Dazr (aplicação de servidor web) |
| Use PKCE | ativado, método S256 |
| Validate signatures | ativado, com Use JWKS URL ativado e JWKS URL https://identity.dazr.eu/oauth/jwks |
| Âmbitos | openid profile email, mais organisations se associar organizações como abaixo |
| Backchannel logout | desativado: o Dazr Identity não tem back-channel logout. O fim de sessão passa pelo navegador para https://identity.dazr.eu/oauth/logout. |
| Disable user info | desativado: os mappers abaixo leem a resposta de user info |
| Trust e-mail | ativado: a Dazr só emite endereços de e-mail verificados |
| Sync mode | Force, para que nomes e funções sejam atualizados em cada início de sessão |
O Keycloak associa a conta federada ao sub da Dazr. Configure o first login flow para associar utilizadores existentes do Keycloak por e-mail apenas se o seu realm verificar ele próprio os endereços de e-mail.
Mapear organizações e funções
Quando o Keycloak faz de broker do Dazr Identity (veja o guia do Keycloak), adicione mappers no separador Mappers do fornecedor de identidade, com o sync mode Force. O Keycloak lê estes caminhos na resposta de user info, e um caminho pode indicar uma posição numa lista: organisations[0] é a primeira organização que a pessoa assinalou. Para um portal com uma conta de cliente por pessoa, isso chega; se houver pessoas que trabalham para várias organizações, peça-lhes que assinalem apenas uma, ou leia a lista completa na sua aplicação.
| Tipo de mapper | Claim | Resultado |
|---|---|---|
| Attribute Importer | organisations[0].id | Atributo de utilizador dazr_org_id: a chave do tenant |
| Attribute Importer | organisations[0].name | Atributo de utilizador dazr_org_name |
| Claim to Role | organisations[0].role, valor da claim owner | Função de realm ou de cliente tenant_admin |
| Claim to Role | organisations[0].role, valor da claim admin | Função de realm ou de cliente tenant_admin |
| Claim to Role | organisations[0].role, valor da claim member | Função de realm ou de cliente tenant_user |
| Claim to Role | organisations[0].verification.status, valor da claim verified | Função verified_business |
Depois adicione um mapper User Attribute para dazr_org_id ao client scope da sua aplicação no Keycloak, para que a sua aplicação receba a chave do tenant nos tokens do próprio Keycloak, ao lado das funções.
sub é pairwise: igual para todas as aplicações da sua organização, diferente para qualquer outra organização. Nunca muda para uma pessoa, ao passo que um endereço de e-mail pode mudar. Guarde sub como chave da conta e trate email como dado de contacto.
Mais para programadores
Documentação para programadoresTodos os guias de integraçãoQualquer biblioteca OpenID ConnectPreços