文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

配置 MinIO 使用 Active Directory / LDAP 进行身份验证

概述

MinIO支持配置单个Active Directory / LDAP连接,用于外部管理用户身份。

本页面的操作步骤提供以下指导:

对于使用MinIO Kubernetes Operator此程序涵盖:

  • 配置 MinIO 租户以使用外部 AD/LDAP 提供程序

  • 使用 AD/LDAP 凭据访问租户控制台。

  • 使用 MinIOAssumeRoleWithLDAPIdentity安全令牌服务(STS)API,用于生成供应用程序使用的临时凭证。

对于裸机基础设施上的 MinIO 部署,本流程涵盖:

  • 为外部 AD/LDAP 提供商配置 MinIO 集群。

  • 使用 AD/LDAP 凭据访问 MinIO 控制台。

  • 使用 MinIOAssumeRoleWithLDAPIdentity安全令牌服务(STS)API,用于生成供应用程序使用的临时凭证。

此过程适用于通用的 AD/LDAP 服务。 有关配置用户身份的具体说明或步骤,请参阅您所选 AD/LDAP 提供商的文档。

前提条件

访问 MinIO 集群

您必须具有对 MinIO Operator Console Web UI 的访问权限。 您可以使用首选的 Kubernetes 路由组件暴露 MinIO Operator Console 服务,或者使用临时端口转发在本地机器上暴露 Console 服务端口。

此过程使用mc用于在 MinIO 集群上执行操作。 安装mc在可以访问集群网络的机器上。 请参阅mc 安装快速入门有关下载和安装的说明mc.

此过程假设已配置alias对于 MinIO 集群。

Active Directory / LDAP 兼容身份提供程序

本流程假定已存在 Active Directory 或 LDAP 服务。 有关配置 AD/LDAP 的说明不在本流程范围内。

  • 对于与MinIO租户位于同一Kubernetes集群内的AD/LDAP部署,您可以使用Kubernetes服务名称来允许MinIO租户建立与AD/LDAP服务的连接。

  • 对于部署在 Kubernetes 集群外部的 AD/LDAP,必须确保集群支持 Kubernetes 服务和 Pod 与外部网络之间的路由通信。 这可能需要配置或部署额外的 Kubernetes 网络组件,和/或启用对公共互联网的访问。

MinIO 部署必须与目标 AD / LDAP 服务具有双向网络连接。

MinIO 需要一个只读访问密钥,通过该密钥绑定执行经过身份验证的用户和组查询。 确保每个计划用于MinIO的AD/LDAP用户和组都有对应的政策在 MinIO 部署上。 一个未分配策略的 AD/LDAP 用户没有分配策略的组成员身份没有权限访问 MinIO 集群上的任何操作或资源。

配置 MinIO 与 Active Directory 或 LDAP 外部身份管理

  1. 设置 Active Directory / LDAP 配置参数

    使用以下方式之一配置 AD/LDAP 提供程序:

    • MinIO 客户端

    • 环境变量

    所有方法都需要启动/重启 MinIO 部署才能使更改生效。

    以下选项卡提供了可用配置方法的快速参考:

    MinIO支持使用以下方式指定AD/LDAP提供程序设置mc idp 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"              \
      tls_skip_verify="off"                                                \
      server_insecure=off                                                  \
      server_starttls="off"                                                \
      srv_record_name=""                                                   \
      comment="Test LDAP server"
    

    对于Kubernetes部署,请确保ALIAS对应于 MinIO 租户外部可访问的主机名。

    有关这些设置的更完整文档,请参阅mc idp ldap.

    mc idp ldap推荐

    mc idp ldap提供额外的功能和改进的验证mc admin config set运行时配置设置。mc idp ldap支持与...相同的设置mc admin configidentity_ldap配置键。

    Theidentity_ldap配置密钥对现有脚本和工具保持可用。

    MinIO支持使用以下方式指定AD/LDAP提供程序设置环境变量.

    Theminio serverprocess applies the specified settings on its next startup. 对于分布式部署,请使用以下方式在部署中的所有节点上指定这些设置:相同值。 节点间的服务器配置差异将导致启动或配置失败。

    以下示例代码设置全部与配置外部身份管理的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 Settings.

  2. 重启 MinIO 部署

    您必须重启 MinIO 部署才能使配置更改生效。

    如果您通过 MinIO 控制台配置了 AD/LDAP,则无需执行其他操作。 MinIO 控制台会在保存新的 AD/LDAP 配置后自动重启部署。

    对于 MinIO 客户端和环境变量配置,请使用mc admin service restart重启部署的命令:

    mc admin service restart ALIAS
    

    替换ALIAS随着别名部署的重启。

  3. 使用 MinIO 控制台通过 AD/LDAP 凭据登录

    MinIO Console 支持完整的 AD/LDAP 提供者身份验证工作流,使用 MinIO 生成临时凭证AssumeRoleWithLDAPIdentitySecurity Token Service (STS) 端点,并将用户登录到 MinIO 部署中。

    您可以通过打开 MinIO 集群的根 URL 来访问控制台。例如,https://minio.example.net:9000.

    登录后,您可以执行已认证用户有权进行的任何操作授权.

    你也可以创建访问密钥用于支持必须在 MinIO 上执行操作的应用程序。 访问密钥是长期有效的凭证,继承其父用户的权限。 父用户在创建服务账户时可以进一步限制这些权限。

  4. 使用 AD/LDAP 凭据生成 S3 兼容临时凭据

    MinIO要求客户端使用身份验证AWS Signature Version 4 protocol支持已弃用的签名版本 2 协议。 具体而言,客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API,例如PUT, GETDELETE操作。

    应用程序可以根据需要使用AssumeRoleWithLDAPIdentitySecurity Token Service (STS) API endpoint and AD/LDAP user credentials. MinIO provides an example Go applicationldap.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政策进一步限制与临时凭证关联的权限。

      省略使用名称匹配的策略Active Directory/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激活先前配置的连接。