Gestion des Utilisateurs
Auris fournit un système complet pour la gestion du cycle de vie des utilisateurs accessible via la Console Admin et les API REST. Les administrateurs peuvent lister, créer, mettre à jour, désactiver, supprimer temporairement et restaurer les utilisateurs sans toucher à l’interface admin native de Keycloak.
Liste des Utilisateurs
La liste des utilisateurs supporte la pagination, la recherche plein texte, le filtrage par rôle et par statut. Les résultats sont retournés dans l’enveloppe de pagination standard d’Auris.
/api/usersRequires: manage:usersRetourne une liste paginée d’utilisateurs pour le tenant courant. Supporte les paramètres query : page, limit, search (correspond à email, username, firstName, lastName), role (filtre par nom de rôle), status (active | disabled | deleted).
Structure de la réponse :
{
"data": [
{
"id": "usr_01HX...",
"email": "[email protected]",
"username": "alice",
"firstName": "Alice",
"lastName": "Martin",
"enabled": true,
"roles": ["member"],
"createdAt": "2025-03-01T10:00:00Z",
"lastLogin": "2025-06-10T08:45:00Z",
"metadata": {}
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 142,
"totalPages": 8
}
}Guide Console : Va dans Console Admin → Utilisateurs. Le tableau se met à jour automatiquement quand tu modifies le terme de recherche ou appliques des filtres. Clique sur une ligne pour ouvrir le panneau de détail utilisateur.
Création des Utilisateurs
Les utilisateurs peuvent être créés directement avec un mot de passe, ou sans mot de passe pour activer un e-mail d’invitation demandant à l’utilisateur de définir ses propres identifiants.
/api/usersRequires: manage:usersCrée un nouvel utilisateur à la fois dans la base de données d’Auris et dans le realm Keycloak sous-jacent.
Corps de la requête :
{
"email": "[email protected]",
"username": "marie",
"firstName": "Marie",
"lastName": "Dupont",
"password": "MotDePasseSécurisé123!",
"sendInvite": false,
"roles": ["member"],
"metadata": {
"department": "engineering",
"employeeId": "EMP-4421"
}
}Référence des champs :
| Champ | Type | Obligatoire | Notes |
|---|---|---|---|
email | string | Oui | Doit être unique dans le tenant |
username | string | Non | Par défaut la partie locale de l’adresse e-mail |
firstName | string | Non | |
lastName | string | Non | |
password | string | Non | Omettre pour envoyer une invitation à la place |
sendInvite | boolean | Non | Envoie un e-mail de configuration quand password est omis |
roles | string[] | Non | Tableau de noms de rôles à assigner à la création |
metadata | object | Non | JSON arbitraire stocké dans l’enregistrement utilisateur |
Si password et sendInvite: true sont tous deux fournis, le mot de passe est défini et aucun e-mail d’invitation n’est envoyé. Définis sendInvite: true sans password pour demander à l’utilisateur de définir ses propres identifiants à la première connexion.
Guide Console : Clique le bouton “Nouvel Utilisateur” dans la page Utilisateurs. Le dialogue présente un formulaire à onglets : Général (nom, e-mail), Identifiants (mot de passe ou toggle invitation) et Rôles (sélection multiple).
Mise à Jour des Utilisateurs
/api/users/[id]Requires: manage:usersMet à jour partiellement un enregistrement utilisateur. Seuls les champs inclus dans le corps de la requête sont modifiés.
Champs modifiables :
{
"firstName": "Marie",
"lastName": "Leblanc",
"enabled": true,
"roles": ["member", "billing-admin"],
"metadata": {
"department": "leadership"
}
}La mise à jour de roles remplace complètement l’ensemble de rôles de l’utilisateur — inclus tous les rôles souhaités, pas seulement ceux à ajouter. Pour ajouter un seul rôle sans affecter les autres, lis d’abord la liste des rôles courants, ajoute le nouveau rôle, puis envoie l’ensemble complet.
La mise à jour de enabled: false désactive immédiatement l’utilisateur dans Keycloak, invalidant toutes les sessions actives.
Suppression Temporaire et Restauration
Auris utilise la suppression temporaire (soft delete) pour préserver les traces d’audit. La suppression d’un utilisateur marque l’enregistrement avec deletedAt au lieu de le supprimer de la base de données ou de Keycloak.
/api/users/[id]Requires: manage:usersSupprime temporairement l’utilisateur en définissant deletedAt. L’utilisateur est immédiatement désactivé dans Keycloak et ne peut plus se connecter.
Restauration d’un utilisateur :
/api/users/[id]/restoreRequires: manage:usersEfface deletedAt et réactive l’utilisateur dans Keycloak.
Guide Console : La page Utilisateurs a un onglet filtre “Supprimés” qui affiche les utilisateurs supprimés temporairement. Chaque ligne d’utilisateur supprimé a une action “Restaurer” dans le menu déroulant.
La suppression définitive (suppression permanente de toutes les données utilisateur incluant les logs d’audit) est une opération séparée disponible uniquement aux propriétaires du tenant via Console → Paramètres → Zone Dangereuse. La suppression définitive satisfait les exigences de suppression du RGPD.
Sessions Utilisateur
Auris trace les sessions Keycloak actives par utilisateur. Les administrateurs peuvent voir les détails des sessions et révoquer des sessions individuelles pour forcer la ré-authentification — utile quand l’appareil d’un utilisateur est perdu ou compromis.
/api/users/[id]/sessionsRequires: manage:usersRetourne la liste des sessions actives pour l’utilisateur, incluant les informations sur l’appareil, l’adresse IP et le timestamp de la dernière activité.
/api/users/[id]/sessions/[sessionId]Requires: manage:usersRévoque une seule session. L’utilisateur est déconnecté à la prochaine utilisation du token.
/api/users/[id]/sessionsRequires: manage:usersRévoque toutes les sessions actives de l’utilisateur.
Guide Console : Ouvre un panneau de détail utilisateur et sélectionne l’onglet “Sessions”. Chaque session affiche navigateur/OS, adresse IP, heure de connexion et un bouton “Révoquer”.
Métadonnées Utilisateur
Les métadonnées permettent de stocker des données JSON arbitraires sur un utilisateur sans modifier le schéma d’Auris. Elles sont retournées sur chaque objet utilisateur et accessibles dans le SDK de Management.
Cas d’usage courants :
- Préférences spécifiques à l’application (
theme,language,timezone) - Identifiants internes (
employeeId,costCenter,managerId) - Feature flags ou données d’autorisation
- Suivi de la progression d’onboarding
Les métadonnées sont stockées comme objet JSON plat ou imbriqué. Il n’y a pas de schéma imposé — la structure est entièrement définie par l’application.
{
"metadata": {
"department": "engineering",
"employeeId": "EMP-4421",
"onboarding": {
"completed": true,
"completedAt": "2025-04-15T09:00:00Z"
}
}
}Les métadonnées ne sont pas incluses dans le JWT par défaut. Pour injecter des valeurs de métadonnées dans les tokens, configure les Custom JWT Claims dans Console → Applications → [App] → Custom Claims.
SDK de Management
Utilise le SDK de Management pour l’administration des utilisateurs côté serveur. Le SDK de Management s’authentifie via des credentials client M2M — il n’est pas destiné à une utilisation dans le code navigateur.
JavaScript
import { AurisClient } from '@auris/js'
const auris = new AurisClient({
domain: 'https://auth.votreapp.com',
clientId: process.env.AURIS_CLIENT_ID,
clientSecret: process.env.AURIS_CLIENT_SECRET,
})
// Crée un management client authentifié avec des credentials M2M
const mgmt = auris.createManagementClient({
clientId: process.env.AURIS_MGMT_CLIENT_ID,
clientSecret: process.env.AURIS_MGMT_CLIENT_SECRET,
})
// Liste les utilisateurs avec pagination
const result = await mgmt.users.list({ page: 1, limit: 20 })
console.log(result.data) // User[]
console.log(result.pagination) // { page, limit, total, totalPages }
// Obtient un utilisateur spécifique
const user = await mgmt.users.get('usr_01HX...')
// Crée un utilisateur
const newUser = await mgmt.users.create({
email: '[email protected]',
firstName: 'Claire',
roles: ['member'],
sendInvite: true,
})
// Met à jour un utilisateur
await mgmt.users.update('usr_01HX...', {
metadata: { department: 'product' },
})
// Désactive un utilisateur
await mgmt.users.update('usr_01HX...', { enabled: false })
// Supprime temporairement un utilisateur
await mgmt.users.delete('usr_01HX...')Permissions Requises
| Opération | Permission |
|---|---|
| Liste des utilisateurs | manage:users |
| Créer un utilisateur | manage:users |
| Mettre à jour un utilisateur | manage:users |
| Supprimer / restaurer un utilisateur | manage:users |
| Voir les sessions | manage:users |
| Révoquer les sessions | manage:users |
Pages Associées
- Console : Utilisateurs et Rôles — Guide visuel de l’interface de gestion des utilisateurs de la Console Admin
- Import et Export d’Utilisateurs — Import en masse depuis CSV ou JSON
- Provisioning SCIM 2.0 — Provisioning automatique depuis Okta, Azure AD et IdP similaires
- Claims JWT Personnalisés — Injecte les métadonnées utilisateur dans les access tokens