AssumeRoleWithWebIdentity
MinIO 安全令牌服务(STS)的 AssumeRoleWithWebIdentity
API 端点使用从 配置的 OpenID IDentity Provider (IDP)
返回的 JSON Web Token (JWT) 来生成临时
访问凭证。 本页面
文档化了 MinIO 服务器 AssumeRoleWithWebIdentity
端点。
对于使用与 S3 兼容的 SDK 实现 STS 的说明,
请参考该 SDK 的文档。
MinIO STS的 AssumeRoleWithWebIdentity
API端点
是模仿AWS的 AssumeRoleWithWebIdentity
端点设计的,并且共享某些请求/响应
元素。 本页面
文档化了 MinIO 特定的语法,并链接到 AWS 参考资料,
以查看所有共享元素。
访问的MinIO节点
AssumeRoleWithWebIdentity
端点具有以下形式:
POST https://minio.example.net?Action=AssumeRoleWithWebIdentity[&ARGS]
以下示例使用了所有支持的参数。
将 minio.example.net
主机名替换为您 MinIO 集群的
正确 URL:
POST https://minio.example.net?Action=AssumeRoleWithWebIdentity
&WebIdentityToken=TOKEN
&Version=2011-06-15
&DurationSeconds=86000
&Policy={}
请求查询参数
此端点支持以下查询参数:
Parameter |
Type |
描述 |
---|---|---|
|
string |
必需的 指定由 配置的 OpenID 身份提供程序 返回的 JSON Web 令牌 (JWT)。 |
|
string |
必需的 指定``2011-06-15``. |
|
integer |
可选 指定临时凭证过期的秒数。
默认值为
如果省略了 |
|
string |
可选 指定一个 URL 编码的 JSON 格式的 策略 用作内联会话策略。
临时证书 resulting permissions 是 JWT claim 中指定的策略和指定的内联策略的交集。 应用程序只能执行它们明确被授权执行 的操作。 内置策略可以指定JWT声明中指定的策略所允许的 权限的一个子集。应用程序永远不能假定比JWT 声明策略中指定的更多特权。 省略仅使用 JWT 声明策略。 有关MinIO身份验证和授权的更多信息, 请参见:访问管理。 |
|
string |
可选 用于所有用户身份验证请求的Amazon资源名称(Arn)角色。
如果使用,必须通过 当使用时,所有有效的授权请求都假定具有由RolePolicy提供的相同权限集。 您可以使用 OpenID Policy Variables 来创建策略,以编程方式管理每个用户可以访问的内容。 如果您没有提供RoleArn,MinIO将尝试通过基于JWT的声明进行授权。 |
响应元素
该API端点的XML响应类似于AWS
AssumeRoleWithWebIdentity response 响应。
具体来说,MinIO 返回一个 AssumeRoleWithWebIdentityResult
对象,
其中 AssumedRoleUser.Credentials
对象包含了由 MinIO 生成的
临时凭证:
AccessKeyId
- 应用程序用于认证的访问密钥。SecretKeyId
- 应用程序用于认证的秘密密钥。Expiration
- 证书过期的 RFC3339 日期和时间。SessionToken
- 应用程序用于认证的会话令牌。一些
SDK 在使用临时凭证时可能需要此字段。
以下示例类似于MinIO STS AssumeRoleWithWebIdentity
端点
返回的响应:
<?xml version="1.0" encoding="UTF-8"?>
<AssumeRoleWithWebIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleWithWebIdentityResult>
<AssumedRoleUser>
<Arn/>
<AssumeRoleId/>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>Y4RJU1RNFGK48LGO9I2S</AccessKeyId>
<SecretAccessKey>sYLRKS1Z7hSjluf6gEbb9066hnx315wHTiACPAjg</SecretAccessKey>
<Expiration>2019-08-08T20:26:12Z</Expiration>
<SessionToken>eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiJZNFJKVTFSTkZHSzQ4TEdPOUkyUyIsImF1ZCI6IlBvRWdYUDZ1Vk80NUlzRU5SbmdEWGo1QXU1WWEiLCJhenAiOiJQb0VnWFA2dVZPNDVJc0VOUm5nRFhqNUF1NVlhIiwiZXhwIjoxNTQxODExMDcxLCJpYXQiOjE1NDE4MDc0NzEsImlzcyI6Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvb2F1dGgyL3Rva2VuIiwianRpIjoiYTBiMjc2MjktZWUxYS00M2JmLTg3MzktZjMzNzRhNGNkYmMwIn0.ewHqKVFTaP-j_kgZrcOEKroNUjk10GEp8bqQjxBbYVovV0nHO985VnRESFbcT6XMDDKHZiWqN2vi_ETX_u3Q-w</SessionToken>
</Credentials>
</AssumeRoleWithWebIdentityResult>
<ResponseMetadata/>
</AssumeRoleWithWebIdentityResponse>
错误元素
此 API 端点的 XML 错误响应类似于 AWS AssumeRoleWithWebIdentity response.