本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
文件層級存取控制
SharePoint 資料來源可選擇性支援文件層級存取控制。啟用時,Bedrock 受管知識庫會在每個網路爬取期間從 SharePoint 同步存取控制清單 (ACLs),並在查詢時驗證每個使用者的許可,因此使用者只會看到他們獲授權在 SharePoint 中存取的文件結果。如需所有連接器的 ACL 意識概觀,請參閱 存取控制清單意識啟用。
ACL 意識不是授權
Bedrock 受管知識庫提供 ACL 感知篩選,而不是安全界限。Bedrock 受管知識庫不會驗證最終使用者 — 您的應用程式負責驗證使用者並傳遞已驗證的身分內容。由於 Bedrock 受管知識庫無法驗證您提供的使用者內容的真實性,因此此功能會根據您提供的身分篩選結果,但不會構成真正的授權。在沒有上游身分驗證的情況下,您不得依賴此功能做為唯一存取控制機制。
運作方式
當使用者查詢使用啟用 ACL 的 SharePoint 資料來源的知識庫時,Bedrock 受管知識庫會分兩個階段強制執行存取控制:
-
擷取前篩選 — Bedrock 受管知識庫會套用上次網路爬取期間從 SharePoint 同步的存取控制清單,只傳回允許使用者 (或其群組) 存取的候選文件。
-
即時驗證 — Bedrock 受管知識庫會檢查使用者在 SharePoint 中的目前存取權,以即時驗證候選文件。回應中僅包含使用者目前獲授權存取的文件。
這種兩階段方法提供文件層級的存取控制,即使 SharePoint 許可在同步之間變更,也能保持最新狀態。
爬取的內容
啟用 ACLs時,Bedrock 受管知識庫會從 SharePoint 爬取下列許可結構:
網站層級成員資格和角色指派
文件程式庫層級許可
項目層級 (檔案和頁面) 許可,包括破壞繼承的唯一許可
安全群組成員資格,包括 Microsoft Entra ID (Azure AD) 安全群組、啟用郵件的安全群組和分發群組。巢狀 (暫時性) 群組成員資格也會獲得解決。
在查詢時,您傳遞使用者的電子郵件地址 (非群組)。Bedrock 受管知識庫會從其編目的資料解析該使用者的群組成員資格,並在篩選結果時套用。如需身分模型的詳細資訊,請參閱 存取控制清單意識啟用。
啟用 ACL 意識
若要啟用 SharePoint 資料來源的 ACL 意識,請在 true中aclEnabled將 設定為 ENTRA_ID_APP_ONLY connectorParameters,並使用 身分驗證類型。此身分驗證類型使用憑證型應用程式許可,允許 Bedrock 受管知識庫在查詢時間爬取身分資訊並驗證文件存取。
重要
ACL 組態是永久的。您無法在無 ACLs 支援的情況下建立的資料來源上啟用 ACL,而且一旦啟用,就無法停用 ACLs。
您的 Entra ID 應用程式註冊必須具有下列應用程式許可:
User.Read.AllMicrosoft GraphGroupMember.Read.All上的 和 (用於身分爬取)Sites.FullControl.All在 SharePoint 上,或授予每個站台的許可Sites.Selected(用於文件存取驗證)
connectionConfiguration 必須包含certificateS3Path指向 Amazon S3 中 PKCS#12 (.p12) 憑證檔案的 。
注意
秘密中的 certificatePassword 欄位是選用的。如果您省略它,Boodrock 受管知識庫會使用應用程式的用戶端 ID 做為密碼來開啟 PKCS#12 (.p12) 檔案,因此必須使用該密碼建立憑證。我們建議您一律設定明確的高certificatePassword熵,以保護憑證的靜態私有金鑰。
"connectorParameters": { "type": "SHAREPOINT", "version": "1", "aclEnabled": true, "connectionConfiguration": { "tenantId": "your-tenant-id", "authType": "ENTRA_ID_APP_ONLY", "secretArn": "arn:aws:secretsmanager:region:account-id:secret:secret-name", "certificateS3Path": { "s3BucketName": "your-certificate-bucket", "s3KeyName": "certs/certificate.p12" } }, "dataEntityConfiguration": { "siteUrls": [ "https://contoso.sharepoint.com/sites/engineering" ], "crawlFiles": true, "crawlPages": true } }
注意
啟用 ACL 的 SharePoint OAUTH2_APP 資料來源不支援身分驗證類型。您必須使用 ENTRA_ID_APP_ONLY。
即時存取驗證
Bedrock 受管知識庫使用應用程式的憑證型許可 (為爬取設定ENTRA_ID_APP_ONLY的應用程式註冊),在查詢時間針對 SharePoint 驗證每個候選文件。與委派的使用者登入流程不同,不需要互動的每位使用者登入或同意 - 透過 Sites.FullControl.All或 Sites.Selected許可,驗證會使用相同的應用程式註冊和憑證,以確認查詢使用者仍然可以存取每個文件。
驗證您的組態
您可以獨立於擷取請求來驗證您的 Entra 應用程式許可。執行下列各項檢查:
-
Microsoft Graph (網路爬取):
取得具有範圍的應用程式字符
https://graph.microsoft.com/.default,並確認roles宣告包含User.Read.All和GroupMember.Read.All。呼叫 Microsoft Graph 網站端點 (例如
GET https://graph.microsoft.com/v1.0/sites/{site}),並確認它傳回網站。
-
SharePoint REST (即時驗證):
使用範圍為 的憑證用戶端聲明來取得權杖
https://{tenant}.sharepoint.com/.default。確認字符的
roles宣告包含 SharePointSites.FullControl.All(或Sites.Selected) 許可。roles: null值表示缺少許可或管理員同意。呼叫
GET https://{tenant}.sharepoint.com/_api/web並確認成功 (HTTP 200)。失敗或未經授權的回應表示缺少 SharePoint 許可或管理員同意,這會導致所有文件被拒絕。
疑難排解
注意
ACL 設定錯誤不會在擷取期間產生明確的錯誤。擷取關閉失敗:會無提示地省略受影響的文件,因此查詢會傳回較少或零的結果,而不是錯誤。使用上述驗證檢查來診斷這些問題。
| 徵狀 | 可能原因 | 修正 |
|---|---|---|
| 擷取會傳回 0 個結果,但使用者在 SharePoint 中具有存取權。 | SharePoint Sites.FullControl.All(或 Sites.Selected) 許可或管理員同意遺失,因此 SharePoint REST 呼叫會遭到拒絕,且每個文件都會遭到拒絕。 |
在獲得管理員同意的情況下授予 SharePoint Sites.FullControl.All許可 (或使用Sites.Selected每個站台的授予)。由於這些應用程式登入資料會快取,因此最多需要一小時的時間,變更才會生效,或是與not-yet-queried的使用者進行測試,以便更快確認。 |
| 使用者在 SharePoint 中的存取權已變更,但新結果不會立即反映。 | 每個使用者存取結果在資料來源和 Bedrock 受管知識庫 (通常在大約兩分鐘內) 之間最終一致,因此最近的存取變更可能不會立即反映。 | 在資料來源反映變更之後,請等待約兩分鐘,然後重試。 |
| 所有使用者在先前運作後都會遭到拒絕。 | 憑證已過期,或管理員同意已撤銷。 | 在 Entra 應用程式註冊和 Amazon S3 中續約憑證,並重新授予管理員同意。 |
| 雖然組態看起來正確,網路爬取或同步會失敗。 | 缺少必要的 Microsoft Graph 應用程式許可。 | 授予 User.Read.All和 GroupMember.Read.All。 |
| 憑證密碼或字符挖掘錯誤。 | .p12 密碼不符合 certificatePassword。 |
將 certificatePassword設定為用來建立 .p12 檔案的密碼。 |