文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

AssumeRoleWithWebIdentity

MinIO 安全令牌服务 (STS)AssumeRoleWithWebIdentityAPI 端点使用从已配置的 OpenID 身份提供者 (IDP). This page documents the MinIO serverAssumeRoleWithWebIdentity端点。有关使用 S3 兼容 SDK 实现 STS 的说明,请参阅该 SDK 的文档。

MinIO STSAssumeRoleWithWebIdentityAPI endpoint 是参照 AWS 建模的AssumeRoleWithWebIdentityendpoint 并共享特定的请求/响应元素。本页 记录了 MinIO 特定的语法,并链接到 AWS 参考文档以了解 所有共享元素。

请求端点

TheAssumeRoleWithWebIdentityendpoint 具有以下形式:

POST https://minio.example.net?Action=AssumeRoleWithWebIdentity[&ARGS]

以下示例使用了所有支持的参数。请替换minio.example.net使用您 MinIO 集群对应的 URL 替换 hostname:

POST https://minio.example.net?Action=AssumeRoleWithWebIdentity
&WebIdentityToken=TOKEN
&Version=2011-06-15
&DurationSeconds=86000
&Policy={}

请求查询参数

此端点支持以下查询参数:

参数

类型

描述

WebIdentityToken

字符串

必需

指定由配置的 OpenID 身份提供者.

Version

字符串

必需

指定2011-06-15.

DurationSeconds

整数

可选

指定临时凭据过期的秒数。默认为3600.

  • 最小值为900或 15 分钟。

  • 最大值为604800或 7 天。

If DurationSeconds被省略时,MinIO 会检查 JWT 令牌中的exp在使用默认持续时间之前进行声明。请参阅RFC 7519 4.1.4: 过期时间声明有关 JSON Web Token 过期时间的更多信息。

Policy

字符串

可选

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

  • 最小字符串长度为1.

  • 最大字符串长度为2048.

临时凭证的最终权限是 作为请求一部分指定的策略与JWT claim以及指定的内联策略。应用程序只能执行那些被明确授权的操作。

内联策略可以指定JWT声明中策略所允许的权限子集。应用程序绝不能获取超出JWT声明策略所指定权限范围的特权。

仅使用 JWT 声明策略。

访问管理有关 MinIO 身份验证和授权的更多信息。

RoleArn

字符串

可选

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

当使用时,所有有效的授权请求都会继承RolePolicy提供的同一组权限。 您可以使用OpenID 策略变量创建策略,以编程方式管理每个用户可访问的内容。

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

响应元素

此 API 端点的 XML 响应与 AWS 类似AssumeRoleWithWebIdentity 响应具体来说,MinIO 返回一个AssumeRoleWithWebIdentityResult对象, 其中AssumedRoleUser.Credentialsobject 包含由 MinIO 生成的临时凭证:

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

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

  • Expiration- 该RFC3339凭证过期后的日期和时间。

  • SessionToken- 应用程序用于身份验证的会话令牌。某些 SDK 在使用临时凭证时可能需要此字段。

以下示例类似于 MinIO STS 返回的响应AssumeRoleWithWebIdentityendpoint:

<?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 响应.