文档

使用 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 上按预期工作。

使用 mc 并访问 MinIO 集群进行安装和配置

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

此过程假设已为 MinIO 集群配置了 alias

操作步骤

1) 设置 Active Directory/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"

有关这些变量的完整文档,请参阅 Active Directory/LDAP 设置

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

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

  2. 在“身份”部分,选择“LDAP”,然后选择“编辑配置”以配置 Active Directory 或 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 用户的区分名称 (DN) 匹配的 策略

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

请参阅AssumeRoleWithLDAPIdentity 获取参考文档。

禁用已配置的活动目录/LDAP 连接

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

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

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

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