配置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
。
请参阅 mc
的 Installation 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 config
和 identity_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会将该配置应用于部署中的所有节点。
作为 root 用户或具有
consoleAdmin
策略的MinIO用户登录到MinIO控制台。在 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,例如 PUT
, GET
和 DELETE
操作。
应用程序可以使用 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。