使用 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 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"
有关这些变量的完整文档,请参阅 Active Directory / LDAP 设置
MinIO 支持使用 MinIO 控制台 指定 AD/LDAP 提供者设置。对于分布式部署,从控制台配置 AD/LDAP 会将配置应用于部署中的所有节点。
以 root 用户或具有
consoleAdmin
策略的 MinIO 用户的身份登录 MinIO 控制台。在 身份 部分,选择 LDAP,然后选择 编辑配置 以配置 Active Directory 或 LDAP 服务器。必需设置的最小值是
服务器地址
查找绑定 DN
查找绑定密码
用户 DN 搜索基础
用户 DN 搜索过滤器
MinIO 控制台并非提供所有配置选项。对于其他设置,请使用
mc idp ldap
或 环境变量。
2) 重新启动 MinIO 部署
您必须重新启动 MinIO 部署以应用配置更改。
如果您从 MinIO 控制台配置了 AD/LDAP,则无需执行其他操作。保存新的 AD/LDAP 配置后,MinIO 控制台会自动重新启动部署。
对于 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,例如 PUT
、GET
和 DELETE
操作。
应用程序可以使用 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 策略,该策略进一步限制与临时凭据关联的权限。
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。