文件

Active Directory / LDAP 存取管理

MinIO 支援設定單個 Active Directory 或 LDAP (AD/LDAP) 服務,用於外部管理使用者身分。啟用 AD/LDAP 外部身分管理會停用MinIO 內部 IDP

對於由外部 AD/LDAP 提供者管理的身分,MinIO 會使用使用者的辨別名稱,並嘗試將其對應到現有的原則

如果 AD/LDAP 組態包含查詢使用者 AD/LDAP 群組成員資格的必要設定,MinIO也會使用這些群組辨別名稱,並嘗試將每個群組辨別名稱對應到現有的原則

MinIO 預設會拒絕所有未由使用者指定或繼承的原則明確允許的所有動作或資源的存取權。由 AD/LDAP 提供者管理的使用者必須指定必要的原則作為使用者設定檔資料的一部分。如果沒有任何原則符合使用者 DN 或群組 DN,MinIO 會封鎖對部署中所有動作和資源的所有存取權。

MinIO 發出以驗證使用者身分並檢索其群組成員資格的特定 AD/LDAP 查詢,會設定為使用 Active Directory / LDAP 身分管理部署叢集的一部分。此頁面涵蓋建立 MinIO 原則,以符合可能傳回的辨別名稱。

驗證和授權流程

使用 Active Directory / LDAP 憑證的應用程式的登入流程如下:

  1. 將 AD/LDAP 憑證指定到 MinIO 安全性權杖服務 (STS) AssumeRoleWithLDAPIdentity API 端點。

  2. MinIO 會針對 AD/LDAP 伺服器驗證提供的憑證。

  3. MinIO 會檢查是否有任何名稱與使用者辨別名稱 (DN) 相符的原則,並將該原則指派給經過驗證的使用者。

    如果設定為執行群組查詢,MinIO 也會查詢使用者具有成員資格的 AD/LDAP 群組清單。MinIO 會檢查是否有任何名稱與傳回的群組 DN 相符的原則,並將該原則指派給經過驗證的使用者。

  4. MinIO 會在 STS API 回應中以存取金鑰、秘密金鑰和會話權杖的形式傳回暫時憑證。憑證具有與名稱與經過驗證的使用者 DN群組 DN 相符的原則相同的權限。

MinIO 提供了一個範例 Go 應用程式 ldap.go,它處理完整的登入流程。

AD/LDAP 使用者也可以選擇建立與其 AD/LDAP 使用者辨別名稱相關聯的存取金鑰。存取金鑰是長期有效的憑證,繼承其父使用者的權限。父使用者可以在建立存取金鑰時進一步限制這些權限。請使用以下任一方法來建立新的存取金鑰

  • 使用 AD/LDAP 管理的使用者憑證登入 MinIO 控制台

    使用者 區段中,選取 存取金鑰,然後選取 建立存取金鑰 +

  • 使用 mc admin user svcacct add 命令建立存取金鑰。將使用者辨別名稱指定為要與存取金鑰關聯的使用者名稱。

將政策對應到使用者 DN

以下命令使用 mc idp ldap policy attach 將現有的 MinIO 政策 與 AD/LDAP 使用者 DN 關聯。

mc idp ldap policy attach myminio consoleAdmin \
  --user='cn=sisko,cn=users,dc=example,dc=com'

mc idp ldap policy attach myminio readwrite,diagnostics \
  --user='cn=dax,cn=users,dc=example,dc=com'
  • MinIO 會將驗證的使用者,其 DN 符合 cn=sisko,cn=users,dc=example,dc=com,指派 consoleAdmin 政策,授予對 MinIO 伺服器的完全存取權。

  • MinIO 會將驗證的使用者,其 DN 符合 cn=dax,cn=users,dc=example,dc=com,同時指派 readwritediagnostics 政策,授予對 MinIO 伺服器的一般讀/寫存取權以及對診斷管理操作的存取權。

  • MinIO 不會對驗證的使用者,其 DN 符合 cn=quark,cn=users,dc=example,dc=com,指派任何政策,並拒絕對 API 操作的所有存取權。

將政策對應到群組 DN

以下命令使用 mc idp ldap policy attach 將現有的 MinIO 政策 與 AD/LDAP 群組 DN 關聯。

mc idp ldap policy attach myminio consoleAdmin \
  --group='cn=ops,cn=groups,dc=example,dc=com'

mc idp ldap policy attach myminio diagnostics \
  --group='cn=engineering,cn=groups,dc=example,dc=com'
  • MinIO 會將任何在 cn=ops,cn=groups,dc=example,dc=com AD/LDAP 群組中具有成員資格的驗證使用者,指派 consoleAdmin 政策,授予對 MinIO 伺服器的完全存取權。

  • MinIO 會將任何在 cn=engineering,cn=groups,dc=example,dc=com AD/LDAP 群組中具有成員資格的驗證使用者,指派 diagnostics 政策,授予對診斷管理操作的存取權。