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

MinIO Documentation

MinIO 外部身份管理插件

概述

MinIO身份管理插件提供了一个REST接口,通过webhook服务将身份验证卸载到外部身份管理器。

一旦启用,客户端应用程序将使用AssumeRoleWithCustomTokenSTS 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. 使用 POST 方法发送请求AssumeRoleWithCustomTokenAPI。

    该请求包含一个由配置的外部身份管理器用于客户端认证的令牌。

  2. MinIO 向配置的身份插件 URL 发起 POST 调用,使用 STS API 指定的令牌。

  3. 成功认证后,身份管理器会返回一个200 OK回复一个application/jsoncontent-type 和 body 采用以下结构:

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

    user

    所请求凭据的所有者

    maxValiditySeconds

    返回凭据的最大允许过期时长

    claims

    一个 JSON 字符串"key": "value"与请求凭据关联的配对声明。 MinIO 保留并忽略exp, parentsub如果存在 claims 对象。

  4. MinIO 返回 STS API 请求的响应,其中包含用于进行身份验证请求的临时凭证。

如果身份管理器拒绝认证请求或遇到其他错误,响应必须返回 a403 FORBIDDENHTTP 状态码与application/jsoncontent-type 和 body 采用以下结构:

{
     "reason": "<string>"
}

The"reason"字段应包含403错误的原因。

创建策略以匹配声明

使用mc admin policy创建匹配一个或多个声明值的策略的命令。