OIDC 和访问策略
如果您使用基于属性的访问控制,您可以向 OIDC 主体授予访问策略,使其能够访问您的 Equinix 基础架构。然后,当您的 OIDC 主体执行 令牌交换 时,请为 scope 参数提供访问策略的 ERN。如果主体拥有授权,则令牌交换将颁发一个持有者令牌。
管理授权和访问策略所需的权限包括:
- 基于角色的访问控制 -
IAM Admin角色。 - 基于属性的访问控制 - 包含以下信息的访问策略:
use/listAccessPolicies、use/addGrant、use/listGrants、use/removeGrant。
基于属性的访问控制目前处于有限可用性 (LA) 状态。访问权限仅限于特定客户和用例。功能可能不完整、可能会更改,并且可能存在缺陷。运行安全措施和容量限制适用。使用此 API 即表示您确认:
- 它仅用于早期体验和反馈目的。
- 供应情况可能受地区、市场或容量限制。
- 现阶段无法保证功能、性能和稳定性。
- 文档和支持资源可能会不断更新。
- 在此阶段收集的反馈意见将有助于在正式发布 (GA) 之前进行改进。
查看访问策略
要查看项目的现有访问策略,请向 /v1/projects/{projectId}/accessPolicies 端点发送 GET 请求。向访问策略添加授权时,必须在请求中提供访问策略 ID。
示例 cURL 请求:
curl -X GET 'https://access.eqix.equinix.com/v1/projects/{projectId}/accessPolicies' \
-H 'Authorization: Bearer <token>'
添加拨款
要向访问策略添加授权,请向 /v1/projects/{projectId}/accessPolicies/{accessPolicyId}/grants 端点发送 POST 请求。具体说明:
-
请求路径中的项目 ID 和访问策略 ID。
-
您要授予访问权限的 OIDC 主体,在
grantee对象中,应采用以下格式之一:principal:<projectId>:<idp>:<subject>for a user or service.group:<projectId>:<idp>:<groupName>for a group.project:<projectId>for another project to export this access policy to another project.
示例 cURL 请求:
curl -X POST 'https://access.eqix.equinix.com/v1/projects/{projectId}/accessPolicies/{accessPolicyId}/grants' \
-H 'content-type: application/json' \
-H 'authorization: Bearer <token>' \
-d '{
"grantee": "principal:<projectId>:<idp>:<subject>"
}'
列出拨款
要查看哪些 OIDC 主体已被授予特定访问策略,请获取授权列表。向 /v1/projects/{projectId}/accessPolicies/{accessPolicyId}/grants 端点发送 GET 请求。
示例 cURL 请求:
curl -X GET 'https://access.eqix.equinix.com/v1/projects/{projectId}/accessPolicies/{accessPolicyId}/grants' \
-H 'Authorization: Bearer <token>'
撤销拨款
移除授权后,OIDC 主体将失去对访问策略所授予权限的访问权限。要移除授权,请向 /v1/projects/{projectId}/accessPolicies/{accessPolicyId}/grants/{grantId} 端点发送 DELETE 请求。
示例 cURL 请求:
curl -X DELETE 'https://access.eqix.equinix.com/v1/projects/{projectId}/accessPolicies/{accessPolicyId}/grants/{grantId}' \
-H 'Authorization: Bearer <token>'