OIDC 和角色
如果您使用基于角色的访问控制,您可以为 OIDC 主体分配角色,使其能够访问您的 Equinix 基础架构。然后,当您的 OIDC 主体执行令牌交换时,请使用 roleassignments:<org-id> 作为 scope 参数。如果该主体在组织中拥有角色分配,则令牌交换将颁发持有者令牌。
分配和管理角色所需的权限包括:
- 基于角色的访问控制 -
IAM Admin角色。 - 基于属性的访问控制 - 包含以下信息的访问策略:
use/createRoleAssignment、use/listRoleAssignments、use/getRoleAssignment、use/deleteRoleAssignment。
现有职位
要列出所有角色,请向 /v1/roles 端点发送 GET 请求。
示例 cURL 请求:
curl -X GET 'https://access.eqix.equinix.com/v1/roles' \
-H 'Authorization: Bearer <token>'
要列出特定项目中可用的角色,请向 /v1/projects/{projectId}/roles 端点发送 GET 请求。
cURL 请求示例:
curl -X GET 'https://access.eqix.equinix.com/v1/projects/project:{projectId}/roles' \
-H 'Authorization: Bearer <token>'
响应中包含角色 ID 和分配范围。
assignmentScope.type 字段列出了该角色可从以下列表中选择的分配范围:assignmentScopeType=PDS_ORG、assignmentScopeType=ORGANIZATION、assignmentScopeType=PROJECT、assignmentScopeType=BILLING_ACCOUNT、assignmentScopeType=SUBSCRIPTION_KEY、assignmentScopeType=PORT。assignmentScope.id 是该范围的唯一 ID。
创建角色分配时,需要指定项目 ID 和范围信息。
创建角色分配
要创建角色分配,请向 /v1/roleAssignments 端点发送 POST 请求。
示例 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>"
}
}'
列出角色分配
要列出某个分配范围类型的所有角色分配,请向 /v1/roleAssignments 端点发送 GET 请求。使用 assignmentScopeId 和 assignmentScopeType 查询参数可将响应限制为指定范围类型。
示例 cURL 请求:
curl -X GET 'https://access.eqix.equinix.com/v1/roleAssignments?assignmentScopeId=<assignment_scope_id>&assignmentScopeType=<assignment_scope_type>' \
-H 'Authorization: Bearer <token>'
获取角色分配详情
要获取特定角色分配的详细信息,请向 /v1/roleAssignments/{roleAssignmentId} 端点发送 GET 请求。
示例 cURL 请求:
curl -X GET 'https://access.eqix.equinix.com/v1/roleAssignments/{roleassignment:roleAssignmentId}' \
-H 'Authorization: Bearer <token>'
删除角色分配
删除角色分配后,OIDC 用户将失去该角色授予的权限。要删除角色分配,请向 /v1/roleAssignments/{roleAssignmentId} 端点发送 DELETE 请求。
示例 cURL 请求:
curl -X DELETE 'https://access.eqix.equinix.com/v1/roleAssignments/roleassignment:{roleAssignmentId}' \
-H 'Authorization: Bearer <token>'