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>'