Keycloak: proveedor de identidad OpenID Connect y mappers
Inicio de sesión con Dazr Identity: OpenID Connect gratis, alojado en la UE, con passkeys, códigos por correo y cuentas de Google o Microsoft tras un solo botón.
Necesitas tres valores de la consola para desarrolladores: el ID de cliente, el secreto de cliente (solo apps de servidor web) y la URI de redirección que registraste. Todo lo demás está en el documento de descubrimiento en https://identity.dazr.eu/.well-known/openid-configuration.
Keycloak (identity brokering)
Si tus apps ya inician sesión a través de Keycloak, añade Dazr Identity como proveedor de identidad. Keycloak muestra entonces «Sign in with Dazr Identity» en su propia página de inicio de sesión y tus apps siguen hablando con Keycloak. En la consola de administración de Keycloak de tu realm, abre Identity providers, añade OpenID Connect v1.0 y rellena:
| Ajuste | Valor |
|---|---|
| Alias | dazr (la URI de redirección que debes registrar en Dazr es 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 | de la consola para desarrolladores de Dazr (app de servidor web) |
| Use PKCE | activado, método S256 |
| Validate signatures | activado, con Use JWKS URL activado y JWKS URL https://identity.dazr.eu/oauth/jwks |
| Scopes | openid profile email, más organisations si relacionas organizaciones como se indica abajo |
| Backchannel logout | desactivado: Dazr Identity no tiene back-channel logout. El cierre de sesión pasa por el navegador hacia https://identity.dazr.eu/oauth/logout. |
| Disable user info | desactivado: los mappers de abajo leen la respuesta de user info |
| Trust email | activado: Dazr solo emite direcciones de correo verificadas |
| Sync mode | Force, para que nombres y roles se actualicen en cada inicio de sesión |
Keycloak vincula la cuenta federada al sub de Dazr. Configura el first login flow para vincular usuarios existentes de Keycloak por correo solo si tu realm verifica por sí mismo las direcciones de correo.
Asignar organizaciones y roles
Cuando Keycloak hace de broker de Dazr Identity (consulta la guía de Keycloak), añade mappers en la pestaña Mappers del proveedor de identidad, con el sync mode Force. Keycloak lee estas rutas de la respuesta de user info, y una ruta puede indicar una posición en una lista: organisations[0] es la primera organización que marcó la persona. Para un portal con una cuenta de cliente por persona es suficiente; si hay personas que trabajan para varias organizaciones, haz que marquen una sola, o lee la lista completa en tu app.
| Tipo de mapper | Claim | Resultado |
|---|---|---|
| Attribute Importer | organisations[0].id | Atributo de usuario dazr_org_id: la clave del tenant |
| Attribute Importer | organisations[0].name | Atributo de usuario dazr_org_name |
| Claim to Role | organisations[0].role, valor del claim owner | Rol de realm o de cliente tenant_admin |
| Claim to Role | organisations[0].role, valor del claim admin | Rol de realm o de cliente tenant_admin |
| Claim to Role | organisations[0].role, valor del claim member | Rol de realm o de cliente tenant_user |
| Claim to Role | organisations[0].verification.status, valor del claim verified | Rol verified_business |
Después añade un mapper User Attribute para dazr_org_id al client scope de tu app en Keycloak, para que tu app reciba la clave del tenant en los propios tokens de Keycloak, junto a los roles.
sub es pairwise: el mismo para todas las apps de tu organización y distinto para cualquier otra organización. Nunca cambia para una persona, mientras que un correo sí puede cambiar. Guarda sub como clave de la cuenta y trata email como dato de contacto.
Más para desarrolladores
Documentación para desarrolladoresTodas las guías de integraciónCualquier biblioteca OpenID ConnectPrecios