文档

使用 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) 访问 Operator 控制台

临时转发本地主机与 MinIO Operator 控制台之间的流量,并检索 Operator 部署的 JWT 令牌。有关说明,请参阅配置对 Operator 控制台服务的访问

在浏览器中打开临时 URL,并将 JWT 令牌输入登录页面。您应该会看到租户页面。

MinIO Operator Console

单击+ 创建租户以开始创建 MinIO 租户。

如果您要修改现有租户,请从列表中选择该租户。以下步骤参考了现有租户所需的章节和配置设置。

2) 完成身份提供程序部分

要使用 Active Directory / LDAP 提供程序启用外部身份管理,请选择身份提供程序部分。然后,您可以将单选按钮更改为Active Directory以显示配置设置。

MinIO Operator Console - Create a Tenant - External Identity Provider Section - Active Directory / LDAP

星号*表示必填字段。下表提供了这些字段的一般指南

字段

描述

LDAP 服务器地址

Active Directory 或 LDAP 服务器的主机名。

查找绑定 DN

MinIO 用于对 AD/LDAP 服务器进行身份验证和查询的区分名称。

请参阅查询 Active Directory / LDAP 服务以获取更多信息。

要成为租户管理员的用户 DN(区分名称)列表

指定 MinIO 为其分配具有租户管理员权限的策略的用户DN。您可以通过选择加号指定多个DN图标。您可以通过为该 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 用户凭据根据需要使用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 租户服务的 hostname 或 URL。

  • LDAPUsername替换为 AD/LDAP 用户的用户名。

  • LDAPPassword替换为 AD/LDAP 用户的密码。

  • Policy替换为内联 URL 编码的 JSON 策略,该策略进一步限制与临时凭据关联的权限。

    省略以使用其名称与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。