本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
文件層級存取控制
ACL 意識不是授權
Bedrock 受管知識庫提供 ACL 感知篩選,而不是安全界限。Bedrock 受管知識庫不會驗證最終使用者 — 您的應用程式負責驗證使用者並傳遞已驗證的身分內容。由於 Bedrock 受管知識庫無法驗證您提供的使用者內容的真實性,因此此功能會根據您提供的身分篩選結果,但不會構成真正的授權。在沒有上游身分驗證的情況下,您不得依賴此功能做為唯一存取控制機制。
Confluence 資料來源可選擇性地支援文件層級存取控制。啟用時,Bedrock 受管知識庫會在每個網路爬取期間同步 Confluence 的存取控制清單 (ACLs),並在查詢時驗證每個使用者的許可,因此使用者只會看到他們獲授權在 Confluence 中存取的文件結果。如需所有連接器的 ACL 意識概觀,請參閱 存取控制清單意識啟用。
運作方式
當使用者查詢使用啟用 ACL 的 Confluence 資料來源的知識庫時,Bedrock 受管知識庫會分兩個階段強制執行存取控制:
-
擷取前篩選 — Bedrock 受管知識庫會套用上次網路爬取期間從 Confluence 同步的存取控制清單,只傳回允許使用者 (或其群組) 存取的候選文件。
-
即時驗證 — Bedrock 受管知識庫透過在 Confluence 中查詢使用者目前的存取權,即時驗證候選文件。只有使用者目前獲授權存取的文件才會包含在回應中。
這種兩階段方法提供文件層級的存取控制,即使 Confluence 許可在同步之間變更,也能保持最新狀態。
爬取的內容
啟用 ACLs時,Bedrock 受管知識庫會從 Confluence 爬取下列許可結構:
空間 — 預設情況下,空間許可會套用至空間中的所有文件。
頁面 — 頁面可以限制為特定使用者和群組。巢狀頁面會從父頁面繼承限制。
部落格 — 部落格文章可以限制為特定使用者和群組。
附件 — 連接至頁面或部落格文章的檔案會繼承其父文件的存取控制。
啟用 ACL 意識
若要啟用 Confluence 資料來源的 ACL 意識,請在 true中將 aclEnabled設定為 BASIC connectorParameters,並使用 身分驗證類型。除了標準電子郵件和 API 字符之外,秘密還必須包含 Atlassian 組織管理員憑證。身分爬取需要這些管理員登入資料。
重要
ACL 組態是永久的。您無法在無 ACLs 支援的情況下建立的資料來源上啟用 ACL,而且一旦啟用,就無法停用 ACLs。
除了標準 username、 password(API 字符) 和 hostUrl 欄位, AWS Secrets Manager 秘密必須包含下列組織管理員欄位。如需取得這些值step-by-step說明,請參閱 設定 Confluence 的基本身分驗證。
adminApiKey— 具有read:directories:admin和read:workspaces:admin範圍的 Atlassian 組織 API 金鑰。organizationId— 您 Atlassian 組織的 UUID。directoryId— Confluence 工作區的使用者目錄 UUID。
注意
啟用 ACL 的 Confluence 資料來源不支援 OAUTH2身分驗證類型。您必須在秘密中使用 BASIC搭配 Atlassian 組織管理員登入資料。
即時存取驗證
Bedrock 受管知識庫使用秘密中設定的 Atlassian Admin API 字符,在查詢時間完全伺服器端針對 Confluence 驗證每個候選文件 — 沒有最終使用者登入。管理員權杖會檢查查詢使用者目前的空間、頁面和部落格限制,因此遵守自上次爬蟲以來所做的存取變更。
驗證您的組態
您可以獨立於擷取請求來驗證您的登入資料。執行下列各項檢查:
-
Confluence 內容存取 (爬蟲):
使用秘密中的
username和 API 字符 (password),呼叫 Confluence REST API (例如,列出空格) 並確認傳回 HTTP 200。
-
Atlassian Admin API (身分爬取和即時驗證):
確認
adminApiKey具有read:directories:admin和read:workspaces:admin範圍。使用
adminApiKey,呼叫您 的 Atlassian 管理員目錄 APIdirectoryId,organizationId並確認它傳回您組織的使用者和群組。
疑難排解
注意
ACL 設定錯誤不會在擷取期間產生明確的錯誤。擷取失敗關閉:已無提示地省略受影響的文件,因此查詢會傳回較少或零的結果,而不是錯誤。使用上述驗證檢查來診斷這些問題。
| 徵狀 | 可能原因 | 修正 |
|---|---|---|
| 擷取會傳回 0 個結果,但使用者在 Confluence 中具有存取權。 | Atlassian Admin API 金鑰缺少範圍,或 organizationId/directoryId 錯誤,因此無法解析使用者和群組限制。 |
確認 adminApiKey具有 read:directories:admin和 read:workspaces:admin,以及 organizationId和 directoryId 是正確的。 |
| 爬取或同步失敗。 | username 或 API 字符 (password) 無效。 |
驗證秘密中的BASIC使用者名稱和 API 字符。 |
| 所有使用者在先前運作後都會遭到拒絕。 | API 字符或管理員 API 金鑰已過期或已撤銷。 | 在秘密中輪換受影響的登入資料。 |