Gunakan pengindeks Pencarian Azure AI untuk memasukkan label sensitivitas Microsoft Purview dan memberlakukan keamanan tingkat dokumen (pratinjau)

Catatan

Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.

Penting

Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.

Pencarian Azure AI mendukung ekstraksi label sensitivitas Microsoft Purview dan penegakan waktu kueri (pratinjau). Selama pengindeksan, ini secara otomatis mengekstrak dan menyimpan metadata label sensitivitas untuk setiap dokumen. Saat kueri dijalankan, kontrol akses berbasis label diterapkan berdasarkan kebijakan perlindungan informasi yang ada di Microsoft Purview, sehingga memastikan bahwa hanya pengguna yang berwenang yang dapat mengakses konten berlabel dalam hasil pencarian.

Fungsionalitas ini tersedia untuk sumber data berikut:

Diagram arsitektur memperlihatkan solusi RAG yang mengatur dokumen berlabel sensitivitas Microsoft Purview, diindeks ke dalam Pencarian Azure AI. Orkestrator RAG memfilter hasil kueri berdasarkan label, sehingga pengguna junior hanya melihat konten Umum sementara pengguna eksekutif melihat konten Umum, Rahasia, dan Sangat Rahasia.

Prasyarat

Penting

Layanan pencarian harus menggunakan identitas terkelola yang ditetapkan sistem untuk mengautentikasi dengan Microsoft Purview. Fitur ini tidak mendukung identitas terkelola yang ditetapkan pengguna.

Keterbatasan

  • Portal Azure tidak mendukung fitur ini.

  • Pelengkapan otomatis dan Sarankan API tidak didukung untuk indeks berkemampuan Purview, karena belum dapat menerapkan kontrol akses berbasis label.

  • Akun tamu dan kueri lintas penyewa tidak didukung.

  • Identitas terkelola yang ditetapkan pengguna tidak didukung untuk penetapan peran Microsoft Purview. Hanya identitas terkelola yang ditetapkan sistem milik layanan yang dapat memiliki peran Content.SuperUser dan UnifiedPolicy.Tenant.Read yang diperlukan untuk ekstraksi label. Tetapkan peran ini langsung ke identitas layanan sendiri - ia melakukan operasi istimewa EXTRACT (membaca konten terenkripsi dan klasifikasi keamanan) atas nama pengindeks. Lihat Langkah 1 dan Langkah 3.

  • Fitur pengindeks berikut tidak mendukung dokumen dengan label sensitivitas. Jika Anda menggunakan salah satu fitur ini dalam set keterampilan atau pengindeks, dokumen dengan label sensitivitas tidak diproses.

Cara kerja penegakan kebijakan

Dukungan label sensitivitas memiliki dua fase: pengindeksan dan penegakan waktu kueri.

Pengindeksan

Saat Anda mengonfigurasi pengindeksan sesuai jadwal, pengindeks menarik dokumen baru dan memperbarui dari sumber data. Untuk setiap dokumen, ia mengambil:

  • Konten dokumen
  • Label sensitivitas yang terkait
  • Perubahan pada konten atau label sejak pengindeks terakhir dijalankan

Catatan

Indeks tidak mencerminkan perubahan label dalam dokumen sumber hingga proses pengindeksan berikutnya berhasil.

Penegakan waktu kueri

Pada waktu kueri, Pencarian Azure AI mengevaluasi label sensitivitas dan memberlakukan kontrol akses tingkat dokumen berdasarkan token Microsoft Entra ID pengguna dan kebijakan label Microsoft Purview. Hanya pengguna yang berwenang untuk mengakses konten dengan hak penggunaan READ di bawah label tertentu yang dapat mengambil dokumen terkait dalam hasil pencarian.

Administrator yang berwenang juga dapat mengeluarkan permintaan elevated read, yang mengembalikan dokumen berlabel yang biasanya tidak akan dilihat pengguna panggilan dan memancarkan entri log audit Microsoft Purview untuk setiap dokumen yang dikembalikan. Pembacaan yang ditingkatkan memerlukan peran Kontributor Data Indeks Pencarian pada layanan pencarian dan api versi 2026-05-01-preview atau yang lebih baru.

Contoh menyeluruh

Gambar berikut menunjukkan bagaimana label sensitivitas mengalir dari penulisan ke pengalaman pencarian. Pada gambar pertama, pengguna menerapkan label Confidential ke dokumen di Microsoft Word. Pada gambar kedua, chatbot perusahaan memberlakukan label tersebut pada waktu kueri, memblokir tindakan salin dan berbagi untuk konten rahasia.

Screenshot menu Sensitivitas Microsoft Word memperlihatkan hierarki label termasuk Non-Bisnis, Publik, Umum, Rahasia dengan sublabel seperti Project Obsidian dan Penerima Saja, dan Sangat Rahasia, dengan label Rahasia yang saat ini diterapkan ke document.

Screenshot dari chatbot perusahaan Contoso yang menampilkan respons sadar kebijakan dengan kutipan bernomor, spanduk label sensitivitas Rahasia Project Obsidian, tindakan salin dan berbagi yang diblokir, dan label sensitivitas per dokumen yang ditampilkan di panel referensi.

1. Aktifkan identitas terkelola Pencarian AI

Aktifkan identitas terkelola yang ditetapkan sistem untuk layanan Pencarian Azure AI Anda - identitas terkelola yang ditetapkan pengguna tidak didukung untuk fitur ini. Pengindeks menggunakan identitas ini untuk mengautentikasi dengan Microsoft Purview dan mengekstrak metadata label sensitivitas. Ini juga harus menerima penugasan peran pada Langkah 3.

2. Aktifkan RBAC pada layanan Pencarian AI Anda

Aktifkan kontrol akses berbasis peran (RBAC) pada layanan Pencarian Azure AI Anda. Langkah ini diperlukan agar operasi terkait konten seperti mengindeks konten dan mengkueri indeks berhasil. Pertahankan kunci RBAC dan API untuk menghindari gangguan operasi yang mengandalkan kunci API.

3. Memberikan akses untuk mengekstrak label sensitivitas

Mengakses metadata label sensitivitas Microsoft Purview melibatkan operasi yang sangat istimewa, termasuk membaca konten terenkripsi dan klasifikasi keamanan. Untuk mengaktifkan kemampuan ini dalam Pencarian Azure AI, Anda harus memberikan peran tertentu ke identitas terkelola layanan - mengikuti proses tata kelola dan persetujuan internal organisasi Anda.

Mengidentifikasi administrator peran global atau istimewa Anda

Jika Anda perlu menentukan siapa yang dapat mengotorisasi izin untuk layanan pencarian, Anda dapat menemukan Administrator Global yang aktif atau memenuhi syarat di penyewa Microsoft Entra Anda.

  1. Di portal Azure, cari Microsoft Entra ID.

    Screenshot tindakan pencarian untuk produk Microsoft Entra.

  2. Di panel navigasi kiri, pilih Kelola > Peran dan administrator.

    Cuplikan layar halaman peran dan administrator Entra.

  3. Cari peran Administrator Global atau Administrator Peran Istimewa dan pilih peran tersebut.

    Cuplikan layar pemilihan peran administrator global.

  4. Di bawah Penetapan yang memenuhi syarat dan Penetapan aktif, tinjau daftar administrator yang berwenang untuk menjalankan proses penyiapan izin.

    Cuplikan layar penetapan peran yang memenuhi syarat dan aktif.

Persetujuan tata kelola yang aman

Libatkan tim keamanan atau kepatuhan internal Anda untuk meninjau permintaan. Microsoft merekomendasikan untuk mengikuti proses tata kelola standar dan peninjauan keamanan perusahaan Anda sebelum melanjutkan penetapan peran apa pun.

Setelah disetujui, Administrator Global atau Administrator Peran Istimewa harus menetapkan peran berikut ke identitas terkelola yang ditetapkan sistem Pencarian Azure AI:

  • Content.SuperUser – untuk ekstraksi label dan konten
  • UnifiedPolicy.Tenant.Read – untuk akses kebijakan dan metadata label Purview

Menetapkan peran melalui PowerShell

Catatan

Tetapkan peran ini hanya ke identitas terkelola yang ditetapkan sistem dari layanan Pencarian Azure AI - bukan ke identitas terkelola yang ditetapkan pengguna, perwakilan layanan, atau akun pengguna individual. Skrip PowerShell mengambil ID objek identitas terkelola secara otomatis dari sumber daya layanan.

Administrator Global atau Administrator Peran Istimewa Anda harus menggunakan skrip PowerShell berikut untuk memberikan izin yang diperlukan. Ganti nilai-nilai placeholder dengan langganan, grup sumber daya, dan nama layanan pencarian yang asli.

Install-Module -Name Az -Scope CurrentUser
Install-Module -Name Microsoft.Entra -AllowClobber
Import-Module Az.Resources
Connect-Entra -Scopes 'Application.ReadWrite.All'

$resourceIdWithManagedIdentity = "subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Search/searchServices/<searchServiceName>"
$managedIdentityObjectId = (Get-AzResource -ResourceId $resourceIdWithManagedIdentity).Identity.PrincipalId

# Microsoft Information Protection (MIP)
$MIPResourceSP = Get-EntraServicePrincipal -Filter "appID eq '870c4f2e-85b6-4d43-bdda-6ed9a579b725'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MIPResourceSP.Id -Id "8b2071cd-015a-4025-8052-1c0dba2d3f64"

# Microsoft Rights Management Services (MRMS) - Service Principal for policy read
$MRMSResourceSP = Get-EntraServicePrincipal -Filter "appID eq '00000012-0000-0000-c000-000000000000'"
New-EntraServicePrincipalAppRoleAssignment -ServicePrincipalId $managedIdentityObjectId -Principal $managedIdentityObjectId -ResourceId $MRMSResourceSP.Id -Id "7347eb49-7a1a-43c5-8eac-a5cd1d1c7cf0"

Peran appID dalam skrip PowerShell yang disediakan dikaitkan dengan peran Azure berikut:

AppID Prinsip Layanan
870c4f2e-85b6-4d43-bdda-6ed9a579b725 Microsoft Info Protection Sync Service
00000012-0000-0000-c000-000000000000 Microsoft Layanan Manajemen Hak

4. Konfigurasikan indeks untuk mengaktifkan label sensitivitas Purview

Saat dukungan label sensitivitas diperlukan, atur purviewEnabled properti ke true dalam definisi indeks Anda.

Penting

Properti purviewEnabled harus diatur ke true ketika indeks dibuat. Pengaturan ini permanen dan tidak dapat dimodifikasi nanti.

Ketika purviewEnabled diatur ke true, hanya autentikasi RBAC yang didukung untuk semua API operasi dokumen.

Akses kunci API terbatas pada pengambilan skema indeks (daftar dan dapatkan).

PUT https://{service}.search.windows.net/indexes('{indexName}')?api-version=2026-08-01-preview
{
  "purviewEnabled": true,
  "fields": [
    {
      "name": "sensitivityLabel",
      "type": "Edm.String",
      "filterable": true,
      "sensitivityLabel": true,
      "retrievable": true
    }
  ]
}

5. Mengonfigurasi sumber data

Untuk mengaktifkan penyerapan label sensitivitas, konfigurasikan sumber data dengan properti indexerPermissionOptions diatur ke ["sensitivityLabel"].

{
  "name": "purview-sensitivity-datasource",
  "type": "azureblob", // < adjust type value according to the data source you are enabling this for: sharepoint, onelake, adlsgen2.
  "indexerPermissionOptions": [ "sensitivityLabel" ],
  "credentials": {
    "connectionString": <your-connection-string>;"
  },
  "container": {
    "name": "<container-name>"
  }
}

Properti indexerPermissionOptions menginstruksikan pengindeks untuk mengekstrak metadata label sensitivitas selama penyerapan dan melampirkannya ke dokumen terindeks.

6. Mengonfigurasi proyeksi indeks dalam skillset Anda (jika berlaku)

Jika pengindeks Anda memiliki set keterampilan dan Anda menerapkan potongan data melalui keterampilan Pemisahan Teks, seperti dengan vektorisasi terintegrasi, proyeksikan label sensitivitas ke setiap gugus melalui proyeksi indeks dalam set keterampilan.

Untuk aturan yang lebih luas tentang kapan izin dan bidang ACL berada dalam pemetaan bidang pengindeks versus proyeksi indeks, lihat Memilih tempat untuk mengisi bidang ACL.

Langkah ini diperlukan baik untuk penerapan pada saat kueri maupun agar respons agentic retrieval menyertakan atribut per dokumen sensitivityLabelInfo untuk setiap chunk. Tanpa pemetaan proyeksi, baris potongan anak tidak akan difilter dengan benar.

PUT https://{service}.search.windows.net/skillsets/{skillset}?api-version=2026-08-01-preview
{
  "name": "my-skillset",
  "skills": [
    {
      "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
      "name": "#split",
      "context": "/document",
      "inputs": [{ "name": "text", "source": "/document/content" }],
      "outputs": [{ "name": "textItems", "targetName": "chunks" }]
    }
    // ... (other skills such as embeddings, entity recognition, etc.)
  ],
  "indexProjections": {
    "selectors": [
      {
        "targetIndexName": "chunks-index",
        "parentKeyFieldName": "parentId",          // must exist in target index
        "sourceContext": "/document/chunks/*",     // match your split output path
        "mappings": [
          { "name": "chunkId",           "source": "/document/chunks/*/id" },     // if you create an id per chunk
          { "name": "content",           "source": "/document/chunks/*/text" },   // chunk text
          { "name": "parentId",          "source": "/document/id" },              // parent doc id
          { "name": "sensitivityLabel",  "source": "/document/metadata_sensitivity_label" } // <-- parent → child
        ]
      }
    ],
    "parameters": {
      "projectionMode": "skipIndexingParentDocuments"
    }
  }
}

7. Konfigurasi pengindeks

  • Tentukan pemetaan bidang dalam definisi pengindeks Anda untuk merutekan metadata label yang diekstrak ke bidang indeks. Jika sumber data Anda menghasilkan metadata label dengan nama field yang berbeda (misalnya, metadata_sensitivity_label), petakan secara eksplisit.
{
  "fieldMappings": [
    {
      "sourceFieldName": "metadata_sensitivity_label",
      "targetFieldName": "sensitivityLabel"
    }
  ]
}
  • Pengindeks secara otomatis mengindeks pembaruan label sensitivitas saat mendeteksi perubahan pada label, konten, atau metadata dokumen selama pengindeks terjadwal berjalan. Konfigurasikan pengindeks pada jadwal berulang. Interval minimum yang didukung adalah setiap 5 menit.

Langkah berikutnya