OIDC y funciones
Si utiliza un control de acceso basado en funciones, puede asignar funciones a un mandante de OIDC para darle acceso a su infraestructura de Equinix. A continuación, cuando su entidad de seguridad OIDC realice un intercambio de tokens, utilice el roleassignments:<org-id> para el parámetro de ámbito. Si el mandante tiene asignados roles en la organización, el intercambio de tokens emite un token al portador.
Los permisos necesarios para asignar y gestionar roles son:
- Control de acceso basado en roles - El rol
IAM Admin. - Control de acceso basado en atributos - Una política de acceso que contiene:
use/createRoleAssignment,use/listRoleAssignments,use/getRoleAssignment,use/deleteRoleAssignment.
Funciones disponibles
Para listar todas las funciones, envíe una solicitud GET al punto final /v1/roles.
Ejemplo de solicitud cURL:
curl -X GET 'https://access.eqix.equinix.com/v1/roles' \
-H 'Authorization: Bearer <token>'
Para listar los roles disponibles en un proyecto concreto, envíe una solicitud GET al punto final /v1/projects/{projectId}/roles. Ejemplo de solicitud cURL:
curl -X GET 'https://access.eqix.equinix.com/v1/projects/project:{projectId}/roles' \
-H 'Authorization: Bearer <token>'
La respuesta contiene el ID del rol y el ámbito de asignación.
El campo assignmentScope.type enumera los posibles ámbitos de asignación permitidos para ese rol de la siguiente lista: assignmentScopeType=PDS_ORG, assignmentScopeType=ORGANIZATION, assignmentScopeType=PROJECT, assignmentScopeType=BILLING_ACCOUNT, assignmentScopeType=SUBSCRIPTION_KEY, assignmentScopeType=PORT. El assignmentScope.id es el ID único para ese ámbito.
Cuando cree una asignación de funciones, deberá especificar el ID del proyecto y la información sobre el alcance.
Crear una asignación de funciones
Para crear una asignación de funciones, envíe una solicitud POST al punto final /v1/roleAssignments.
Ejemplo de solicitud 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>"
}
}'
Lista de asignaciones de funciones
Para listar todas las asignaciones de funciones para un tipo de ámbito de asignación, envíe una solicitud GET al punto final /v1/roleAssignments. Utilice los parámetros de consulta assignmentScopeId y assignmentScopeType para limitar la respuesta al tipo de ámbito especificado.
Ejemplo de solicitud cURL:
curl -X GET 'https://access.eqix.equinix.com/v1/roleAssignments?assignmentScopeId=<assignment_scope_id>&assignmentScopeType=<assignment_scope_type>' \
-H 'Authorization: Bearer <token>'
Obtener una asignación de funciones Detalles
Para obtener los detalles de la asignación de un rol específico, envíe una solicitud GET al punto final /v1/roleAssignments/{roleAssignmentId}.
Ejemplo de solicitud cURL:
curl -X GET 'https://access.eqix.equinix.com/v1/roleAssignments/{roleassignment:roleAssignmentId}' \
-H 'Authorization: Bearer <token>'
Eliminar una asignación de funciones
Cuando elimina una asignación de funciones, el usuario de OIDC pierde el acceso a los permisos concedidos por la función. Para eliminar una asignación de rol, envíe una solicitud DELETE al punto final /v1/roleAssignments/{roleAssignmentId}.
Ejemplo de solicitud cURL:
curl -X DELETE 'https://access.eqix.equinix.com/v1/roleAssignments/roleassignment:{roleAssignmentId}' \
-H 'Authorization: Bearer <token>'