# Keycloak + Lutril: setup guide

> Lutril gouverne Keycloak comme une application, pas comme votre fournisseur d’identité. Vous le pointez sur un seul realm, et Lutril crée le compte avec le rôle de realm demandé, puis le désactive à l’échéance. La plupart des équipes le pointent sur master, parce que la population qui mérite d’être gouvernée, ce sont les personnes qui peuvent atteindre la console d’administration de Keycloak, pas les utilisateurs finaux qu’un realm métier héberge pour vos propres produits. Lutril gouverne le cycle de vie du compte, pas les affectations de rôles prises une par une. Une demande émanant de quelqu’un qui possède déjà un compte Keycloak actif est refusée et renvoyée vers un humain, parce qu’ajouter un rôle de realm à un compte que Lutril n’a pas créé serait définitif, et qu’un accès qu’on ne peut pas reprendre n’est pas un accès à durée limitée. La révocation désactive le compte et met fin à ses sessions ouvertes, et ne supprime jamais : le sub de la personne, ses liens d’identité fédérée, ses consentements et ses appartenances aux groupes survivent tous, et le compte est réactivé à la demande approuvée suivante. Aucun mot de passe n’est jamais généré : les comptes sont créés sans aucune information d’authentification, ils passent donc par les fournisseurs d’identité du realm. Deux choses à savoir sur ce que vous verrez dans Lutril. Les comptes issus d’un provider de fédération comme LDAP sont signalés, parce qu’un provider en mode lecture seule refuse la désactivation : Lutril déclare alors la révocation en échec au lieu de marquer l’accès comme expiré. Et Keycloak n’enregistre aucune dernière connexion sur le compte lui-même, donc Lutril lit les évènements LOGIN du realm lorsque ce stockage est activé, et n’affiche rien lorsqu’il ne l’est pas, plutôt qu’un zéro qui se lirait comme un compte dormant.

Source: https://www.lutril.com/fr/integrations/keycloak
Category: Security
Auth: service_account
Last verified: 2026-09-29

---

## Setup

1. Le formulaire Keycloak de Lutril comporte quatre champs obligatoires : Keycloak URL, Realm to govern, Service account client ID et Client Secret. Tout ce qui suit sert à trouver ces quatre valeurs, dans cet ordre, et à les vérifier avant de les coller.
2. Connectez-vous à la console d’administration Keycloak. La racine de cette console est votre Keycloak URL, par exemple https://sso.example.com. Elle doit être en https. Si votre serveur tourne sous un chemin relatif, incluez-le : Keycloak avant la version 17 sert sous /auth, la valeur serait donc https://sso.example.com/auth. C’est le champ Keycloak URL.
3. Choisissez le realm avec le sélecteur en haut de la barre latérale gauche. Prenez master pour gouverner les personnes qui administrent Keycloak lui-même, ce que veulent la plupart des équipes. Le nom affiché dans ce sélecteur, à l’identique, est le champ Realm to govern. Il est sensible à la casse.
4. En restant dans ce realm, allez dans Clients → Create client. Laissez le type de client sur OpenID Connect et mettez lutril-governance comme Client ID. C’est le champ Service account client ID. Cliquez sur Next.
5. À l’étape capability config, activez Client authentication et Service accounts roles. Désactivez Standard flow et Direct access grants : personne ne se connecte via ce client, il s’authentifie uniquement en son nom propre. Cliquez sur Next, puis Save. Sur un Keycloak antérieur à la version 19, ces deux réglages s’appellent Access Type, que vous passez à confidential, et Service Accounts Enabled.
6. Ouvrez l’onglet Credentials du client et copiez le Client secret. C’est le champ Client Secret, le dernier des quatre. S’il n’y a pas d’onglet Credentials, c’est que Client authentication est resté désactivé à l’étape précédente : c’est de loin la raison la plus fréquente de blocage sur cette configuration. Vous pouvez régénérer le secret ici à tout moment, ce qui invalide immédiatement l’ancien.
7. Ouvrez l’onglet Service accounts roles du client → Assign role → basculez le filtre sur Filter by clients. Affectez view-users, manage-users et view-clients depuis realm-management. Ajoutez aussi query-groups si vous voulez le sélecteur de groupes au moment d’accorder un accès.
8. [object Object]
9. [object Object]
10. Dans Lutril, ouvrez Settings → Integrations → Keycloak. Collez les quatre valeurs dans Keycloak URL, Realm to govern, Service account client ID et Client Secret. Laissez Client’s own realm vide.
11. Ne remplissez Client’s own realm que si le client de compte de service vit ailleurs que dans le realm qu’il gouverne, par exemple un client dans master qui administre un realm métier. Dans ce cas, affectez aussi les rôles realm-management de ce realm métier au même compte de service.
12. Nommez vos niveaux d’accès d’après les rôles de realm de Keycloak, pour que les deux listes emploient les mêmes mots. Lutril accorde le rôle de realm par son nom, aucune correspondance supplémentaire n’est nécessaire.
13. Si vous voulez que les demandes just-in-time soient approuvées automatiquement, définissez un rôle de realm par défaut pour cette application dans l’éditeur de catalogue de Lutril. Lutril refuse une approbation automatique sans rôle plutôt que de créer un compte qui n’atteint rien, et renvoie cette demande vers un humain.
14. Enregistrez. Lutril échange le secret contre un jeton, compte les utilisateurs du realm et relit les rôles de realm : une connexion incapable de faire le travail est refusée tout de suite, pas à la première demande.

## Access requested

- view-users, du client realm-management, pour que Lutril puisse lister les comptes du realm et en relire un après modification.
- manage-users, du client realm-management, pour que Lutril puisse créer un compte, lui affecter un rôle de realm et le désactiver à l’échéance.
- view-clients, du client realm-management, pour que Lutril sache quels comptes détiennent des rôles d’administration et les signale dans les revues d’accès.
- query-groups, du client realm-management, uniquement si vous voulez le sélecteur de groupes sur la carte de provisionnement.
- Jamais demandé et jamais utilisé : la moindre permission de supprimer un utilisateur. Lutril désactive ; la suppression définitive reste une action humaine dans la console Keycloak.

## References

- [Keycloak documentation](https://www.keycloak.org/docs-api/latest/rest-api/index.html)
- [Keycloak console](https://www.keycloak.org/docs/latest/server_admin/index.html#_service_accounts)
- [Référence de l’API REST d’administration](undefined)
- [Comptes de service (client credentials)](undefined)
- [Rôles de realm et affectations de rôles](undefined)
- [Clients d’administration dédiés et rôles realm-management](undefined)
