文档

使用 Active Directory/LDAP 配置 MinIO 进行身份验证

概述

MinIO 支持配置单个 Active Directory/LDAP 连接,用于外部管理用户身份。

此页面上的步骤提供以下方面的说明:

  • 为外部 AD/LDAP 提供商配置 MinIO 集群。

  • 使用 AD/LDAP 凭据访问 MinIO 控制台。

  • 使用 MinIO AssumeRoleWithLDAPIdentity 安全令牌服务 (STS) API 生成供应用程序使用的临时凭据。

此步骤对 AD/LDAP 服务是通用的。有关配置用户身份的特定说明或步骤,请参阅您选择的 AD/LDAP 提供商的文档。

先决条件

与 Active Directory/LDAP 兼容的标识提供商

此步骤假定存在 Active Directory 或 LDAP 服务。有关配置 AD/LDAP 的说明超出了此步骤的范围。

MinIO 需要一个只读访问密钥,它使用该密钥 绑定 以执行经过身份验证的用户和组查询。确保为打算与 MinIO 一起使用的每个 AD/LDAP 用户和组在 MinIO 部署上分配相应的 策略。没有分配策略的 AD/LDAP 用户 *并且* 属于没有分配策略的组的成员没有权限访问 MinIO 集群上的任何操作或资源。

MinIO 部署

此程序假设现有的 MinIO 集群正在运行 最新稳定版 MinIO 版本。有关新 MinIO 部署的更完整文档,请参阅 安装和部署 MinIO

此程序可能适用于旧版本的 MinIO。

安装并配置具有访问 MinIO 集群权限的 mc

此程序使用 mc 来对 MinIO 集群执行操作。在具有网络访问权限的机器上安装 mc。有关下载和安装 mc 的说明,请参阅 mc 安装快速入门

此程序假设已配置了用于 MinIO 集群的 alias

步骤

1) 设置活动目录/LDAP 配置设置

使用以下方法之一配置 AD/LDAP 提供程序

  • MinIO 客户端

  • 环境变量

  • MinIO 控制台

所有方法都需要启动/重启 MinIO 部署以应用更改。

以下选项卡提供了可用配置方法的快速参考

MinIO 支持使用 mc idp ldap 命令指定 AD/LDAP 提供程序设置。

对于分布式部署,mc idp ldap 命令将配置应用于部署中的所有节点。

以下示例代码设置了与为外部身份管理配置 AD/LDAP 提供程序相关的所有配置设置。必需的 最小设置是

mc idp ldap add ALIAS                                                   \
   server_addr="ldaps.example.net:636"                                  \
   lookup_bind_dn="CN=xxxxx,OU=xxxxx,OU=xxxxx,DC=example,DC=net"        \
   lookup_bind_password="xxxxxxxx"                                      \
   user_dn_search_base_dn="DC=example,DC=net"                           \
   user_dn_search_filter="(&(objectCategory=user)(sAMAccountName=%s))"  \
   group_search_filter= "(&(objectClass=group)(member=%d))"             \
   group_search_base_dn="ou=MinIO Users,dc=example,dc=net"              \
   enabled="true"                                                       \
   tls_skip_verify="off"                                                \
   server_insecure=off                                                  \
   server_starttls="off"                                                \
   srv_record_name=""                                                   \
   comment="Test LDAP server"

有关这些设置的更完整文档,请参阅 mc idp ldap

mc idp ldap 建议

mc idp ldap 提供了比 mc admin config set 运行时配置设置更多的功能和改进的验证。 mc idp ldap 支持与 mc admin configidentity_ldap 配置键相同的设置。

identity_ldap 配置键仍然可用于现有的脚本和工具。

MinIO 支持使用 环境变量 指定 AD/LDAP 提供程序设置。minio server 进程将在下次启动时应用指定的设置。对于分布式部署,请使用相同值在部署中的所有节点上指定这些设置。节点之间服务器配置的任何差异都将导致启动或配置失败。

以下示例代码设置了与为外部身份管理配置 AD/LDAP 提供程序相关的所有环境变量。必需的 最小变量是

export MINIO_IDENTITY_LDAP_SERVER_ADDR="ldaps.example.net:636"
export MINIO_IDENTITY_LDAP_LOOKUP_BIND_DN="CN=xxxxx,OU=xxxxx,OU=xxxxx,DC=example,DC=net"
export MINIO_IDENTITY_LDAP_USER_DN_SEARCH_BASE_DN="dc=example,dc=net"
export MINIO_IDENTITY_LDAP_USER_DN_SEARCH_FILTER="(&(objectCategory=user)(sAMAccountName=%s))"
export MINIO_IDENTITY_LDAP_LOOKUP_BIND_PASSWORD="xxxxxxxxx"
export MINIO_IDENTITY_LDAP_GROUP_SEARCH_FILTER="(&(objectClass=group)(member=%d))"
export MINIO_IDENTITY_LDAP_GROUP_SEARCH_BASE_DN="ou=MinIO Users,dc=example,dc=net"
export MINIO_IDENTITY_LDAP_TLS_SKIP_VERIFY="off"
export MINIO_IDENTITY_LDAP_SERVER_INSECURE="off"
export MINIO_IDENTITY_LDAP_SERVER_STARTTLS="off"
export MINIO_IDENTITY_LDAP_SRV_RECORD_NAME=""
export MINIO_IDENTITY_LDAP_COMMENT="LDAP test server"

有关这些变量的完整文档,请参阅 活动目录/LDAP 设置

MinIO 支持使用 MinIO 控制台 指定 AD/LDAP 提供程序设置。对于分布式部署,从控制台配置 AD/LDAP 将把配置应用于部署中的所有节点。

  1. root 用户或具有 consoleAdmin 策略的 MinIO 用户身份登录 MinIO 控制台。

  2. 在“身份”部分,选择“LDAP”,然后选择“编辑配置”以配置活动目录或 LDAP 服务器。必需的最小设置是

    • 服务器地址

    • 查找绑定 DN

    • 查找绑定密码

    • 用户 DN 搜索基础

    • 用户 DN 搜索过滤器

    MinIO 控制台中并非所有配置选项都可用。有关其他设置,请使用 mc idp ldap环境变量

2) 重启 MinIO 部署

您必须重启 MinIO 部署以应用配置更改。

如果您是从 MinIO 控制台配置的 AD/LDAP,则无需执行其他操作。MinIO 控制台会在保存新的 AD/LDAP 配置后自动重启部署。

对于 MinIO 客户端和环境变量配置,请使用 mc admin service restart 命令重启部署

mc admin service restart ALIAS

ALIAS 替换为要重启的部署的 别名

3) 使用 MinIO 控制台使用 AD/LDAP 凭据登录

MinIO 控制台支持对 AD/LDAP 提供程序进行身份验证、使用 MinIO AssumeRoleWithLDAPIdentity 安全令牌服务 (STS) 端点生成临时凭据以及将用户登录 MinIO 部署的完整流程。

您可以通过打开 MinIO 集群的根 URL 来访问控制台。例如,https://minio.example.net:9000

登录后,您可以执行已验证用户有权执行的任何操作。 授权

您还可以为必须对 MinIO 执行操作的应用程序创建 访问密钥。访问密钥是长期凭据,它们继承自父用户的权限。父用户可以在创建服务帐户时进一步限制这些权限。

4) 使用 AD/LDAP 凭据生成与 S3 兼容的临时凭据

MinIO 要求客户端使用 AWS 签名版本 4 协议 进行身份验证,并支持已弃用的签名版本 2 协议。具体而言,客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API,例如 PUTGETDELETE 操作。

应用程序可以使用 AssumeRoleWithLDAPIdentity 安全令牌服务 (STS) API 端点和 AD/LDAP 用户凭据按需生成临时访问凭据。MinIO 提供了一个示例 Go 应用程序 ldap.go,用于管理此流程。

POST https://minio.example.net?Action=AssumeRoleWithLDAPIdentity
&LDAPUsername=USERNAME
&LDAPPassword=PASSWORD
&Version=2011-06-15
&Policy={}
  • LDAPUsername 替换为 AD/LDAP 用户的用户名。

  • LDAPPassword 替换为 AD/LDAP 用户的密码。

  • Policy 替换为一个内联的 URL 编码的 JSON 策略,该策略进一步限制了与临时凭据关联的权限。

    不要使用与 AD/LDAP 用户的 Distinguished Name (DN) 相匹配的策略

API 响应包含一个 XML 文档,其中包含访问密钥、密钥、会话令牌和过期日期。应用程序可以使用访问密钥和密钥来访问 MinIO 并执行操作。

请参见AssumeRoleWithLDAPIdentity以获取参考文档。

禁用已配置的 Active Directory/LDAP 连接

RELEASE.2023-03-20T20-16-18Z 版本新增功能。

您可以根据需要启用和禁用已配置的 AD/LDAP 连接。

使用mc idp ldap disable来停用已配置的连接。使用mc idp ldap enable来激活之前配置的连接。

您也可以从MinIO 控制台启用或禁用 AD/LDAP。