Identity - Admin
Documentation detaillee des endpoints d'administration du module Identity : gestion des utilisateurs et des sessions.
Identity - Admin
Les endpoints d'administration requierent des permissions specifiques attribuees via le systeme RBAC (Role-Based Access Control). Tous les endpoints admin utilisent le prefixe /api/v1/identity/admin.
Systeme de permissions
Les permissions disponibles pour l'administration sont definies dans Identity.Constants.Permissions :
| Permission | Description |
|---|---|
users.activate | Autorisation d'activer un compte |
users.deactivate | Autorisation de desactiver un compte |
sessions.view_any | Visualiser les sessions de tout utilisateur |
sessions.revoke_any | Revoquer les sessions de tout utilisateur |
Gestion des utilisateurs
Activate User
POST /api/v1/identity/admin/users/{userId}/activate
Reactive un compte utilisateur precedemment desactive.
Tag : Admin -- Users
Permission requise : users.activate
Parametres de route
| Parametre | Type | Description |
|---|---|---|
userId | Guid | Identifiant de l'utilisateur |
Request body
{
"reason": "Manual review completed"
}
| Champ | Type | Requis | Description |
|---|---|---|---|
reason | string | Non | Raison de l'activation (enregistree pour l'audit) |
Reponses
204 No Content -- Utilisateur active.
403 Forbidden -- Permission users.activate manquante.
404 Not Found -- Utilisateur introuvable.
Effets de bord
- Un evenement domaine
UserActivatedEventest publie. - L'evenement peut declencher des notifications (ex : email de bienvenue).
- L'action est enregistree dans le journal d'audit.
Deactivate User
POST /api/v1/identity/admin/users/{userId}/deactivate
Desactive un compte utilisateur et revoque immediatement toutes ses sessions.
Tag : Admin -- Users
Permission requise : users.deactivate
Parametres de route
| Parametre | Type | Description |
|---|---|---|
userId | Guid | Identifiant de l'utilisateur |
Request body
{
"reason": "Terms of service violation"
}
| Champ | Type | Requis | Description |
|---|---|---|---|
reason | string | Non | Raison de la desactivation (enregistree pour l'audit) |
Reponses
204 No Content -- Utilisateur desactive.
403 Forbidden -- Permission users.deactivate manquante.
404 Not Found -- Utilisateur introuvable.
Effets de bord
- Toutes les sessions actives de l'utilisateur cible sont immediatement revoquees.
- Un evenement domaine
UserDeactivatedEventest publie. - L'utilisateur ne pourra plus se connecter tant que son compte n'est pas reactive via
ActivateUser. - Les JWT existants restent valides jusqu'a leur expiration naturelle (15-60 minutes).
Gestion des sessions (Admin)
Admin: Get User Sessions
GET /api/v1/identity/admin/users/{userId}/sessions
Liste toutes les sessions actives d'un utilisateur specifique.
Tag : Admin -- Sessions
Permission requise : sessions.view_any
Rate limiting : Admin sessions policy (50 req/min)
Parametres de route
| Parametre | Type | Description |
|---|---|---|
userId | Guid | Identifiant de l'utilisateur |
Reponse
200 OK :
[
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"deviceType": "Mobile",
"browser": "Safari",
"operatingSystem": "iOS",
"ipAddress": "192.168.1.42",
"createdAt": "2026-01-15T10:30:00Z",
"lastActivityAt": "2026-01-15T14:00:00Z",
"isCurrent": false
}
]
Differences avec l'endpoint utilisateur
- Les adresses IP sont affichees non masquees pour les administrateurs.
- Le champ
isCurrentest toujoursfalse(l'admin consulte les sessions d'un autre utilisateur).
Audit
L'acces est enregistre avec l'identite de l'administrateur et son adresse IP.
Admin: Revoke Session
DELETE /api/v1/identity/admin/sessions/{sessionId}
Revoque de force une session specifique, quel que soit l'utilisateur proprietaire.
Tag : Admin -- Sessions
Permission requise : sessions.revoke_any
Rate limiting : Admin sessions policy
Parametres de route
| Parametre | Type | Description |
|---|---|---|
sessionId | Guid | Identifiant de la session |
Reponses
204 No Content -- Session revoquee (ou n'existait pas, idempotent).
403 Forbidden -- Permission sessions.revoke_any manquante.
Audit
La revocation est enregistree avec l'identite de l'administrateur, l'identite de l'utilisateur cible, et l'adresse IP de l'administrateur.
Admin: Revoke All User Sessions
DELETE /api/v1/identity/admin/users/{userId}/sessions
Revoque de force toutes les sessions actives d'un utilisateur specifique.
Tag : Admin -- Sessions
Permission requise : sessions.revoke_any
Rate limiting : Admin sessions policy
Parametres de route
| Parametre | Type | Description |
|---|---|---|
userId | Guid | Identifiant de l'utilisateur |
Reponses
204 No Content -- Toutes les sessions revoquees.
403 Forbidden -- Permission sessions.revoke_any manquante.
Cas d'utilisation
Reponse d'urgence : invalider immediatement tous les acces pour un compte compromis ou suspendu. L'utilisateur ne pourra plus utiliser ses refresh tokens.
Les access tokens existants restent valides jusqu'a leur expiration naturelle. Pour un blocage complet, combiner avec POST /api/v1/identity/admin/users/{userId}/deactivate.
Audit
L'action est enregistree avec l'identite de l'administrateur et son adresse IP.
Integration events
Les actions d'administration publient des notifications MediatR pour informer les autres modules :
| Evenement | Declencheur | Description |
|---|---|---|
UserActivatedEvent | ActivateUser | Compte reactive |
UserDeactivatedEvent | DeactivateUser | Compte desactive |
AllSessionsRevokedNotification | DeactivateUser | Toutes les sessions d'un utilisateur revoquees |
Ces evenements sont definis dans Identity.Contracts.IntegrationEvents et peuvent etre consommes par d'autres modules via INotificationHandler<T>.