使用 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 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
取代為要重新啟動的部署的別名。
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,例如 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 使用者的辨別名稱 (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。