文件

設定 MinIO 以使用 Active Directory / LDAP 進行身份驗證

概述

MinIO 支援設定單一 Active Directory / LDAP 連線,用於外部管理使用者身份。

此頁面上的程序提供以下說明:

  • 為外部 AD/LDAP 提供者設定 MinIO 叢集。

  • 使用 AD/LDAP 憑證存取 MinIO 主控台。

  • 使用 MinIO AssumeRoleWithLDAPIdentity 安全權杖服務 (STS) API 來產生供應用程式使用的臨時憑證。

此程序適用於 AD/LDAP 服務。請參閱您選擇的 AD/LDAP 提供者的文件,以了解有關設定使用者身份的特定說明或程序。

先決條件

Active Directory / LDAP 相容的身份供應商

此程序假設現有的 Active Directory 或 LDAP 服務。關於設定 AD/LDAP 的說明不在本程序的範圍內。

MinIO 需要唯讀存取金鑰,它使用這些金鑰繫結來執行驗證的使用者和群組查詢。確保每個打算與 MinIO 一起使用的 AD/LDAP 使用者和群組在 MinIO 部署上都有對應的政策。沒有指派政策且不屬於任何指派政策的群組的 AD/LDAP 使用者無權存取 MinIO 叢集上的任何動作或資源。

MinIO 部署

此程序假設現有的 MinIO 叢集正在執行最新的穩定 MinIO 版本。請參考安裝和部署 MinIO以取得有關新 MinIO 部署的更完整文件。

此程序可能適用於較舊版本的 MinIO。

安裝並設定 mc 以存取 MinIO 叢集

此程序使用 mc 來執行 MinIO 叢集上的操作。請在具備網路連線至叢集的機器上安裝 mc。請參閱 mc安裝快速入門 以取得下載和安裝 mc 的說明。

此程序假設已為 MinIO 叢集設定 alias

程序

1) 設定 Active Directory / LDAP 設定

使用下列其中一種方式來設定 AD/LDAP 提供者:

  • MinIO 客戶端

  • 環境變數

  • MinIO 主控台

所有方法都需要啟動/重新啟動 MinIO 部署才能套用變更。

以下標籤頁提供可用設定方法的快速參考

MinIO 支援使用 mc idp ldap 命令來指定 AD/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"              \
   enabled="true"                                                       \
   tls_skip_verify="off"                                                \
   server_insecure=off                                                  \
   server_starttls="off"                                                \
   srv_record_name=""                                                   \
   comment="Test LDAP server"

如需這些設定的完整文件,請參閱 mc idp ldap

mc idp ldap 建議使用

mc idp ldapmc admin config set 執行階段設定相比,提供額外的功能和改良的驗證。mc idp ldap 支援與 mc admin configidentity_ldap 設定金鑰相同的設定。

identity_ldap 設定金鑰仍適用於現有的腳本和工具。

MinIO 支援使用 環境變數來指定 AD/LDAP 提供者設定。minio server 程序會在下次啟動時套用指定的設定。對於分散式部署,請在部署中的所有節點上使用相同的值來指定這些設定。節點之間的伺服器設定有任何差異都會導致啟動或設定失敗。

以下範例程式碼會設定與為外部身分管理設定 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 設定

MinIO 支援使用 MinIO 主控台來指定 AD/LDAP 提供者設定。對於分散式部署,從主控台設定 AD/LDAP 會將設定套用至部署中的所有節點。

  1. root 使用者或具有 consoleAdmin 原則的 MinIO 使用者身分登入 MinIO 主控台。

  2. 身分 區段中,選取 LDAP,然後選取 編輯設定 以設定 Active Directory 或 LDAP 伺服器。最少必要的設定為

    • 伺服器位址

    • 查詢繫結 DN

    • 查詢繫結密碼

    • 使用者 DN 搜尋基礎

    • 使用者 DN 搜尋篩選器

    並非所有設定選項都可在 MinIO 主控台中使用。如需其他設定,請使用 mc idp ldap環境變數

2) 重新啟動 MinIO 部署

您必須重新啟動 MinIO 部署才能套用設定變更。

如果您是從 MinIO 主控台設定 AD/LDAP,則不需要其他動作。MinIO 主控台會在儲存新的 AD/LDAP 設定後自動重新啟動部署。

對於 MinIO Client 和環境變數設定,請使用 mc admin service restart 命令來重新啟動部署

mc admin service restart ALIAS

ALIAS 取代為要重新啟動之部署的 alias

3) 使用 MinIO 主控台以 AD/LDAP 認證登入

MinIO 主控台支援驗證至 AD/LDAP 提供者、使用 MinIO AssumeRoleWithLDAPIdentity 安全性權杖服務 (STS) 端點產生臨時認證,以及將使用者登入 MinIO 部署的完整工作流程。

您可開啟 MinIO 叢集的根 URL 來存取主控台。例如,https://minio.example.net:9000

登入後,您可以執行已驗證使用者 授權 的任何動作。

您也可以建立 存取金鑰,以支援必須在 MinIO 上執行操作的應用程式。存取金鑰是長期有效的認證,會繼承其父使用者的權限。父使用者可以在建立服務帳戶時進一步限制這些權限。

4) 使用 AD/LDAP 認證產生與 S3 相容的臨時認證

MinIO 要求用戶端使用 AWS Signature Version 4 通訊協定進行驗證,並支援已淘汰的 Signature Version 2 通訊協定。具體來說,用戶端必須提供有效的存取金鑰和密碼金鑰,才能存取任何 S3 或 MinIO 管理 API,例如 PUTGETDELETE 操作。

應用程式可以使用 AssumeRoleWithLDAPIdentity 安全性權杖服務 (STS) API 端點和 AD/LDAP 使用者認證,依需求產生臨時存取認證。MinIO 提供了一個範例 Go 應用程式 ldap.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 原則,以進一步限制與臨時認證相關聯的權限。

    省略使用與 AD/LDAP 使用者的識別名稱 (Distinguished Name, 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。