中文文档

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

描述

WebIdentityToken

string

必需的

指定由 配置的 OpenID 身份提供程序 返回的 JSON Web 令牌 (JWT)。

Version

string

必需的

指定``2011-06-15``.

DurationSeconds

integer

可选

指定临时凭证过期的秒数。 默认值为 3600

  • 最小值为 900 秒,即 15 分钟。

  • 最大值为 604800 秒,即 7 天。

如果省略了 DurationSeconds ,MinIO 在使用默认 持续时间之前会检查 JWT 令牌中的 exp 声明。 有关 JSON web token 过期的更多信息,请参见 RFC 7519 4.1.4: Expiration Time Claim

Policy

string

可选

指定一个 URL 编码的 JSON 格式的 策略 用作内联会话策略。

  • 最小字符串长度为 1

  • 最大字符串长度为 2048

临时证书 resulting permissions 是 JWT claim 中指定的策略和指定的内联策略的交集。 应用程序只能执行它们明确被授权执行 的操作。

内置策略可以指定JWT声明中指定的策略所允许的 权限的一个子集。应用程序永远不能假定比JWT 声明策略中指定的更多特权。

省略仅使用 JWT 声明策略。

有关MinIO身份验证和授权的更多信息, 请参见:访问管理

RoleArn

string

可选

用于所有用户身份验证请求的Amazon资源名称(Arn)角色。 如果使用,必须通过 role_policy 配置参数或 MINIO_IDENTITY_OPENID_ROLE_POLICY 环境变量为RoleArn的提供者定义一个匹配的OIDC RolePolicy。

当使用时,所有有效的授权请求都假定具有由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.

Join Slack 商业支持购买咨询