文档

活动目录/LDAP 访问管理

MinIO 支持配置单个活动目录或 LDAP (AD/LDAP) 服务,以外部管理用户身份。启用 AD/LDAP 外部身份管理将禁用 MinIO 内部 IDP.

对于由外部 AD/LDAP 提供商管理的身份,MinIO 使用用户的识别名称,并尝试将其映射到现有的 策略.

如果 AD/LDAP 配置包含查询用户 AD/LDAP 组成员资格的必要设置,MinIO 还会使用这些组识别名称,并尝试将每个组识别名称映射到现有的 策略.

默认情况下,MinIO 拒绝对用户分配或继承的 策略未明确允许的所有操作或资源的访问。由 AD/LDAP 提供商管理的用户必须在用户配置文件数据中指定必要的策略。如果没有任何策略与用户 DN 或组 DN 匹配,MinIO 将阻止对部署上的所有操作和资源的访问。

MinIO 发出以身份验证用户并检索其组成员资格为目的的特定 AD/LDAP 查询作为 使用活动目录/LDAP 身份管理部署集群 的一部分进行配置。此页面涵盖创建 MinIO 策略以匹配可能的返回识别名称。

身份验证和授权流程

使用活动目录/LDAP 凭据的应用程序的登录流程如下

  1. 将 AD/LDAP 凭据指定到 MinIO 安全令牌服务 (STS) AssumeRoleWithLDAPIdentity API 端点。

  2. MinIO 会对 AD/LDAP 服务器验证提供的凭据。

  3. MinIO 检查任何名称与用户识别名称 (DN) 匹配的 策略,并将该策略分配给经过身份验证的用户。

    如果配置为执行组查询,MinIO 还会查询用户拥有成员资格的 AD/LDAP 组列表。MinIO 会检查任何名称与返回的组 DN 匹配的策略,并将该策略分配给经过身份验证的用户。

  4. MinIO 在 STS API 响应中以访问密钥、密钥和会话令牌的形式返回临时凭据。凭据具有与名称与经过身份验证的用户 DN 或组 DN 匹配的那些策略匹配的权限。

MinIO 提供了一个示例 Go 应用程序 ldap.go,它处理完整的登录流程。

AD/LDAP 用户可以选择创建与他们的 AD/LDAP 用户识别名称关联的 访问密钥。访问密钥是长期凭据,它们从父用户继承其权限。父用户可以在创建访问密钥时进一步限制这些权限。使用以下任一方法创建新的访问密钥

  • 使用 AD/LDAP 管理的用户信息登录到 MinIO 控制台.

    在“用户”部分中,选择“访问密钥”,然后选择“创建访问密钥 +”。

  • 使用 mc admin user svcacct add 命令来创建访问密钥。指定用户标识名称作为要关联访问密钥的用户名。

将策略映射到用户 DN

以下命令使用 mc idp ldap policy attach 将现有的 MinIO 策略 与 AD/LDAP 用户 DN 关联。

mc idp ldap policy attach myminio consoleAdmin \
  --user='cn=sisko,cn=users,dc=example,dc=com'

mc idp ldap policy attach myminio readwrite,diagnostics \
  --user='cn=dax,cn=users,dc=example,dc=com'
  • MinIO 会将与 cn=sisko,cn=users,dc=example,dc=com 匹配的 DN 的已认证用户分配 consoleAdmin 策略,授予其对 MinIO 服务器的完全访问权限。

  • MinIO 会将与 cn=dax,cn=users,dc=example,dc=com 匹配的 DN 的已认证用户分配 readwritediagnostics 策略,授予其对 MinIO 服务器的常规读/写访问权限 *以及* 对诊断性管理操作的访问权限。

  • MinIO 不会将任何策略分配给与 cn=quark,cn=users,dc=example,dc=com 匹配的 DN 的已认证用户,并拒绝其对 API 操作的所有访问权限。

将策略映射到组 DN

以下命令使用 mc idp ldap policy attach 将现有的 MinIO 策略 与 AD/LDAP 组 DN 关联。

mc idp ldap policy attach myminio consoleAdmin \
  --group='cn=ops,cn=groups,dc=example,dc=com'

mc idp ldap policy attach myminio diagnostics \
  --group='cn=engineering,cn=groups,dc=example,dc=com'
  • MinIO 会将任何在 cn=ops,cn=groups,dc=example,dc=com AD/LDAP 组中拥有成员资格的已认证用户分配 consoleAdmin 策略,授予其对 MinIO 服务器的完全访问权限。

  • MinIO 会将任何在 cn=engineering,cn=groups,dc=example,dc=com AD/LDAP 组中拥有成员资格的已认证用户分配 diagnostics 策略,授予其对诊断性管理操作的访问权限。