使用 Active Directory/LDAP 配置 MinIO 身份验证
概述
MinIO 支持配置单个 Active Directory/LDAP 连接,用于外部管理用户身份。
此页面上的步骤提供有关以下方面的说明:
配置 MinIO 租户以使用外部 AD/LDAP 提供者
使用 AD/LDAP 凭据访问租户控制台。
使用 MinIO
AssumeRoleWithLDAPIdentity
安全令牌服务 (STS) API 生成供应用程序使用的临时凭据。
此步骤对 AD/LDAP 服务通用。有关用户身份配置的特定说明或步骤,请参阅您选择的 AD/LDAP 提供者的文档。
先决条件
MinIO Kubernetes 运算符
确保您的目标 Kubernetes 集群具有 MinIO Kubernetes 运算符的有效且正常工作的安装。此文档假定最新稳定运算符,版本 6.0.4。
与 Active Directory/LDAP 兼容的身份提供者
此步骤假定存在 Active Directory 或 LDAP 服务。有关配置 AD/LDAP 的说明不属于此步骤的范围。
对于与 MinIO 租户位于同一 Kubernetes 集群中的 AD/LDAP 部署,您可以使用 Kubernetes 服务名称来允许 MinIO 租户建立与 AD/LDAP 服务的连接。
对于位于 Kubernetes 集群外部的 AD/LDAP 部署,您必须确保集群支持在 Kubernetes 服务和 Pod 与外部网络之间路由通信。这可能需要配置或部署额外的 Kubernetes 网络组件,或者启用对公共互联网的访问。
MinIO 需要一个只读访问密钥,它使用该密钥 绑定 以执行身份验证的用户和组查询。确保每个用于 MinIO 的 AD/LDAP 用户和组在 MinIO 部署上都有相应的 策略。没有分配策略的 AD/LDAP 用户,并且是未分配策略的组的成员,无权访问 MinIO 集群上的任何操作或资源。
MinIO 租户
此步骤假设您的 Kubernetes 集群拥有足够的资源来 部署新的 MinIO 租户。
您也可以使用此步骤作为修改现有 MinIO 租户以启用 AD/LDAP 身份管理的指南。
使用 Active Directory/LDAP 身份管理部署 MinIO 租户
1) 访问操作员控制台
临时转发本地主机与 MinIO 操作员控制台之间的流量并获取操作员部署的 JWT 令牌。有关说明,请参阅 配置对操作员控制台服务的访问。
在浏览器中打开临时 URL 并将 JWT 令牌输入登录页面。您应该看到 租户 页面。
点击 + 创建租户 开始创建 MinIO 租户。
如果您要修改现有租户,请从列表中选择该租户。以下步骤参考了现有租户的必要部分和配置设置。
2) 完成 身份提供者 部分
要使用 Active Directory/LDAP 提供者启用外部身份管理,请选择 身份提供者 部分。然后,您可以将单选按钮更改为 Active Directory 以显示配置设置。
星号 *
表示必填字段。下表提供这些字段的一般指南。
字段 |
描述 |
---|---|
LDAP 服务器地址 |
Active Directory 或 LDAP 服务器的主机名。 |
查找绑定 DN |
MinIO 用于对 AD/LDAP 服务器进行身份验证和查询的识别名称。 有关更多信息,请参阅 查询 Active Directory/LDAP 服务。 |
要成为租户管理员的用户 DN(识别名称)列表 |
指定一个用户 DNs,MinIO 会将 策略赋予该用户,使其具有对租户的管理权限。您可以通过选择加号来指定多个 DNs图标。您可以通过选择该 DN 的垃圾桶图标来删除 DN。 |
完成此部分后,您可以完成 租户部署 中的其他任何必需部分。
3) 将策略分配给 AD/LDAP 用户
默认情况下,MinIO 不会将任何 策略分配给 AD/LDAP 用户或组。您必须明确地将 MinIO 策略分配给给定的用户或组识别名称 (DN),以授予该用户或组访问 MinIO 部署的权限。
以下示例假设一个现有的 别名 为 MinIO 租户配置。
使用 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 AssumeRoleWithLDAPIdentity 安全令牌服务 (STS) 端点生成临时凭据以及将用户登录 MinIO 部署的完整工作流程。
有关访问租户控制台的更多信息,请参阅 部署 MinIO 租户:连接到租户。
如果 AD/LDAP 配置成功,控制台将显示一个使用 AD/LDAP 凭据登录的按钮。
输入用户的 AD/LDAP 凭据并登录以访问控制台。
登录后,您可以执行经过身份验证的用户被 授权 执行的任何操作。
您还可以为必须对 MinIO 执行操作的支持应用程序创建 访问密钥。访问密钥是长期凭据,它们继承自父用户的权限。父用户在创建访问密钥时可以进一步限制这些权限。
5) 使用 AD/LDAP 凭据生成与 S3 兼容的临时凭据
应用程序可以使用 AD/LDAP 用户凭据来生成与 S3 兼容的临时凭据,这些凭据使用 AssumeRoleWithLDAPIdentity 安全令牌服务 (STS) API 端点按需生成。MinIO 提供了一个示例 Go 应用程序 ldap.go,其中包含管理此工作流程的示例。
POST https://minio.example.net?Action=AssumeRoleWithLDAPIdentity
&LDAPUsername=USERNAME
&LDAPPassword=PASSWORD
&Version=2011-06-15
&Policy={}
将
minio.example.net
替换为 MinIO 租户服务的 hostname 或 URL。将
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。