Aller au contenu

Keycloak

FonctionnalitéSupport
Gestion utilisateurs✅ Complet
Organisations✅ Natif (nécessite Keycloak 26.6+ avec les Organisations activées)
Journaux d’audit✅ Basique (nécessite les événements activés)
  1. Créez ou choisissez un realm

    Dans la console d’administration Keycloak, créez un realm dédié aux utilisateurs de votre application (ex. my-app) ou utilisez un realm existant.

    Notez le nom du realm — vous en aurez besoin comme valeur de KEYCLOAK_REALM.

  2. Créez un client de compte de service

    Dans votre realm : Clients → Créer un client.

    • Type de client : OpenID Connect
    • Client ID : aums-management (ou tout autre nom)
    • Authentification client : Activée (confidentiel)
    • Rôles de comptes de service : Activé
    • Flux standard / Accès direct : Désactivé (non nécessaire)
  3. Accordez les permissions de gestion du realm

    Allez dans le client → onglet Rôles de comptes de service → Assigner un rôle.

    Filtrez par client realm-management et assignez :

    • manage-users — créer, mettre à jour, supprimer, désactiver des utilisateurs
    • view-users — lister et lire des utilisateurs
    • query-users — requis pour la recherche

    Pour l’accès aux journaux d’audit, assignez également :

    • view-events — lire les événements du realm

    Pour la gestion des organisations, assignez également :

    • manage-organizations — créer, modifier, supprimer des organisations et gérer les membres
  4. Copiez le secret du client

    Allez dans le client → onglet Identifiants. Copiez le Secret client.

  5. Définissez les variables d’environnement

    Terminal window
    PROVIDER=keycloak
    KEYCLOAK_BASE_URL=https://keycloak.example.com
    KEYCLOAK_REALM=my-app
    KEYCLOAK_CLIENT_ID=aums-management
    KEYCLOAK_CLIENT_SECRET=your-client-secret

Les Organisations Keycloak (introduites en 26.0, stables en 26.6+) sont prises en charge nativement. AUMS mappe les organisations Keycloak comme suit :

Champ AUMSChamp Keycloak
idid
namename
displayNamealias
descriptiondescription

Prérequis :

  1. Keycloak version 26.6.0 ou supérieure.
  2. Fonctionnalité Organisations activée dans le realm : Paramètres du realm → Général → Organisations → Activé.
  3. Le compte de service dispose du rôle manage-organizations (voir étape 3 de la configuration).

Les invitations sont envoyées par e-mail via le flux d’invitation natif de Keycloak. Assurez-vous que votre realm dispose d’un fournisseur de messagerie configuré (Paramètres du realm → E-mail) avant d’utiliser la fonctionnalité d’invitation.

AUMS liste les sessions d’un utilisateur et les ferme, réinitialise ses seconds facteurs (OTP, WebAuthn, codes de récupération), dissocie les identités fédérées, modifie ses attributs et attribue des rôles du realm. Les rôles que Keycloak donne à tout le monde (default-roles-*, offline_access, uma_authorization) ne sont pas proposés.

  • Les e-mails (réinitialisation, vérification) passent par les paramètres e-mail du realm (Paramètres du realm, E-mail) : configurez d’abord un serveur SMTP, sinon l’envoi échoue.
  • Les attributs ne sont conservés que si le profil utilisateur du realm accepte ceux qu’il ne déclare pas : activez Attributs non gérés (Paramètres du realm, Général). Sans cela, Keycloak accepte la modification et supprime les attributs ; AUMS le signale au lieu d’annoncer un succès.
  • Le compte de service a besoin des rôles realm-management pour les utilisateurs, les rôles du realm et, pour les organisations, les organisations.
  • Les organisations sans domaine demandent Keycloak 26.1 ou plus.

Les journaux d’audit Keycloak sont lus depuis le store d’événements du realm. Les événements doivent être activés dans les paramètres du realm :

  1. Allez dans Paramètres du realm → onglet Événements.
  2. Activez Sauvegarder les événements.
  3. Prolongez optionnellement l’Expiration pour conserver les événements plus longtemps (défaut : 1 jour).
  4. Sélectionnez les types d’événements à suivre dans Types d’événements sauvegardés.

Une fois activés, AUMS affichera les événements utilisateurs (connexions, échecs, réinitialisations de mot de passe, etc.) sur la page Journaux d’audit, avec filtrage par utilisateur, type d’événement et plage de dates.

Pour protéger le tableau de bord AUMS avec le SSO Keycloak, créez un client OpenID Connect séparé dans Keycloak (flux standard, pas de compte de service) :

Terminal window
AUTH_CLIENT_OPENID_CONFIGURATION_URL=https://keycloak.example.com/realms/my-app
AUTH_CLIENT_ID=aums-dashboard
AUTH_CLIENT_SECRET=your-oidc-client-secret

Ajoutez <BASE_URL>/api/auth/callback/oidc aux URI de redirection valides du client.