文档

AssumeRoleWithLDAPIdentity

MinIO Security Token Service (STS) AssumeRoleWithLDAPIdentity API 端点使用 Active Directory 或 LDAP 用户凭据生成临时访问凭据。本文档介绍 MinIO 服务端 AssumeRoleWithLDAPIdentity 端点。有关如何使用兼容 S3 的 SDK 实现 STS,请参考对应 SDK 的文档。

MinIO STS AssumeRoleWithLDAPIdentity API 端点以 AWS AssumeRoleWithWebIdentity 端点为模型,并共享部分请求/响应元素。本文档介绍 MinIO 特有的语法,并为 所有共享元素提供指向 AWS 参考文档的链接。

请求端点

AssumeRoleWithLDAPIdentity 端点格式如下:

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

以下示例使用了所有受支持参数。请将 minio.example.net 主机名替换为你的 MinIO 集群对应的 URL:

POST https://minio.example.net?Action=AssumeRoleWithLDAPIdentity
&LDAPUsername=USERNAME
&LDAPPassword=PASSWORD
&Version=2011-06-15
&Policy={}

请求查询参数

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

参数

类型

说明

LDAPUsername

string

必需

指定要进行认证的 AD/LDAP 用户名。

LDAPPassword

string

必需

指定 LDAPUsername 对应的密码。

Version

string

必需

指定 2011-06-15

DurationSeconds

integer

可选

指定临时凭据在多少秒后过期。默认值为 3600

  • 最小值为 ``900``(15 分钟)。

  • 最大值为 ``604800``(7 天)。

如果省略 DurationSeconds,MinIO 在使用默认时长前会先检查 JWT token 中是否包含 exp claim。有关 JSON web token 过期时间的更多信息,请参见 RFC 7519 4.1.4: Expiration Time Claim

Policy

string

可选

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

  • 最小字符串长度为 1

  • 最大字符串长度为 2048

临时凭据的最终权限是以下两者的交集:与 LDAPUsername 的 Distinguished Name (DN) 匹配的 policy,以及指定的内联策略。 应用只能执行其被明确授权的操作。

内联策略可以指定 DN 策略允许权限的子集。应用可获取的权限绝不会超过 DN 策略中定义的权限。

省略该参数则仅使用 DN 策略。

有关 MinIO 认证与授权的更多信息,请参见 Access Management

响应元素

此 API 端点的 XML 响应与 AWS 的 AssumeRoleWithLDAPIdentity response. 类似。具体而言,MinIO 返回 AssumeRoleWithLDAPIdentityResult 对象,其中 AssumedRoleUser.Credentials 对象包含 MinIO 生成的临时凭据:

  • AccessKeyId - 应用用于认证的访问密钥。

  • SecretKeyId - 应用用于认证的密钥。

  • Expiration - 凭据过期时间,采用 RFC3339 日期时间格式。

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

以下示例与 MinIO STS AssumeRoleWithLDAPIdentity 端点返回的响应类似:

<?xml version="1.0" encoding="UTF-8"?>
<AssumeRoleWithLDAPIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleWithLDAPIdentityResult>
   <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>
</AssumeRoleWithLDAPIdentityResult>
<ResponseMetadata/>
</AssumeRoleWithLDAPIdentityResponse>

错误元素

此 API 端点的 XML 错误响应与 AWS 的 AssumeRoleWithLDAPIdentity response.