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 serviceAssigner 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.

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.