文件

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 命令來建立符合一個或多個聲明值的原則。