文件

設定 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 集群設定 別名

程序

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 admin config set 執行階段設定相比,mc idp ldap 提供額外的功能和改進的驗證。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 Console指定 AD/LDAP 提供者設定。對於分散式部署,從主控台設定 AD/LDAP 會將設定套用至部署中的所有節點。

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

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

    • 伺服器位址

    • 查詢綁定 DN

    • 查詢綁定密碼

    • 使用者 DN 搜尋基準

    • 使用者 DN 搜尋篩選器

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

2) 重新啟動 MinIO 部署

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

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

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

mc admin service restart ALIAS

ALIAS 取代為要重新啟動的部署的別名

3) 使用 MinIO Console 使用 AD/LDAP 憑證登入

MinIO Console 支援向 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 控制台啟用或停用 AD/LDAP。