中文文档

配置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 页面:

MinIO Operator Console

单击 + Create Tenant 开始创建一个MinIO租户。

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

2) 完成 Identity Provider(身份提供者) 部分。

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

MinIO Operator控制台 - 创建租户 - 外部身份提供者部分 - Active Directory / LDAP

* 标记必填字段。 以下表格提供了有关这些字段的一般指导:

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。

Join Slack 商业支持购买咨询