文件

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

概觀

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 使用這些金鑰繫結以執行經過身分驗證的使用者和群組查詢。請確保每個打算與 MinIO 一起使用的 AD/LDAP 使用者和群組在 MinIO 部署上都有對應的 原則。沒有已指派原則且同時屬於沒有已指派原則的群組的 AD/LDAP 使用者,沒有權限存取 MinIO 叢集上的任何動作或資源。

MinIO 部署

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

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

安裝並設定可存取 MinIO 叢集的 mc

此程序使用 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 取代為要重新啟動的部署的別名

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 第 4 版協定進行驗證,並支援已棄用的 Signature 第 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 使用者的辨別名稱 (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 Console 啟用或停用 AD/LDAP。