참고
이 기능은 현재 미리 보기로 제공됩니다. 이 미리 보기는 서비스 수준 계약 없이 제공되며 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure 미리 보기에 대한 사용 약관 참조하세요.
쿼리 시 Azure AI 검색 Microsoft Purview 정의된 민감도 레이블 정책을 적용할 수 있습니다. 이러한 정책에는 사용자가 액세스할 수 있는 문서만 검색할 수 있도록 각 문서와 연결된 사용 권한 평가EXTRACT가 포함됩니다.
이 기능은 Microsoft Purview에서 관리되는 조직의 정보 보호 및 규정 준수 요구 사항에 맞춰 문서 수준 액세스 제어를 확장합니다.
Purview 민감도 레이블 인덱싱을 사용하도록 설정하면 Azure AI 검색 쿼리 시간 동안 각 문서의 레이블 메타데이터를 확인합니다. Purview 정책에 따라 액세스 필터를 적용하여 요청 중인 사용자가 액세스할 수 있는 결과만 반환합니다.
이 문서에서는 쿼리 시간 민감도 레이블 적용의 작동 방식과 보안 검색 쿼리를 실행하는 방법을 설명합니다.
필수 구성 요소
Azure AI 검색 인덱서를 사용하여 Microsoft Purview 민감도 레이블 수집의 모든 단계를 완료합니다.
쿼리를 실행하는 Azure AI 검색 서비스와 사용자가 모두 동일한 Microsoft Entra 테넌트에 있어야 합니다.
REST API 버전 2025-11-01-preview 또는 인덱스 쿼리에 해당하는 미리 보기 SDK 패키지입니다.
API 키가 아닌 RBAC(Azure 역할 기반 액세스 제어를 사용하여 쿼리를 인증합니다. Purview 민감도 레이블을 사용하도록 설정하면 API 키 액세스가 인덱스 스키마 검색으로 제한됩니다.
제한
게스트 계정 및 테넌트 간 쿼리는 지원되지 않습니다.
레이블 평가에 실패하는 경우(예: Purview API를 일시적으로 사용할 수 없음) 서비스는 5xx를 반환하고 부분 또는 필터링되지 않은 결과 집합을 반환하지 않습니다.
시스템은 마지막 인덱서 실행 시 존재했던 레이블만 평가합니다. 최근 레이블 변경 내용은 다음 예약된 재인덱싱까지 반영되지 않을 수 있습니다.
쿼리 시간 민감도 레이블 적용의 작동 방식
Microsoft Purview 민감도 레이블이 포함된 인덱스를 쿼리하는 경우 결과를 반환하기 전에 Azure AI 검색 연결된 Purview 정책을 확인합니다. 이러한 방식으로 쿼리는 사용자 토큰에 액세스할 수 있는 문서만 반환합니다.
1. 사용자 ID 및 애플리케이션 역할 입력
쿼리 시 Azure AI 검색 다음 두 가지 모두의 유효성을 검사합니다.
-
Authorization헤더에서 제공된 호출 애플리케이션의 RBAC 역할입니다. 필요한 최소 역할은Search Index Data Reader입니다. 자세한 내용은 Azure AI 검색 RBAC 가이드 참조하세요. - 헤더에 제공된
x-ms-query-source-authorization토큰을 통한 사용자 ID입니다.
둘 다 레이블 기반 표시 권한을 부여해야 합니다.
| 입력 형식 | 설명 | 예제 원본 |
|---|---|---|
| 애플리케이션 역할 | 호출 앱에 인덱스에 대한 쿼리를 실행할 수 있는 권한이 있는지 여부를 확인합니다. | Authorization: Bearer <app-token> |
| 사용자 ID | 최종 사용자가 액세스할 수 있는 민감도 레이블을 결정합니다. | x-ms-query-source-authorization: <user-token> |
2. 민감도 레이블 평가
쿼리 요청을 받으면 Azure AI 검색 다음을 평가합니다.
- 인덱싱된 각 문서의
sensitivityLabel필드입니다(수집 중에 Microsoft Purview 추출됨). - Microsoft Entra ID 및 Purview 레이블 정책에 정의된 사용자의 유효 Purview 권한입니다.
사용자에게 사용 권한이 있는 문서의 민감도 레이블 EXTRACT 에 대한 권한이 없는 경우 해당 문서는 쿼리 결과에서 제외됩니다.
참고
내부적으로 서비스는 RBAC 적용과 유사한 동적 액세스 필터를 빌드합니다.
이러한 필터는 사용자가 볼 수 없으며 쿼리 페이로드에서 수정할 수 없습니다.
3. 결과 필터링 보안
Azure AI 검색 모든 사용자 정의 필터 및 점수 매기기 단계 후에 보안 필터를 적용합니다.
문서는 다음 경우에만 최종 결과 집합에 포함됩니다.
- 호출 애플리케이션에는 RBAC를 통해 유효한 역할 할당이 있습니다.
- 표시되는
x-ms-query-source-authorization사용자 ID 토큰은 유효하며 문서의 민감도 레이블을 사용하여 콘텐츠를 볼 수 있습니다.
두 조건 중 하나가 실패하면 결과에서 문서가 생략됩니다.
사용자 액세스 토큰 획득
사용자 컨텍스트를 사용하여 Azure AI 검색 쿼리하려면 로그인한 사용자를 나타내는 액세스 토큰을 획득해야 합니다. 사용하는 방법은 사용자 고유의 토큰을 사용하여 로컬로 테스트하는지, 원본 문서에 액세스할 수 있는지, 최종 사용자 토큰을 전달해야 하는 애플리케이션 흐름을 구현하는지에 따라 달라집니다.
테스트 시나리오의 경우
로컬 테스트의 경우 Azure CLI 사용하여 사용자 액세스 토큰을 검색할 수 있습니다.
$token = az account get-access-token `
--resource https://search.azure.com `
--query accessToken `
--output tsv
이 방법은 현재 Azure CLI 로그인 세션을 사용하므로 민감도 레이블을 통해 할당된 EXTRACT 권한이 있는 문서에 컨텍스트를 사용할 수 있습니다. 이 메서드는 개발 및 유효성 검사 시나리오에만 사용됩니다.
OBO 시나리오에 대한 토큰 획득
OBO(On-Behalf-of) 흐름을 구현하는 애플리케이션은 지원되는 인증 라이브러리(예: MSALMicrosoft 인증 라이브러리)를 사용하여 Microsoft Entra ID 통해 토큰을 획득해야 합니다.
OBO 시나리오에서는 애플리케이션이 호출하는 다운스트림 API에 대해 토큰을 요청해야 합니다. 예를 들어 Azure AI 검색 호출할 때 리소스 URI는 https://search.azure.com/.default.
지정된 리소스의 애플리케이션에 대해 미리 동의된 모든 위임된 권한의 범위를 요청합니다.
민감도 레이블 권한(포함 EXTRACT)은 OAuth 범위로 표시되지 않습니다. 이러한 권한은 토큰의 사용자 ID 및 적용된 민감도 레이블 정책에 따라 Azure AI 검색 같은 다운스트림 서비스에서 런타임에 평가됩니다.
쿼리 예제
다음은 Microsoft Purview 민감도 레이블 적용을 사용하는 쿼리 요청의 예입니다.
애플리케이션 토큰은 헤더에서 Authorization 전달자 토큰으로 전달됩니다. 사용자 토큰은 접두사 없이 x-ms-query-source-authorization 헤더의 Bearer 원시 토큰 값으로 전달됩니다.
POST {{endpoint}}/indexes/sensitivity-docs/docs/search?api-version=2025-11-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"
}
Azure AI 검색에서 민감도 레이블 처리
Azure AI 검색 SharePoint, Azure Blob 등의 원본에서 민감도 레이블을 사용하여 문서 콘텐츠를 인덱싱할 때 콘텐츠와 레이블 메타데이터를 모두 저장합니다. 검색 쿼리는 사용자가 민감도 레이블 정의를 통해 할당된 해당 문서에 대한 데이터 EXTRACT 액세스 권한이 있는 경우에만 문서에 적용된 민감도 레이블을 식별하는 GUID와 함께 인덱싱된 콘텐츠를 반환합니다. 이 GUID는 레이블을 고유하게 식별하지만 레이블 이름 또는 관련 권한과 같이 사람이 읽을 수 있는 속성은 포함하지 않습니다.
민감도 레이블은 인쇄 권한 또는 스크린샷 및 화면 캡처 제한과 같이 Microsoft Purview Information Protection 의해 적용되는 다른 정책 컨트롤을 포함하는 경우가 많기 때문에 사용자 인터페이스를 포함하는 시나리오에서는 GUID만으로는 충분하지 않습니다. Azure AI 검색 이러한 기능을 표시하지 않습니다.
레이블 이름을 표시하거나 UI 관련 제한을 적용하려면 애플리케이션이 Microsoft Purview Information Protection 엔드포인트를 호출하여 전체 레이블 메타데이터 및 관련 권한을 검색해야 합니다.
Azure AI 검색 반환된 GUID를 사용하여 레이블 속성을 확인하고 Purview Labels API 호출하여 레이블 이름, 설명 및 정책 설정을 가져올 수 있습니다.
엔드 투 엔드 테스트 설정
Azure AI 검색의 민감도 레이블 구성을 유효성 검사하는 데 도움을 주기 위해, 여기에 엔드 투 엔드 설정 예시가 있습니다.
이 리포지토리는 다음을 보여 줍니다.
- Azure AI 검색에서 민감도 레이블 동기화 및 적용을 구성하는 방법
- 민감도 레이블이 있는 문서에 대한 수집 및 쿼리 시간 적용 시나리오를 테스트하는 방법
- 레이블 이름을 추출하고 RAG 애플리케이션 또는 에이전트에 사용되는 인용의 일부로 노출하는 방법입니다.