Silo 外部身份管理插件
概述
MinIO Identity Management Plugin 提供了一个 REST 接口,用于通过 Webhook 服务将认证委托给外部身份管理器。
启用后,客户端应用程序使用 AssumeRoleWithCustomToken STS API 扩展为 MinIO 生成访问令牌。 MinIO 通过向已配置的插件端点发起 POST 请求来验证该令牌,并根据返回的响应判断客户端的认证状态。
配置设置
你可以使用以下环境变量或配置设置来配置 MinIO Identity Management Plugin:
认证与授权流程
应用程序的登录流程如下:
-
使用 AssumeRoleWithCustomToken API 发起 POST 请求。
该请求包含一个令牌,供已配置的外部身份管理器用于认证客户端。
-
MinIO 使用为 STS API 指定的令牌,向已配置的身份插件 URL 发起 POST 调用。
-
认证成功后,身份管理器返回一个
200 OK响应,其content-type为application/json,响应体结构如下:user所请求凭证的所有者
maxValiditySeconds返回凭证允许的最大过期时长
claims与所请求凭证关联的、由
"key": "value"键值对组成的 claims JSON 字符串。 如果存在exp、parent和subclaims 对象,MinIO 会将其保留并忽略。 -
MinIO 向 STS API 请求返回响应,其中包含可用于发起已认证请求的临时凭证。
如果身份管理器拒绝该认证请求,或在处理过程中发生其他错误,则响应 必须 返回 403 FORBIDDEN HTTP 状态码,content-type 为 application/json,响应体结构如下:
"reason" 字段应包含返回 403 的原因。
创建与 Claims 匹配的策略
使用 mc admin policy 命令创建与一个或多个 claim 值匹配的策略。