設定 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。
安裝和設定可存取 MinIO 叢集的 mc
此步驟使用 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 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 用戶端和環境變數組態,請使用 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 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 使用者的辨別名稱 (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。