設定 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 ldap
與 mc admin config set
執行階段設定相比,提供額外的功能和改良的驗證。mc idp ldap
支援與 mc admin config
和 identity_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 會將設定套用至部署中的所有節點。
以 root 使用者或具有
consoleAdmin
原則的 MinIO 使用者身分登入 MinIO 主控台。在 身分 區段中,選取 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,例如 PUT
、GET
和 DELETE
操作。
應用程式可以使用 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。