文件

MinIO 外部身分管理外掛程式

總覽

MinIO 身分管理外掛程式提供 REST 介面,可透過 webhook 服務將驗證卸載到外部身分管理員。

啟用後,用戶端應用程式會使用 AssumeRoleWithCustomToken STS API 擴充功能來產生 MinIO 的存取權杖。MinIO 會向已設定的外掛程式端點發出 POST 請求來驗證此權杖,並使用傳回的回應來判斷用戶端的驗證狀態。

組態設定

您可以使用下列環境變數或組態設定來設定 MinIO 身分管理外掛程式

將下列 環境變數 指定給部署中的每個 MinIO 伺服器

MINIO_IDENTITY_PLUGIN_URL="https://external-auth.example.net:8080/auth"
MINIO_IDENTITY_PLUGIN_ROLE_POLICY="consoleAdmin"

# All other envvars are optional
MINIO_IDENTITY_PLUGIN_TOKEN="Bearer TOKEN"
MINIO_IDENTITY_PLUGIN_ROLE_ID="external-auth-provider"
MINIO_IDENTITY_PLUGIN_COMMENT="External Identity Management using PROVIDER"

使用 mc admin config set 命令設定下列組態設定

mc admin config set identity_plugin \
   url="https://external-auth.example.net:8080/auth" \
   role_policy="consoleAdmin" \

   # All other config settings are optional
   token="Bearer TOKEN" \
   role_id="external-auth-provider" \
   comment="External Identity Management using PROVIDER"

驗證和授權流程

應用程式的登入流程如下

  1. 使用 AssumeRoleWithCustomToken API 發出 POST 請求。

    該請求包含已設定的外部身分管理員用於驗證用戶端的權杖。

  2. MinIO 使用指定給 STS API 的權杖,向已設定的身分外掛程式 URL 發出 POST 呼叫。

  3. 成功驗證後,身分管理員會傳回 200 OK 回應,其中包含 application/json 內容類型和具有以下結構的本文

    {
       "user": "<string>",
       "maxValiditySeconds": 3600,
       "claims": "KEY=VALUE,[KEY=VALUE,...]"
    }
    

    使用者

    所請求認證的擁有者

    maxValiditySeconds

    傳回的認證允許的最大到期持續時間

    宣告

    與所請求認證相關聯的鍵/值配對宣告清單。如果存在,MinIO 會保留並忽略 expparentsub 宣告物件。

  4. MinIO 會將回應傳回給 STS API 請求,其中包含用於發出已驗證請求的臨時認證。

如果身分管理員拒絕驗證請求或以其他方式遇到錯誤,則回應必須傳回 403 FORBIDDEN HTTP 狀態碼,其中包含 application/json 內容類型和具有以下結構的本文

{
     "reason": "<string>"
}

"reason" 欄位應包含 403 錯誤的原因。

建立符合宣告的政策

使用 MinIO 控制台 *或* mc admin policy 指令來建立符合一個或多個宣告值的政策。