中文文档

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

概述

MinIO支持配置单个Active Directory / LDAP Connect以外部管理用户身份。

本页面的过程提供以下说明:

  • Configuring a MinIO cluster for an external AD/LDAP provider.

  • 使用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 。 请参阅 mcInstallation Quickstart 了解有关下载和安装 mc 的说明。

本过程假设MinIO集群已经配置了一个 alias

Procedure

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 recommended

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"

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

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

  1. 作为 root 用户或具有 consoleAdmin 策略的MinIO用户登录到MinIO控制台。

  2. Identity 部分,选择 LDAP ,然后选择 Edit Configuration 以配置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 替换为要重新启动的部署的 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要求客户端使用支持已弃用的签名版本2协议的 AWS Signature Version 4 protocol 进行身份验证。 具体而言,客户端必须提供有效的访问密钥和秘密密钥才能访问任何S3或MinIO管理API,例如 PUTGETDELETE 操作。

应用程序可以使用 AssumeRoleWithLDAPIdentity Security Token Service (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 policy,该策略进一步限制与临时凭证相关联的权限。

    忽略使用名称与 AD/LDAP 用户的 可分辨名称 (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。

Join Slack 商业支持购买咨询