文件

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)。

Version

字串

必要

指定 2011-06-15

DurationSeconds

整數

選用

指定暫時憑證過期前的秒數。預設為 3600

  • 最小值為 900 或 15 分鐘。

  • 最大值為 604800 或 7 天。

如果省略 DurationSeconds,MinIO 會先檢查 JWT 令牌中是否有 exp 宣告,然後才會使用預設的持續時間。有關 JSON Web 令牌過期的更多資訊,請參閱 RFC 7519 4.1.4:過期時間宣告

政策 (Policy)

字串

選用

指定 URL 編碼的 JSON 格式 政策,以用作內嵌會期政策。

  • 最小字串長度為 1

  • 最大字串長度為 2048

臨時憑證的最終權限是作為 JWT 宣告 一部分指定的政策與指定的內嵌政策之間的交集。應用程式只能執行它們被明確授權的操作。

內嵌政策可以指定 JWT 宣告中允許的權限子集。應用程式永遠無法取得比 JWT 宣告政策中指定的更多特權。

省略此項以僅使用 JWT 宣告政策。

有關 MinIO 驗證和授權的更多資訊,請參閱 存取管理

角色 ARN (RoleArn)

字串

選用

用於所有使用者驗證請求的角色 Amazon Resource Number (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 回應 類似。