Aller au contenu principal
S'applique à :
DuoKey CockpitAPI de gestionRBAC · ABAC · SSO

L'API Administration fait partie de l'API de gestion authentifiée (/api/…). Chaque requête est propre à un tenant : le tenant est extrait du jeton porteur, jamais passé explicitement, et un appelant ne voit et ne modifie jamais que les identités et la configuration de son propre tenant. Voir Authentification pour savoir comment obtenir un jeton.

Chaque route est soumise aux permissions d'administration — Users.*, Roles.*, OrganizationUnits.*, IdentityProviders.* et AccessPolicies.*. Les permissions sont des feuilles hiérarchiques en notation pointée (par exemple AccessPolicies.Create), et accorder un préfixe parent accorde implicitement chaque feuille en dessous. Un appelant dépourvu de la permission requise reçoit 403 Forbidden.

Remarque

Tous les chemins sont relatifs à votre hôte Cockpit, par exemple https://cockpit.example.com. Les accolades telles que {id} désignent un paramètre de chemin de type UUID.

Utilisateurs​

Les utilisateurs sont les identités qui se connectent à un tenant. Chacune porte un état d'authentification complet (mot de passe, TOTP, compteur de verrouillage, statut d'approbation) et peut se voir attribuer des rôles et des unités organisationnelles.

Méthode + CheminObjetPermission
GET /api/usersLister les utilisateursUsers.Read
POST /api/usersCréer un utilisateurUsers.Create
POST /api/users/{id}/approveApprouver un utilisateur en attenteUsers.Approve
POST /api/users/{id}/lockVerrouiller un compte utilisateurUsers.Update
POST /api/users/{id}/unlockDéverrouiller un compte utilisateurUsers.Update
POST /api/users/{id}/suspendSuspendre un compte utilisateurUsers.Update
POST /api/users/{id}/reset-passwordRéinitialiser le mot de passe d'un utilisateurUsers.Update
PUT /api/users/{id}/rolesAttribuer des rôles à un utilisateurUsers.Update

Rôles et permissions​

L'autorisation est basée sur les rôles. Un rôle est un ensemble nommé de permissions ; le jeton reçu par un utilisateur porte l'ensemble aplati des permissions issues de ses rôles. Les rôles peuvent être limités à une unité organisationnelle afin qu'un octroi ne s'applique qu'au sein de cette branche.

Méthode + CheminObjetPermission
GET /api/rolesLister les rôlesRoles.Read
POST /api/rolesCréer un rôleRoles.Create
PUT /api/roles/{id}Mettre à jour un rôleRoles.Update
DELETE /api/roles/{id}Supprimer un rôleRoles.Delete
PUT /api/roles/{id}/permissionsDéfinir l'ensemble de permissions d'un rôleRoles.Update
GET /api/roles/permissionsLister le catalogue hiérarchique des permissionsRoles.Read

Unités organisationnelles​

Les unités organisationnelles (OU) ajoutent un second niveau de délimitation au sein d'un tenant. Elles forment un arbre avec un code de chemin matérialisé (tel que 00001.00003.00007) ; des ressources comme les apps peuvent être rattachées à une OU, et des rôles peuvent être attribués au niveau de l'OU.

Méthode + CheminObjetPermission
GET /api/org-unitsLister les unités organisationnellesOrganizationUnits.Read
POST /api/org-unitsCréer une unité organisationnelleOrganizationUnits.Create
GET /api/org-units/selectableLister les OU sélectionnables pour attributionOrganizationUnits.Read
/api/org-units/{id}/rolesAttribuer des rôles délimités à une OU (administration déléguée)OrganizationUnits.Update

Fournisseurs d'identité​

Les fournisseurs d'identité externes permettent aux utilisateurs de se connecter avec des identifiants d'entreprise (Azure AD / Entra ID, Okta, Keycloak). Les fournisseurs sont configurés avec des identifiants client, des URL d'autorité / métadonnées, des scopes et des correspondances de claims, et peuvent auto-provisionner des utilisateurs dans des rôles par défaut.

Méthode + CheminObjetPermission
GET /api/identity-providersLister les fournisseurs d'identité configurésIdentityProviders.Read
POST /api/identity-providersCréer un fournisseur d'identitéIdentityProviders.Create
POST /api/identity-providers/discoverDécouvrir les endpoints du fournisseur à partir d'une URL de métadonnées / autoritéIdentityProviders.Read
POST /api/identity-providers/{id}/test-connectionTester la connexion et les identifiants du fournisseurIdentityProviders.Update
POST /api/identity-providers/{id}/toggleActiver ou désactiver le fournisseurIdentityProviders.Update
Le SSO dépend des fonctionnalités activées

L'authentification unique est également régie par les indicateurs de fonctionnalité du fournisseur d'identité pour l'édition du tenant ; un fournisseur doit être activé pour l'édition avant de pouvoir être utilisé.

Politiques d'accès​

Au-delà du RBAC, l'administration inclut le moteur de politiques d'accès ABAC Casbin, qui régit les opérations cryptographiques en temps réel selon l'utilisateur, l'IP, la localisation, l'heure et le groupe. Une politique est propre à un tenant et ne prend effet qu'une fois liée à une ressource (un service DKE, une app générique, ou un endpoint AWS XKS) via son access_policy_id. Le modèle complet est documenté sur la page Politiques d'accès.

Méthode + CheminObjetPermission
GET /api/access-policiesLister les politiquesAccessPolicies.Read
POST /api/access-policiesCréer une politiqueAccessPolicies.Create
GET /api/access-policies/{id}Obtenir une politiqueAccessPolicies.Read
PUT /api/access-policies/{id}Mettre à jour une politiqueAccessPolicies.Update
DELETE /api/access-policies/{id}Supprimer une politiqueAccessPolicies.Delete
POST /api/access-policies/validateValider une définition de politique avant enregistrementAccessPolicies.Read
GET /api/access-policies/capabilitiesMatrice de capacités par type d'app (quelles dimensions parmi les cinq chaque type d'app respecte)AccessPolicies.Read
GET /api/access-policies/available-groupsGroupes disponibles pour les règles de groupeAccessPolicies.Read
GET /api/access-policies/audit · GET /api/access-policies/{id}/auditPiste d'audit de l'application des politiquesAccessPolicies.Read

Emprunt d'identité​

L'emprunt d'identité (impersonation) permet à un administrateur autorisé d'agir en tant qu'un autre utilisateur à des fins de support et de dépannage. Démarrer une session émet un jeton limité dans le contexte de l'utilisateur cible ; l'arrêter ramène l'appelant à sa propre identité. Chaque emprunt d'identité est enregistré dans les journaux d'activité.

Méthode + CheminObjetPermission
POST /api/impersonation/startDémarrer l'emprunt d'identité d'un utilisateur cibleUsers.Impersonate
POST /api/impersonation/stopArrêter l'emprunt d'identité et restaurer l'identité de l'appelantUsers.Impersonate
L'emprunt d'identité est une opération privilégiée

L'emprunt d'identité accorde à l'appelant les permissions effectives de l'utilisateur cible pendant la durée de la session. Réservez la permission d'emprunt d'identité aux administrateurs de confiance et examinez régulièrement la piste d'audit.