註
Azure AI 搜尋服務 可透過 Azure 入口網站、REST API 及 Azure SDK 取得。 它同時也是 Foundry IQ 的基礎,這是一個管理式知識層,能將企業內容轉化為可重複使用、權限感知的知識庫,供 Microsoft Foundry 入口網站中的代理使用。
Important
標記(預覽)的功能、能力或屬性不受服務等級協議涵蓋,也不建議用於生產工作負載,且在正式上架前可能會有所變動或受限。 Azure AI 搜尋服務 預覽條款適用於所有預覽功能,無論是獨立功能還是正式推出功能的一部分。
在查詢時,Azure AI 搜尋服務 可以強制執行 Microsoft Purview 中定義的敏感度標籤政策(預覽)。 這些政策包括評估EXTRACT每份文件的使用權限,確保使用者只能存取他們被允許存取的文件。
此能力擴展了文件層級存取控制,以符合您組織資訊保護與合規要求,這些要求由Microsoft Purview管理。
啟用 Purview 敏感度標籤索引時,Azure AI 搜尋服務 會在查詢時檢查每份文件的標籤元資料。 它根據 Purview 政策套用存取篩選器,只回傳請求使用者被允許存取的結果。
本文說明查詢時間敏感性標籤強制執行的運作方式,以及如何發出安全的搜尋查詢。
小提示
如果您是透過知識庫(retrieve 動作或 MCP 端點)取用帶有標籤的內容,而不是直接呼叫 Azure AI 搜尋服務,請參閱 檢查 retrieve 回應中的敏感度標籤中繼資料,了解對應的回應欄位。 本文記錄的提升權限讀取和 Microsoft Purview 稽核記錄會套用至這兩個路徑。
先決條件
確認 Azure AI 搜尋服務 服務是否啟用了系統指派的管理身份(非使用者指派的管理身份),且是否持有
Content.SuperUser和UnifiedPolicy.Tenant.Read角色指派。 查詢時強制執行依賴標籤元資料,索引器僅在系統指派身份設定正確時才能擷取。 請參考索引器設定文章的第一 步 。Azure AI 搜尋服務 服務與發出查詢的使用者必須在同一個 Microsoft Entra 租戶中。
REST API 版本 2025-11-01-preview 或更新版本,或同等的預覽 SDK 套件,以查詢索引。 提升權限讀取功能和 Purview 稽核記錄需要 2026-05-01-preview 或更新版本。
驗證查詢時應使用Azure角色基礎存取控制(RBAC),避免使用API金鑰。 啟用 Purview 敏感性標籤時,API 金鑰存取僅限於索引結構檢索。
限制
不支援來賓帳戶和跨租用戶查詢。
若標籤評估失敗,服務會回傳特定的 HTTP 錯誤碼,而非部分或未過濾的結果集。 完整錯誤代碼與原因清單,請參見 故障排除查詢錯誤。
系統僅評估標籤在上一次索引器運行時的狀態。 近期標籤變更可能要等到下一次排定的重新索引時才會反映。
查詢時敏感性標籤強制執行的運作方式
當你查詢包含 Microsoft Purview 敏感度標籤的索引時,Azure AI 搜尋服務 會在回傳結果前檢查相關的 Purview 政策。 如此一來,查詢只會回傳使用者憑證被允許存取的文件。
1. 使用者身份與應用程式角色輸入
在查詢時,Azure AI 搜尋服務 會同時驗證:
- 呼叫應用程式的 RBAC 角色,會在
Authorization標頭中提供。 所需的最低角色為Search Index Data Reader。 欲了解更多細節,請參閱Azure AI 搜尋服務 RBAC指南。 - 透過權杖的使用者身分識別 (在
x-ms-query-source-authorization標頭中提供)
兩者皆為授權以標籤為基礎之可見性的必要條件。
| 輸入類型 | 描述 | 範例來源 |
|---|---|---|
| 應用角色 | 判斷呼叫應用程式是否有權限對索引執行查詢。 | Authorization: Bearer <app-token> |
| 使用者身份 | 決定最終使用者可存取哪些敏感標籤。 | x-ms-query-source-authorization: <user-token> |
2. 敏感性標籤評估
當收到查詢請求時,Azure AI 搜尋服務 會評估:
- 每個索引文件中的
sensitivityLabel欄位(在從 Microsoft Purview 擷取過程中抽取)。 - 使用者的有效 Purview 權限,依據 Microsoft Entra ID 與 Purview 標籤政策所定義。
如果使用者未被授權使用文件的敏感性標籤並取得 EXTRACT 權限,該文件將被排除在查詢結果之外。
註
在內部,該服務建置類似 RBAC 強制執行的動態存取過濾器。
這些篩選器不被使用者看到,且無法在查詢負載中修改。
3. 安全結果過濾
Azure AI 搜尋服務 會在所有使用者自訂的篩選器和評分步驟後套用安全篩選器。
只有在滿足以下條件的情況下,文件才會被包含在最終結果集中:
- 呼叫應用程式擁有有效的角色指派(透過 RBAC),且
- 所
x-ms-query-source-authorization代表的使用者身份憑證有效且允許查看帶有文件敏感標籤的內容。
若任一條件不合格,該文件將被排除在結果之外。
取得用戶存取權杖
若要使用使用者情境查詢 Azure AI 搜尋服務,您必須取得代表已登入使用者的存取權杖。 你採用的方法取決於你是在本地用自己的 token 測試、是否能存取原始文件,或是實作需要傳遞終端使用者 token 的應用程式流程。
用於測試場景
在本地測試時,你可以使用 Azure CLI 取得使用者存取權杖:
$token = az account get-access-token `
--resource https://search.azure.com `
--query accessToken `
--output tsv
此方法會使用您目前的 Azure CLI 登入工作階段,因此您可以在您透過敏感度標籤獲指派 EXTRACT 權限的文件上使用內容。 此方法僅適用於開發與驗證情境。
OBO 場景下的代幣取得
實作代理者 (OBO) 流程的應用程式,必須使用支援的驗證程式庫 (例如 Microsoft 驗證程式庫 (MSAL)),透過 Microsoft Entra ID 取得權杖。
在 OBO 情境中,請針對應用程式所呼叫的下游 API 要求權杖。 例如,呼叫 Azure AI 搜尋服務 時,資源 URI 為 https://search.azure.com/.default。
.default 範圍會要求應用程式針對指定資源預先取得同意的所有委派權限。
敏感度標籤權限(包括 EXTRACT)不會以 OAuth 範圍來表示。 下游服務,如 Azure AI 搜尋服務,會在執行時根據令牌中的使用者身份及所套用的敏感性標籤政策評估這些權限。
查詢範例
這裡有一個使用 Microsoft Purview 敏感度標籤強制執行的查詢請求範例。
在 Authorization 標頭中,將應用程式權杖作為持有人權杖傳遞。 將使用者代幣作為標頭中的 x-ms-query-source-authorization 原始代幣值傳遞,且不加 Bearer 前綴。
POST {{endpoint}}/indexes/sensitivity-docs/docs/search?api-version=2026-08-01-preview
Authorization: Bearer {{app-query-token}}
x-ms-query-source-authorization: {{user-query-token}}
Content-Type: application/json
{
"search": "*",
"select": "title,summary,sensitivityLabel",
"orderby": "title asc"
}
系統管理調查的提升權限讀取 (預覽版)
提升權限讀取可讓已獲授權的開發人員傳回呼叫使用者平常無法查看的已加上標籤文件,並針對要求傳回的每份文件產生一筆 Microsoft Purview 稽核記錄。 可用於合規審查、電子發現、事件回應及其他需要可稽核存取紀錄的行政調查。
提升讀取權限適用於 REST API 版本 2026-05-01-preview 及更新版本中已啟用 Purview 的索引。
提升權限讀取的運作方式
呼叫應用程式會在搜尋請求上設定
x-ms-enable-elevated-read: true標頭。Azure AI 搜尋服務 跳過了每個文件標籤的存取檢查,並回傳符合文件的檔案,無論請求者對每個標籤的
EXTRACT權限如何。對於回應中的每一份文件,Azure AI 搜尋服務 代表請求的租戶向
Microsoft Purview 稽核日誌 發送一條條目。 一個回傳 N 份文件的搜尋請求會產生 N 個稽核條目。 稽核項目在搜尋回應回傳後會非同步上傳至 Purview。
必要的角色指派
呼叫開發者必須在搜尋服務或索引範圍內擔任 搜尋索引資料貢獻 者角色。
Search Index Data Reader 並不足夠。 如果未指派角色,提升權限讀取會失敗並顯示 403 Forbidden。 如需 Azure AI 搜尋服務 角色的詳細資訊,請參閱 使用角色連線至 Azure AI 搜尋服務。
當 x-ms-enable-elevated-read 標頭設為 true時, x-ms-query-source-authorization 該標頭不允許使用。
提升權限讀取範例
POST {{endpoint}}/indexes/sensitivity-docs/docs/search?api-version=2026-08-01-preview
Authorization: Bearer {{contributor-token}}
x-ms-enable-elevated-read: true
Content-Type: application/json
{
"search": "*",
"select": "title,summary,sensitivityLabel",
"orderby": "title asc"
}
傳送至 Microsoft Purview 的稽核欄位
每個稽核項目遵循 Office 365 管理活動 API 架構,並包含以下欄位。
| 類別 | Field | 描述 |
|---|---|---|
| 標準結構 | CreationTime |
提升權限讀取要求的 UTC 時間戳記。 |
| 標準結構 | Operation |
識別提升權限讀取動作的作業名稱。 |
| 標準結構 | OrganizationId |
搜尋服務的 Microsoft Entra 租戶 ID。 |
| 標準結構 | RecordType |
適用於 Azure AI 搜尋服務 的 Office 365 管理活動記錄類型。 |
| 標準結構 | UserType |
發出請求的使用者類型。 |
| 標準結構 | UserId |
請求使用者的唯一識別碼(PUID)。 |
| 標準結構 | UserPrincipalName |
提出要求之使用者的使用者主體名稱(UPN)。 |
| 標準結構 | ClientIP |
呼叫應用程式的 IP 位址。 |
| Azure AI 搜尋服務 | UserObjectId |
請求使用者的 Microsoft Entra 物件 ID。 |
| Azure AI 搜尋服務 | DocumentDataSourceType |
存取文件的來源類型,例如 azureblob、 sharepoint、 onelake或 searchIndex。 |
| Azure AI 搜尋服務 | DocumentDataSourceId |
存取文件的來源特定識別碼,例如 blob URL 或 SharePoint 項目 ID。 |
| Azure AI 搜尋服務 | SensitivityLabelName |
套用於所存取文件的敏感度標籤顯示名稱。 |
優雅降級
如果 Azure AI 搜尋服務 在處理查詢時無法連通 Microsoft Purview,例如在 Purview 暫時中斷時,會跳過該請求的標籤評估。 行為取決於請求是否包含使用者身份標記:
提高權限的讀取要求 (
x-ms-enable-elevated-read: true):要求因5xx而失敗。 Azure AI 搜尋服務 不會在無法先發出審計日誌的情況下回傳有標籤的文件。標準標籤強制執行的要求(使用
x-ms-query-source-authorization時):要求會因5xx而失敗。 Azure AI 搜尋服務 無法評估標籤政策時,不會回傳部分或未過濾的結果。沒有
x-ms-query-source-authorization的呼叫由至少具備搜尋索引資料讀取器角色的應用程式發出:請求成功,僅回傳沒有敏感性標籤的文件。 回覆中省略了標示文件。
此退化路徑僅適用於明確接受未標籤結果的非使用者介面工作流程。 不要將它用於終端使用者的搜尋體驗。
關於查詢時敏感性標籤評估中回傳的完整錯誤碼清單,請參見 「查詢錯誤故障排除」。
在 Microsoft Purview 中尋找高權限讀取審核記錄
Azure AI 搜尋服務 會將稽核資料上傳到呼叫租戶的 Microsoft Purview 稽核日誌。 若要調查讀取活動升高的情況:
在Microsoft Purview 入口網站中,選擇Solutions>Audit。
選擇 Audit Search,然後依日期範圍、使用者或Azure AI 搜尋服務紀錄類型進行篩選。
開啟條目可查看標準結構欄位及Azure AI 搜尋服務自訂欄位,包括
SensitivityLabelName、DocumentDataSourceType和DocumentDataSourceId。
如需執行稽核搜尋、保留行為和必要 Purview 角色的逐步指引,請參閱在 Microsoft Purview 入口網站中搜尋稽核記錄。
Azure AI 搜尋服務 中的敏感度標籤處理
當 Azure AI 搜尋服務 索引來自 SharePoint、Azure Blob 等來源的敏感度標籤文件內容時,它會同時儲存內容和標籤的元資料。 搜尋查詢會回傳已索引的內容,以及識別敏感性標籤的 GUID,前提是使用者透過敏感性標籤定義獲得該文件的資料 EXTRACT 存取權。 此 GUID 唯一識別標籤,但不包含可讀的屬性,如標籤名稱或相關權限。
請注意,僅靠 GUID 對於包含使用者介面的情境來說是不夠的,因為敏感性標籤通常包含由 Microsoft Purview 資訊保護 強制執行的其他政策控制,例如:列印權限或截圖與螢幕擷取限制。 Azure AI 搜尋服務 並未顯示這些功能。
若要顯示標籤名稱及/或執行 UI 特定限制,您的應用程式必須呼叫 Microsoft Purview 資訊保護 端點以取得完整的標籤元資料及相關權限。
你可以使用 Azure AI 搜尋服務 回傳的 GUID 來解析標籤屬性,並呼叫 Purview 標籤 API 來取得標籤名稱、描述和政策設定。
疑難排解查詢錯誤
當查詢時敏感性標籤評估失敗時,Azure AI 搜尋服務 會回傳特定的 HTTP 錯誤代碼,以識別原因。 服務從不回傳部分或未過濾的結果集。 如果無法評估標籤政策,查詢會失敗,而不是暴露未標註或未經授權的內容。
400 錯誤的請求
400 錯誤表示索引設定或請求標頭有問題。 在重試前先修正設定。
| 狀況 | 要檢查的事項 |
|---|---|
索引定義了一個新的敏感度標籤欄位,以及一個或多個舊有 permissionFilter: sensitivityLabel 欄位。 |
只使用一種配置風格。 移除索引結構中的新的敏感度標籤欄位或所有舊有權限篩選欄位。 請參閱 「設定索引 」以獲得指引。 |
該指數定義了多個舊有 permissionFilter: sensitivityLabel 欄位。 |
索引僅支援一個供敏感度標籤使用的舊版權限篩選欄位。 移除索引結構中的重複欄位。 |
| 索引已設定為 Purview 過濾,但未定義敏感性標籤欄位。 | 將所需的敏感度標籤欄位加入索引結構中。 請參見 設定索引。 |
| 委派的使用者電子郵件無效,或該使用者不在與 Azure AI 搜尋服務 服務相同的 Microsoft Entra 租戶中。 | 確認 in x-ms-query-source-authorization 的令牌是否屬於與搜尋服務同一租戶的使用者。 不支援跨租戶查詢。 |
Microsoft Purview 拒絕了該請求,理由是x-ms-query-source-authorization標頭缺失、格式錯誤,或租戶未正式加入 Microsoft Purview 資訊保護。 |
檢查標頭是否 x-ms-query-source-authorization 存在且包含有效的委派使用者憑證。 確認租戶已加入 Microsoft Purview 資訊保護。 |
401 未經授權
401 錯誤表示授權令牌或應用程式的 Purview 權限出現問題。
| 狀況 | 要檢查的事項 |
|---|---|
Authorization: Bearer 權杖不含租用戶 ID 宣告,或是沒有委派使用者內容的僅限應用程式權杖。 |
使用包含租用戶 ID 宣告的委派權杖。 標籤強制執行查詢不支援僅限應用程式權杖。 |
Authorization標頭缺失或未使用該Bearer方案。 |
在請求中加入 Authorization: Bearer <token> 標頭。 |
| 委派權杖無效或已過期、缺少必要 Purview 範圍的系統管理員同意,或租用戶封鎖 Purview 的權杖交換。 | 重新取得代幣。 如果錯誤持續發生,請確認系統管理員已在 Microsoft Entra ID 中,為呼叫端應用程式授與必要 Microsoft Purview API 權限的系統管理員同意。 |
| 憑證端點成功,但未回傳存取憑證。 | 請檢查應用程式在 Microsoft Entra ID 中的權限設定。 確保應用程式擁有所需的委派 Purview 權限,並且有管理員同意。 |
| 來電使用者未同意所需的 Purview API 權限,或是租戶中沒有 Microsoft Purview 資訊保護 的存取權。 | 確保使用者已分配必要的 Purview 權限。 請聯絡您的 Microsoft Purview 或 Microsoft Entra 管理員以確認使用者的存取權限。 |
502 壞門
502 錯誤表示 Azure AI 搜尋服務 與 Microsoft Purview 之間連線故障。 這些錯誤通常是暫時性的。
| 狀況 | 要檢查的事項 |
|---|---|
| 當 Azure AI 搜尋服務 聯絡 Microsoft Purview 時,發生了網路或連線故障。 | 重試查詢。 如果錯誤持續發生,請在 健康情況>服務健康狀態 中檢查 Microsoft 365 系統管理中心,以確認 Microsoft Purview 資訊保護 目前沒有任何進行中的事件。 |
| 與 Purview 通訊時發生未預期的錯誤。 | 重試查詢。 如果錯誤依舊,請聯絡 Microsoft 支援服務。 如果回覆中有關聯ID,請在提交支援申請時提供。 |
504 閘道逾時
504 錯誤表示 Microsoft Purview 未在允許的時間內回應。
| 狀況 | 要檢查的事項 |
|---|---|
| Microsoft Purview 沒有在允許的時間內回應。 | 請重試查詢——這個錯誤通常是暫時性的。 如果問題持續,請在 Microsoft 365 系統管理中心 的>服務健康狀態查詢,確認 Microsoft Purview 資訊保護 沒有活躍事件。 |
端對端測試架構
為了幫助你驗證 Azure AI 搜尋服務 中的敏感度標籤設定,請參閱參考的端對端設定。
本資料庫示範如何:
- 在 Azure AI 搜尋服務中設定敏感度標籤同步和遵循
- 測試具有敏感度標籤之文件的擷取和查詢時強制執行情境
- 擷取標籤名稱,並將其顯示為 RAG 應用程式或代理中所用引文的一部分。