Keycloak : fournisseur d’identité OpenID Connect et mappers

Il vous faut trois valeurs de la console développeurs : l’ID client, le secret client (applications serveur web uniquement) et l’URI de redirection que vous avez enregistrée. Le reste se trouve dans le document de découverte à l’adresse https://identity.dazr.eu/.well-known/openid-configuration.

Keycloak (identity brokering)

Si vos applications se connectent déjà via Keycloak, ajoutez Dazr Identity comme fournisseur d’identité. Keycloak affiche alors « Sign in with Dazr Identity » sur sa propre page de connexion et vos applications continuent de parler à Keycloak. Dans la console d’administration Keycloak de votre realm, ouvrez Identity providers, ajoutez OpenID Connect v1.0 et renseignez :

RéglageValeur
Aliasdazr (l’URI de redirection à enregistrer chez Dazr est 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 secretdepuis la console développeurs de Dazr (application serveur web)
Use PKCEactivé, méthode S256
Validate signaturesactivé, avec Use JWKS URL activé et JWKS URL https://identity.dazr.eu/oauth/jwks
Scopesopenid profile email, plus organisations si vous reliez les organisations comme ci-dessous
Backchannel logoutdésactivé : Dazr Identity n’a pas de back-channel logout. La déconnexion passe par le navigateur vers https://identity.dazr.eu/oauth/logout.
Disable user infodésactivé : les mappers ci-dessous lisent la réponse user info
Trust emailactivé : Dazr ne délivre que des adresses e-mail vérifiées
Sync modeForce, pour que noms et rôles soient mis à jour à chaque connexion

Keycloak rattache le compte fédéré au sub Dazr. Ne réglez le first login flow pour relier les utilisateurs Keycloak existants par e-mail que si votre realm vérifie lui-même les adresses e-mail.

Associer organisations et rôles

Quand Keycloak fait office de broker pour Dazr Identity (voir le guide Keycloak), ajoutez des mappers dans l’onglet Mappers du fournisseur d’identité, avec le sync mode Force. Keycloak lit ces chemins dans la réponse user info, et un chemin peut désigner une position dans une liste : organisations[0] est la première organisation cochée par la personne. Pour un portail avec un compte client par personne, cela suffit ; si des personnes travaillent pour plusieurs organisations, faites-leur en cocher une seule, ou lisez la liste complète dans votre application.

Type de mapperClaimRésultat
Attribute Importerorganisations[0].idAttribut utilisateur dazr_org_id : la clé du tenant
Attribute Importerorganisations[0].nameAttribut utilisateur dazr_org_name
Claim to Roleorganisations[0].role, valeur du claim ownerRôle de realm ou de client tenant_admin
Claim to Roleorganisations[0].role, valeur du claim adminRôle de realm ou de client tenant_admin
Claim to Roleorganisations[0].role, valeur du claim memberRôle de realm ou de client tenant_user
Claim to Roleorganisations[0].verification.status, valeur du claim verifiedRôle verified_business

Ajoutez ensuite un mapper User Attribute pour dazr_org_id au client scope de votre application dans Keycloak, pour que votre application reçoive la clé du tenant dans les jetons de Keycloak, à côté des rôles.

Plus pour les développeurs