文档

AssumeRoleWithWebIdentity

MinIO 安全令牌服务 (STS) AssumeRoleWithWebIdentity API 端点使用从 已配置的 OpenID 身份提供者 (IDP) 返回的 JSON Web 令牌 (JWT) 生成临时访问凭据。此页面记录 MinIO 服务器 AssumeRoleWithWebIdentity 端点。有关使用 S3 兼容 SDK 实现 STS 的说明,请参阅该 SDK 的文档。

MinIO STS AssumeRoleWithWebIdentity API 端点是根据 AWS AssumeRoleWithWebIdentity 端点建模的,并共享某些请求/响应元素。此页面记录特定于 MinIO 的语法,并链接到 AWS 参考,其中包含所有共享元素。

请求端点

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={}

请求查询参数

此端点支持以下查询参数

参数

类型

描述

WebIdentityToken

字符串

必需

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

版本

字符串

必需

指定 2011-06-15

DurationSeconds

整数

可选

指定临时凭据到期后的秒数。默认为 3600

  • 最小值为 900 或 15 分钟。

  • 最大值为 604800 或 7 天。

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

策略

字符串

可选

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

  • 最小字符串长度为 1

  • 最大字符串长度为 2048

临时凭据的结果权限是作为 JWT 声明 部分指定的策略和指定的内联策略之间的交集。应用程序只能执行它们被明确授权执行的操作。

内联策略可以指定 JWT 声明策略允许的权限子集。应用程序永远不能承担超过 JWT 声明策略中指定的权限。

省略以仅使用 JWT 声明策略。

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

RoleArn

字符串

可选

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

使用时,所有有效的授权请求都将承担由 RolePolicy 提供的相同权限集。您可以使用 OpenID 策略变量 创建可对每个用户有权访问的内容进行编程管理的策略。

如果您没有提供 RoleArn,MinIO 会尝试通过基于 JWT 的声明进行授权。

响应元素

此 API 端点的 XML 响应类似于 AWS 的 AssumeRoleWithWebIdentity 响应。具体而言,MinIO 返回一个 AssumeRoleWithWebIdentityResult 对象,其中 AssumedRoleUser.Credentials 对象包含 MinIO 生成的临时凭据。

  • AccessKeyId - 应用程序用于身份验证的访问密钥。

  • SecretKeyId - 应用程序用于身份验证的密钥。

  • Expiration - 凭据过期后的 ISO-8601 日期时间。

  • 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 响应