配置MinIO以使用Active Directory / LDAP进行身份验证
概述
MinIO支持配置单个Active Directory / LDAP Connect以外部管理用户身份。
本页面的过程提供以下说明:
配置MinIO租户以使用外部AD / LDAP提供程序。
使用AD / LDAP凭据访问租户控制台。
使用MinIO的
AssumeRoleWithLDAPIdentity
安全令牌服务(STS)API为应用程序生成临时凭据。
此过程适用于AD / LDAP服务的通用实现。 请参阅您选择的AD / LDAP提供程序的文档,以获取关于用户身份配置的具体说明或过程。
先决条件
MinIO Kubernetes Operator
确保您的目标 Kubernetes 集群具有有效且可正常运行的 MinIO Kubernetes Operator 安装. 本文档假定 Operator 为最新稳定版本 7.1.1.
与Active Directory / LDAP兼容的身份提供程序。
此过程假定已存在一个Active Directory或LDAP服务。 配置AD / LDAP的说明超出了此过程的范畴。
如果在与MinIO Tenant相同的Kubernetes集群中部署了AD / LDAP,则可以使用Kubernetes服务名称,以允许MinIO Tenant建立到AD / LDAP服务的连接。
如果AD / LDAP部署在Kubernetes集群外部,则必须确保集群支持在Kubernetes服务和pod之间以及外部网络之间进行通信路由。 这可能需要配置或部署额外的Kubernetes网络组件和/或启用对公共互联网的访问。
MinIO需要一个只读访问密钥,通过这个密钥,它可以 绑定 来执行经过身份验证的用户和组查询。 请确保每个用于MinIO的AD / LDAP用户和组都在MinIO部署中有相应的 策略 。 没有分配策略的AD / LDAP用户 以及 所属组中没有分配策略的用户,都不能访问MinIO集群上的任何操作或资源。
MinIO Tenant
本过程假定您的Kubernetes集群具有足够的资源来 部署新的MinIO租户。
您还可以使用此过程作为指南,修改现有的MinIO租户以启用AD / LDAP身份管理。
部署具有Active Directory / LDAP身份管理的MinIO租户。
1) 访问 Operator 控制台
临时转发本地主机和 MinIO 操作员控制台之间的流量并检索操作员部署的 JWT 令牌。 有关说明,请参阅 Configure access to the Operator Console service。
打开浏览器访问临时 URL,然后将 JWT Token 输入登录页面。 您应该看到 Tenants 页面:

单击 + Create Tenant 开始创建一个MinIO租户。
如果您要修改现有的租户,请从列表中选择该租户。 以下步骤参考了现有租户所需的部分和配置设置。
2) 完成 Identity Provider(身份提供者) 部分。
要使用Active Directory / LDAP提供程序启用外部身份管理,请选择 Identity Provider(身份提供者) 部分。 然后,您可以更改单选钮以显示配置设置 Active Directory。

*
标记必填字段。
以下表格提供了有关这些字段的一般指导:
Field |
描述 |
---|---|
LDAP Server Address |
Active Directory 或 LDAP 服务器的主机名。 |
Lookup Bind DN |
MinIO 用于验证和查询 AD/LDAP 服务器的专有名称。 有关更多信息,请参阅 查询Active Directory / LDAP服务 |
要成为租户管理员的用户DN(专有名称)列表 |
指定一个用户的DN(专有名称),MinIO会为该租户分配带有管理员权限的 策略。 您可以通过选择加号 图标来指定多个DN(专有名称)。 您可以通过选择该DN对应的垃圾桶 图标来删除该DN。 |
完成该部分后,您可以完成任何其他所需的 租户部署 部分。
3) 将策略分配给 AD/LDAP 用户
默认情况下,MinIO 不会向 AD/LDAP 用户或组分配 策略。 您必须明确为给定的用户或组专有名称(DN)分配MinIO策略,以授予该用户或组访问MinIO部署的权限。
以下示例假定已经为MinIO租户配置了一个现有的 alias。
使用 mc idp ldap policy attach
命令将用户或组DN分配给现有的MinIO策略:
mc idp ldap policy attach minio-tenant POLICY --user='uid=primary,cn=applications,dc=domain,dc=com'
mc idp ldap policy attach minio-tenant POLICY --group='cn=applications,ou=groups,dc=domain,dc=com'
将 POLICY
替换为要分配给用户或组DN的MinIO策略的名称。
有关使用AD/LDAP用户和组进行访问控制的更多信息,请参见 为AD / LDAP托管身份提供访问控制。
4) 使用MinIO租户控制台使用AD/LDAP凭据登录
MinIO控制台支持完整的工作流程,包括身份验证AD/LDAP提供程序、使用MinIO minio-sts-assumerolewithldapidentity 安全令牌服务 (STS) 端点生成临时凭据,以及将用户登录到MinIO部署中。
请参阅 Deploy MinIO Tenant: 连接到租户 获取有关访问租户控制台的更多信息。
如果AD/LDAP配置成功,则控制台会显示一个使用AD/LDAP凭据登录的按钮。
输入用户的AD/LDAP凭据并登录以访问控制台。
登录后,您可以执行已授权的任何操作,其权限是根据 授权 的经过身份验证的用户确定的。
您还可以为需要在MinIO上执行操作的支持应用程序创建 访问密钥。 访问密钥是长期凭证,其权限从父用户继承。 创建访问密钥时,父用户可以进一步限制这些权限。
5) 使用AD/LDAP凭据生成S3兼容的临时凭据。
应用程序可以使用AD/LDAP用户凭据,通过 minio-sts-assumerolewithldapidentity 安全令牌服务 (STS) API 端点根据需要生成临时的S3兼容凭证。 MinIO提供了一个Go示例应用程序 ldap.go,演示如何管理此工作流程。
POST https://minio.example.net?Action=AssumeRoleWithLDAPIdentity
&LDAPUsername=USERNAME
&LDAPPassword=PASSWORD
&Version=2011-06-15
&Policy={}
请将
minio.example.net
替换为MinIO租户服务的主机名或URL。请将
LDAPUsername
替换为AD/LDAP用户的用户名。请将
LDAPPassword
替换为AD/LDAP用户的密码。请使用内联URL编码的JSON policy 来替换
Policy
,以进一步限制与临时凭据关联的权限。忽略使用名称与 AD/LDAP 用户的可分辨名称 (DN) 匹配的策略。
API响应由包含访问密钥、秘密密钥、会话令牌和过期日期的XML文档组成。 应用程序可以使用访问密钥和秘密密钥来访问并对MinIO执行操作。
请参阅 minio-sts-assumerolewithldapidentity 以获取参考文档。
禁用已配置的Active Directory / LDAP连接。
在 RELEASE.2023-03-20T20-16-18Z 版本加入.
您可以根据需要启用或禁用配置的AD / LDAP连接。
使用 mc idp ldap disable
命令来停用已配置的连接。
使用 mc idp ldap enable
命令来激活之前配置的连接。
您还可以从 MinIO控制台 启用或禁用AD / LDAP。