Skip to main content

OIDC et rôles

Si vous utilisez le contrôle d'accès basé sur les rôles, vous pouvez attribuer des rôles à un principal OIDC pour lui donner accès à votre infrastructure Equinix. Ensuite, lorsque votre principal OIDC effectue un échange de jetons (../../equinix-api/oidc-api-authentication.md), utilisez roleassignments:<org-id> pour le paramètre de portée. Si le directeur possède des rôles au sein de l'organisation, l'échange de jetons génère un jeton porteur.

Les permissions nécessaires pour attribuer et gérer les rôles sont soit:

  • Contrôle d'accès basé sur les rôles - Le rôle IAM Admin.
  • Contrôle d'accès basé sur les attributs - Une politique d'accès contenant: use/createRoleAssignment, use/listRoleAssignments, use/getRoleAssignment, use/deleteRoleAssignment.

Rôles disponibles

Pour lister tous les rôles, envoyez une requête GET au point de terminaison /v1/roles.

Exemple de requête cURL:

curl -X GET 'https://access.eqix.equinix.com/v1/roles' \
-H 'Authorization: Bearer <token>'

Pour lister les rôles disponibles dans un projet particulier, envoyez une requête GET au point de terminaison /v1/projects/{projectId}/roles. Exemple de requête cURL:

curl -X GET 'https://access.eqix.equinix.com/v1/projects/project:{projectId}/roles' \
-H 'Authorization: Bearer <token>'

La réponse contient l'identifiant du rôle et la portée d'affectation.

Le champ assignmentScope.type répertorie les étendues d'affectation possibles autorisées pour ce rôle parmi la liste suivante: assignmentScopeType=PDS_ORG, assignmentScopeType=ORGANIZATION, assignmentScopeType=PROJECT, assignmentScopeType=BILLING_ACCOUNT, assignmentScopeType=SUBSCRIPTION_KEY, assignmentScopeType=PORT. Le assignmentScope.id est l'identificateur unique de cette étendue.

Lorsque vous créez une affectation de rôle, vous devez spécifier l'ID du projet et les informations relatives à la portée.

Créer une affectation de rôle

Pour créer une affectation de rôle, envoyez une requête POST au point de terminaison /v1/roleAssignments.

Exemple de requête cURL:

curl -X POST 'https://access.eqix.equinix.com/v1/roleAssignments' \
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"principal": "<principal:principal_id>",
"roleId": "<role:role_id>",
"assignmentScope": {
"id": "<role_assignment_scope_id>",
"type": "<role_assignment_scope>"
}
}'

Liste des affectations de rôles

Pour afficher toutes les affectations de rôles pour un type de portée d'affectation donné, envoyez une requête GET au point de terminaison /v1/roleAssignments. Utilisez les paramètres de requête assignmentScopeId et assignmentScopeType pour limiter la réponse au type de portée spécifié.

Exemple de requête cURL:

curl -X GET 'https://access.eqix.equinix.com/v1/roleAssignments?assignmentScopeId=<assignment_scope_id>&assignmentScopeType=<assignment_scope_type>' \
-H 'Authorization: Bearer <token>'

Obtenez les détails de votre attribution de rôle

Pour obtenir les détails d'une attribution de rôle spécifique, envoyez une requête GET au point de terminaison /v1/roleAssignments/{roleAssignmentId}.

Exemple de requête cURL:

curl -X GET 'https://access.eqix.equinix.com/v1/roleAssignments/{roleassignment:roleAssignmentId}' \
-H 'Authorization: Bearer <token>'

Supprimer une affectation de rôle

Lorsque vous supprimez une attribution de rôle, l'utilisateur OIDC perd l'accès aux autorisations conférées par ce rôle. Pour supprimer une affectation de rôle, envoyez une requête DELETE au point de terminaison /v1/roleAssignments/{roleAssignmentId}.

Exemple de requête cURL:

curl -X DELETE 'https://access.eqix.equinix.com/v1/roleAssignments/roleassignment:{roleAssignmentId}' \
-H 'Authorization: Bearer <token>'
Cette page vous a-t-elle été utile ?