次の方法で共有


Azure AI 検索におけるクエリ実行時の Microsoft Purview 秘密度ラベルの適用

現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

クエリ時に、Azure AI Search は Microsoft Purview で定義された秘密度ラベル ポリシーを適用します。 これらのポリシーには、各ドキュメントに関連付けられている READ 使用権限 の評価が含まれます。 その結果、ユーザーは表示が許可されているドキュメントのみを取得できます。

この機能により、Microsoft Purview で管理されている組織の情報保護とコンプライアンスの要件に合わせて、ドキュメント レベルのアクセス制御が拡張されます。

Purview 秘密度ラベルのインデックス作成が有効になっている場合、Azure AI Search では、クエリ時に各ドキュメントのラベル メタデータがチェックされます。 Purview ポリシーに基づいてアクセス フィルターを適用し、要求元のユーザーがアクセスを許可されている結果のみを返します。

この記事では、クエリ時間の秘密度ラベルの適用のしくみと、セキュリティで保護された検索クエリを発行する方法について説明します。

[前提条件]

秘密度ラベルが有効なインデックスに対してクエリを実行するには、次の条件を満たす必要があります。

制限事項

  • Microsoft Entra ゲスト ユーザー とテナント間クエリはサポートされていません。
  • オートコンプリート API と Suggest API は、Purview 対応インデックスではサポートされていません。
  • ラベルの評価が失敗した場合 (Purview API が一時的に使用できない場合など)、サービスは 5xx を返し、部分的またはフィルター処理されていない結果セットは返 しません
  • 現時点では、ACL ベースのセキュリティ フィルターは、秘密度ラベルの機能と共にサポートされていません。 両方を同時に有効にしないでください。 組み合わされた使用がサポートされると、それに応じて文書化されます。
  • システムは、前回のインデクサー実行時に存在していたラベルのみを評価します。最近のラベルの変更は、次にスケジュールされたインデックスが再作成されるまで反映されない場合があります。

クエリ時のセンシティビティラベル適用のしくみ

Microsoft Purview 秘密度ラベルを含むインデックスに対してクエリを実行すると、Azure AI Search は結果を返す前に、関連付けられている Purview ポリシーをチェックします。 この方法では、クエリは、ユーザー トークンがアクセスを許可されているドキュメントのみを返します。

1. ユーザー ID とアプリケーション ロールの入力

クエリ時に、Azure AI Search は次の両方を検証します。

  • 呼び出し元のアプリケーションの RBAC ロール。 Authorization ヘッダーに含まれています。
  • x-ms-query-source-authorization ヘッダーで指定されたトークンを介したユーザー ID。

ラベルベースの可視性を承認するには、両方が必要です。

入力型 Description ソースの例
アプリケーション ロール 呼び出し元アプリがインデックスに対してクエリを実行するアクセス許可を持っているかどうかを判断します。 Authorization: Bearer <app-token>
ユーザー ID エンド ユーザーがアクセスを許可する秘密度ラベルを決定します。 x-ms-query-source-authorization: Bearer <user-token>

2. 感度ラベルの評価

クエリ要求を受信すると、Azure AI Search によって次の評価が行われます。

  1. 各インデックス付きドキュメントの sensitivityLabel フィールド (インジェスト中に Microsoft Purview から抽出)。
  2. Microsoft Entra ID と Purview ラベル ポリシーで定義されている、ユーザーの有効な Purview アクセス許可。

ユーザーが抽出アクセス許可を持つドキュメントの秘密度ラベルを承認されていない場合、そのドキュメントはクエリ結果から除外されます。

内部的には、サービスは RBAC の適用と同様の動的アクセス フィルターを構築します。
これらのフィルターはユーザーに表示されず、クエリ ペイロードでは変更できません。

3. セキュリティで保護された結果のフィルター処理

Azure AI Search は、ユーザー定義のすべてのフィルターとスコアリングの手順の後にセキュリティ フィルターを適用します。
ドキュメントは、次の場合にのみ最終的な結果セットに含まれます。

  • 呼び出し元のアプリケーションには、RBACを通じた有効なロールの割り当てがあり、
  • x-ms-query-source-authorizationによって表されるユーザー ID トークンは有効であり、ドキュメントの秘密度ラベルを持つコンテンツを表示できます。

いずれかの条件が失敗した場合、ドキュメントは結果から省略されます。

クエリの例

Microsoft Purview 秘密度ラベルの適用を使用したクエリ要求の例を次に示します。
クエリ トークンは要求ヘッダーで渡されます。 どちらのヘッダーにも、アプリケーションとエンド ユーザーを表す有効なベアラー トークンを含める必要があります。

POST  {{endpoint}}/indexes/sensitivity-docs/docs/search?api-version=2025-11-01-preview
Authorization: Bearer {{app-query-token}}
x-ms-query-source-authorization: Bearer {{user-query-token}}
Content-Type: application/json

{
    "search": "*",
    "select": "title,summary,sensitivityLabel",
    "orderby": "title asc"
}

Azure AI Search では、SharePoint、Azure BLOB などのソースからの秘密度ラベルを使用してドキュメント コンテンツのインデックスを作成すると、コンテンツとラベルメタデータの両方が格納されます。 検索クエリは、ドキュメントに適用された秘密度ラベルを識別する GUID と共に、インデックス付きコンテンツを返します。これは、ユーザーがそのドキュメントのデータ READ アクセス権を持っている場合のみです。 この GUID はラベルを一意に識別しますが、ラベル名や関連するアクセス許可などの人間が判読できるプロパティは含まれません。

秘密度ラベルには、 Microsoft Purview Information Protection によって適用される他のポリシー制御 (印刷のアクセス許可やスクリーンショット、画面キャプチャの制限など) が含まれることがよくあります。そのため、GUID だけではユーザー インターフェイスを含むシナリオでは不十分です。 Azure AI Search では、これらの機能は表示されません。

ラベル名を表示したり、UI 固有の制限を適用したりするには、アプリケーションで Microsoft Purview Information Protection エンドポイントを呼び出して、完全なラベル メタデータと関連するアクセス許可を取得する必要があります。

Azure AI Search によって返される GUID を使用してラベルのプロパティを解決し、 Purview Labels API を 呼び出してラベル名、説明、およびポリシー設定をフェッチできます。 この エンドツーエンドのデモ サンプル には、ユーザー インターフェイスからエンドポイントを呼び出す方法を示すコードが含まれています。 また、ラベル名を抽出し、RAG アプリケーションまたはエージェントで使用される引用文献の一部として公開する方法についても説明します。