Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Ingesti metadata izin SharePoint (pratinjau) menggunakan pengindeks Pencarian Azure AI untuk mempertahankan metadata izin, seperti daftar kontrol akses (ACL), bersama konten lainnya dari SharePoint di Microsoft 365. Pengindeks menyimpan izin sebagai metadata pada setiap dokumen terindeks. Saat kueri dijalankan, pengguna hanya menerima dokumen yang diizinkan untuk mereka akses.
Diagram arsitektur menunjukkan solusi RAG dengan keamanan yang ditingkatkan di mana pengindeks SharePoint mengambil dokumen dan metadata izin ACL dari situs SharePoint, menyimpannya dalam indeks Pencarian Azure AI, dan orkestrator RAG memfilter hasil kueri sehingga setiap pengguna hanya mengambil dokumen yang diizinkan untuk diakses.
Penting
Untuk skenario yang memerlukan model izin SharePoint lengkap, label tingkat sensitivitas, dan penyaringan keamanan otomatis, gunakan sumber informasi SharePoint jarak jauh. Pendekatan ini memanggil SharePoint langsung melalui API pengambilan Copilot. Tata kelola tetap sepenuhnya dalam SharePoint, dan hasil kueri secara otomatis menghormati semua izin dan label yang berlaku.
Prasyarat
Pencarian Azure AI pada tingkat yang dapat ditagih (Dasar atau lebih tinggi) di wilayah mana pun.
SharePoint di situs, pustaka, folder, dan file Microsoft 365 dengan izin yang dikonfigurasi.
Selesaikan semua langkah konfigurasi dalam dokumentasi pengindeks SharePoint, menerapkan persyaratan khusus ACL yang dijelaskan dalam artikel ini.
Konfigurasikan izin aplikasi Microsoft Entra dan kredensial yang sesuai untuk skenario Anda. Lihat Izin berdasarkan skenario ACL. Penyerapan ACL memerlukan izin aplikasi. Izin yang didelegasikan tidak didukung. Untuk pilihan antara aplikasi dan izin yang didelegasikan, lihat Pilih penyiapan izin Anda.
REST API versi 2026-08-01-preview atau paket SDK pratinjau yang setara.
Keterbatasan
Pembaruan ACL inkremental memerlukan REST API versi pratinjau 2026-05-01 atau yang lebih baru. Dalam versi API pratinjau sebelumnya, sistem hanya mengambil ACL pada penyerapan pertama setiap item. Perubahan izin selanjutnya memerlukan pengindeksan ulang secara eksplisit. Untuk langkah-langkah migrasi, lihat Menyinkronkan izin antara konten terindeks dan sumber.
Perubahan izin cakupan induk tidak terdeteksi secara otomatis pada eksekusi pengindeks berikutnya. Untuk opsi refresh, lihat Menyinkronkan izin antara konten terindeks dan sumber.
Portal Azure tidak mendukung fitur ini.
Fitur berikut ini tidak didukung dalam pratinjau ini:
SharePoint kebijakan Manajemen Informasi berlaku untuk akses pengguna. Sistem tidak mengevaluasi, menerima, atau menerapkan kebijakan ini saat kueri dijalankan.
Tautan yang dapat dibagikan dilingkup ke "Siapa saja" atau "Orang di organisasi Anda." Hanya tautan yang dilingkup ke "Orang tertentu" yang didukung.
grup SharePoint (seperti grup Pemilik, Anggota, dan Pengunjung) didukung mulai di REST API pratinjau 2026-05-01. Lihat Konfigurasi dukungan grup SharePoint. Dalam versi API pratinjau sebelumnya, hanya grup SharePoint yang dipetakan ke grup Microsoft Entra yang didukung.
Fitur pengindeks berikut tidak mendukung pewarisan izin dalam dokumen terindeks yang berasal dari SharePoint. Jika Anda menggunakan salah satu fitur ini dalam kumpulan keterampilan atau pengindeks, izin level dokumen tidak disertakan dalam konten terindeks.
Penyimpanan pengetahuan, termasuk penyimpanan aset yang diperlukan untuk penyajian gambar (pratinjau) dalam pengambilan agenik. Oleh karena itu, penyajian gambar tidak didukung untuk sumber pengetahuan yang menyerap ACL SharePoint.
Dukungan untuk model izin SharePoint
Versi pratinjau ini mendukung ACL dasar untuk dokumen, item daftar, dan halaman situs ASPX modern.
| Fitur SharePoint | Deskripsi | Didukung | Catatan |
|---|---|---|---|
| Pewarisan situs, pustaka, daftar, dan halaman | Situs → pustaka/daftar → folder → file/item/halaman. | ✔️ | Dievaluasi saat penyerapan; ACL efektif yang dihitung per item. |
| ACL unik untuk folder, file, item dalam daftar, dan halaman | Akses tingkat item. | ✔️ | Disertakan jika tersedia pada proses ingest pertama dan pada proses selanjutnya yang mendeteksi perubahan ACL untuk item dengan izin unik. |
| item daftar SharePoint | Izin akses pada item daftar (kontainer allSiteLists dan allSiteContent). |
✔️ | Pratinjau, mulai di REST API 2026-05-01-preview. |
| Halaman situs ASPX | Izin akses pada halaman situs modern (allSitePages dan allSiteContent wadah). |
✔️ | Pratinjau, mulai di REST API 2026-05-01-preview. |
| kelompok Microsoft Entra (Microsoft 365 dan keamanan) | Akses berbasis grup. | ✔️ | ID grup disertakan jika dapat diurai menjadi ID Microsoft Entra. |
| Grup situs SharePoint | Pemilik/Anggota/Pengunjung dan grup situs kustom. | ✔️ | Pratinjau, mulai di REST API 2026-05-01-preview. Memerlukan konfigurasi grup SharePoint. ID grup dihasilkan dengan prefiks spg:. |
| "Tautan yang dapat dibagikan kepada siapa saja" atau "Tautan untuk orang di organisasi Anda" | Akses organisasi keseluruhan atau akses publik. | ❌ | Tidak didukung dalam pratinjau. |
| Pengguna eksternal/tamu | Akses untuk tamu. | ❌ | Tidak didukung. |
| Kebijakan Manajemen Informasi | Kebijakan untuk menentukan persyaratan izin tertentu. | ❌ | Tidak didukung dalam pratinjau. |
| Label sensitivitas Purview | Keamanan tingkat dokumen untuk privasi, kategorisasi, izin, dan enkripsi | ❌ | Didukung melalui fitur terpisah: mempertahankan dan menghormati label sensitivitas. |
Hubungan grup yang didukung
Microsoft Entra transitivitas grup berlaku dalam Microsoft Entra. Ini tidak memperluas grup Microsoft Entra yang merupakan anggota grup SharePoint.
| Hubungan izin | Didukung | Bimbingan |
|---|---|---|
| Pengguna atau grup Microsoft Entra yang ditetapkan langsung ke item SharePoint | Yes | Pengindeks menyimpan ID objek pengguna atau grup Microsoft Entra dalam metadata izin item. |
| Pengguna menjadi anggota grup Microsoft Entra yang ditetapkan melalui penyarangan grup Microsoft Entra transitif | Yes | Resolusi Microsoft Graph pada saat kueri mencakup keanggotaan transitif pengguna dalam grup Microsoft Entra. |
| Pengguna yang ditetapkan langsung ke grup situs SharePoint yang memiliki akses ke item | Yes | Konfigurasikan dukungan untuk grup SharePoint. |
| Grup Microsoft Entra yang disarangkan dalam grup SharePoint | No | Resolusi grup SharePoint tidak meluaskan grup Microsoft Entra bertingkat. Hasil yang bergantung pada hubungan ini difilter. Tambahkan pengguna langsung ke kelompok SharePoint atau berikan izin melalui penetapan grup Microsoft Entra yang didukung. |
| Arah penyarangan campuran SharePoint dan Microsoft Entra lainnya | Tidak ditentukan | Jangan menyimpulkan adanya dukungan berdasarkan transitivitas di Microsoft Entra. Batasan pratinjau ini hanya berlaku untuk grup Microsoft Entra yang disarangkan di dalam grup SharePoint. |
Bagaimana izin hirarkis dievaluasi
SharePoint izin mewarisi hierarki Situs → Pustaka → Folder → File, kecuali pewarisan rusak.
Selama penyerapan, pengindeks mengumpulkan pengidentifikasi pengguna dan grup (ID) di setiap tingkat dan menghitung ACL yang efektif untuk setiap file.
Izin menurut skenario ACL
Izin aplikasi Microsoft Entra dan jenis kredensial yang diperlukan untuk penyerapan ACL bergantung pada jenis item dan jenis grup yang Anda indeks. Dalam pendaftaran aplikasi, semua izin ditambahkan di bawah izin> APITambahkan izin, dan kredensial federasi ditambahkan di bawah Sertifikat & rahasia>Kredensial Federasi. Untuk petunjuk langkah demi langkah dan cuplikan layar, lihat Step 3: Membuat pendaftaran aplikasi Microsoft Entra dan Mengonfigurasi aplikasi terdaftar dengan identitas terkelola.
| Scenario | Izin API untuk menambahkan | Credential |
|---|---|---|
| ACL pada file pustaka dokumen, ketika akses hanya diberikan melalui pengguna Microsoft Entra dan grup standar (Microsoft Entra grup keamanan, grup Microsoft 365, grup keamanan dengan dukungan email) |
Microsoft Graph: Files.Read.All, Sites.FullControl.All (atau Sites.Selected untuk akses terlingkup) |
Rahasia klien atau kredensial federasi |
| ACL pada file pustaka dokumen, ketika grup situs SharePoint (Pemilik, Anggota, Pengunjung, atau grup situs kustom) juga harus diperhitungkan |
Microsoft Graph: Files.Read.All, Sites.FullControl.All (atau Sites.Selected)SharePoint: Sites.FullControl.All (atau Sites.Selected) |
Kredensial terfederasi (wajib) |
| Daftar kontrol akses pada item daftar SharePoint |
Microsoft Graph: Files.Read.All, Sites.FullControl.All (atau Sites.Selected), User.Read.AllSharePoint: Sites.FullControl.All (atau Sites.Selected) |
Kredensial terfederasi (wajib) |
| Konten dan ACL di halaman situs ASPX |
Microsoft Graph: Sites.FullControl.All (atau Sites.Selected), User.Read.All (simpan Files.Read.All dari baris di atas jika Anda juga mengindeks pustaka atau daftar dokumen)SharePoint: Sites.FullControl.All (atau Sites.Selected) |
Kredensial terfederasi (wajib) |
Resolusi waktu kueri grup situs SharePoint melalui sharePointConnectorAppRegistration |
Tambahkan SharePoint: User.Read.All ke pendaftaran aplikasi yang sama yang digunakan oleh pengindeks |
Kredensial terfederasi (wajib) |
Catatan
Saat menambahkan izin, Anda memilih antara dua permukaan API: Microsoft Graph dan SharePoint. Keduanya menampilkan izin dengan nama yang serupa. Misalnya,
Sites.FullControl.Allada di bawah keduanya. Tambahkan setiap izin di bawah permukaan API yang ditunjukkan dalam tabel.Gunakan kredensial federasi setiap kali skenario menambahkan izin API SharePoint. Rahasia klien hanya berfungsi pada baris pustaka dokumen khusus Microsoft Graph.
User.Read.Alldiperlukan untuk item daftar dan halaman situs ASPX karena pengindeks membaca izin tersebut melalui REST API SharePoint, yang hanya mengembalikan email pengguna. Pengindeks kemudian memanggil Microsoft Graph untuk memetakan setiap alamat email ke ID objek Microsoft Entra, dan proses pencarian itu memerlukanUser.Read.All.Saat Anda menggunakan
Sites.Selected, berikan aplikasi akses eksplisit ke setiap situs SharePoint target sebelum mengindeks.
Kredensial federasi mengautentikasi aplikasi menggunakan identitas terkelola tepercaya alih-alih rahasia klien. Kredensial federasi yang sama mencakup baik proses ingest (pengindeks) maupun evaluasi saat kueri untuk grup situs SharePoint. Untuk langkah-langkah penyiapan, lihat Mengonfigurasi aplikasi terdaftar dengan identitas terkelola.
Sebelum Anda mengaktifkan proses penyerapan ACL
Selesaikan langkah-langkah ini pada aplikasi Microsoft Entra terdaftar Anda:
- Identifikasi skenario Anda di tabel sebelumnya berdasarkan apa yang Anda rencanakan untuk diindeks (file pustaka dokumen, item daftar, halaman situs ASPX) dan apakah grup situs SharePoint harus dihormati.
- Buka pendaftaran aplikasi Anda di pusat admin Microsoft Entra dan buka izin API>Tambahkan izin.
- Tambahkan izin Microsoft Graph yang tercantum untuk skenario Anda. Memberikan persetujuan admin.
- Jika skenario Anda juga memerlukan izin SharePoint, pilih Tambahkan izin lagi, pilih SharePoint API, dan tambahkan
Sites.FullControl.All(atauSites.Selected). Memberikan persetujuan admin. - Konfigurasikan kredensial:
- Untuk skenario khusus Microsoft Graph, Anda dapat menggunakan rahasia klien (Certificates & secrets>Rahasia klien) atau kredensial federasi.
- Untuk skenario apa pun yang mencakup izin SharePoint, tambahkan kredensial federasi di bawah Certificates & secrets>Federated credentials. Lihat Mengonfigurasi aplikasi terdaftar dengan identitas terkelola.
- Berikan akses aplikasi ke situs SharePoint target (terutama penting ketika Anda menggunakan
Sites.Selecteduntuk akses tercakup) sehingga dapat membaca konten dan izin yang ingin Anda indeks.
Temukan pengidentifikasi Microsoft Entra yang benar
Setiap pengenal muncul di lokasi yang berbeda di portal Azure dan sesuai dengan bidang konfigurasi tertentu. Gunakan bagian ini sebagai referensi saat mengonfigurasi penyerapan ACL SharePoint dengan kredensial federasi. Pengidentifikasi ini dirujuk pada dalam Mengonfigurasi dukungan grup SharePoint dan dalam string koneksi sumber data.
| Pengidentifikasi | Lokasi portal | Digunakan di mana | Catatan |
|---|---|---|---|
| ID aplikasi aplikasi penyerapan (klien) |
Pendaftaran aplikasi><your-app>>Ringkasan |
ApplicationId di string koneksi sumber data; applicationId di sharePointConnectorAppRegistration |
ID ini benar untuk sebagian besar bidang konfigurasi. Juga disebut "ID klien." |
| ID objek aplikasi |
Pendaftaran aplikasi><your-app>>Ringkasan (di bawah ID Aplikasi (klien)) |
Tidak digunakan dalam konfigurasi Pencarian Azure AI | Jangan bingung dengan ID Aplikasi (klien). Muncul di bilah yang sama, tepat di bawah ID klien. |
| ID objek service principal |
>
Aplikasi perusahaan><your-app>>Kelola>Properti |
Tidak digunakan dalam konfigurasi Pencarian Azure AI | Ini adalah representasi service principal dari aplikasi. Ini adalah GUID yang berbeda dari ID objek pendaftaran aplikasi. |
| ID principal identitas terkelola | Sumber daya identitas terkelola > atau blade Identitas layanan pencarian | Tidak digunakan langsung dalam sumber data Pencarian Azure AI atau konfigurasi indeks | Digunakan secara internal saat Anda menyiapkan kredensial identitas federasi pada pendaftaran aplikasi. Kredensial yang Anda buat memercayai identitas ini. |
| ID objek kredensial federasi | Pendaftaran aplikasiKelolaSertifikat dan rahasiaKredensial terfederasi | Tidak digunakan dalam konfigurasi Pencarian Azure AI | Jangan gunakan GUID entri kredensial identitas terfederasi untuk federatedCredentialId. |
| ID aplikasi kredensial federasi | Ditetapkan sistem: Microsoft Entra ID<search-service>>>>Properti; Ditetapkan pengguna: <managed-identity-resource>>Properti |
FederatedCredentialApplicationId di string koneksi sumber data; federatedCredentialId di sharePointConnectorAppRegistration |
Lihat ID aplikasi kredensial federasi untuk pencarian identitas terkelola. |
ID aplikasi kredensial federasi
Untuk FederatedCredentialApplicationId dalam string koneksi sumber data dan federatedCredentialId dalam definisi indeks, gunakan ID aplikasi (klien) milik identitas terkelola, bukan ID aplikasi ingesti.
Identitas terkelola yang ditetapkan sistem:
- Buka layanan Pencarian Azure AI Anda.
- Pilih Keamanan + Identitas jaringan>.
- Pada tab Yang ditetapkan sistem, perhatikan ID Objek (utama).
- Buka Microsoft Entra ID>Kelola>aplikasi Enterprise.
- Cari nama layanan pencarian Anda atau tempelkan ID Objek (utama) ke dalam kotak pencarian.
- Pilih hasil dan buka Properti. Salin ID Aplikasi yang ditampilkan di sini, yang merupakan nilai untuk
FederatedCredentialApplicationIddi sumber data danfederatedCredentialIddalam indeks.
Identitas terkelola yang ditetapkan pengguna:
- Buka sumber daya identitas terkelola yang ditetapkan pengguna.
- Pilih Pengaturan>Properti.
- Salin ID Klien, yang merupakan nilai untuk
FederatedCredentialApplicationIddi sumber data danfederatedCredentialIddalam indeks.
Mengonfigurasi layanan pencarian Anda untuk penyerapan ACL dan penerapan waktu kueri
Langkah-langkah ini mengonfigurasi layanan pencarian Anda untuk penyerapan ACL dan mengaktifkan penerapan ACL saat waktu kueri.
Pilih tempat untuk mengisi bidang ACL
Di mana Anda memetakan bidang metadata ACL bergantung pada apakah pengindeks menulis satu dokumen per item sumber atau beberapa gugus per item sumber.
| Scenario | Isi bidang ACL melalui | Mengapa |
|---|---|---|
| Tanpa keterampilan atau keterampilan tanpa pemenggalan; satu dokumen penelusuran per item sumber | pemetaan bidang Indexer saja (metadata_user_ids → UserIds, metadata_group_ids → GroupIds, dan untuk grup SharePoint metadata_spo_site_url → SharePointSiteUrl). |
Pengindeks menulis satu dokumen ke indeks target, dan pemetaan bidang membawa metadata sumber ke bidang indeks. |
Skillset dengan potongan (misalnya, keterampilan Pemisahan Teks untuk vektorisasi terintegrasi), indeks tunggal dengan bidang induk diulang pada setiap gugus (projectionMode: skipIndexingParentDocuments) |
Proyeksi indeks dalam skillset (mappings dari /document/metadata_user_ids, /document/metadata_group_ids, dan untuk grup SharePoint /document/metadata_spo_site_url). |
Dokumen induk tidak diindeks; hanya potongan-potongan yang diindeks. Nilai ACL harus diproyeksikan ke setiap gugus sehingga filter waktu kueri berlaku pada potongan yang dikembalikan dalam hasil. Pemetaan bidang indexer untuk bidang-bidang ini dilewati dalam mode ini. |
| Set keterampilan dengan potongan, pola dua indeks (indeks induk + indeks gugus anak) | Keduanya: Pemetaan bidang pengindeks mengisi bidang ACL pada indeks induk, proyeksi indeks mengisi bidang ACL pada indeks gugus anak. | Kedua indeks dapat dikueri, dan masing-masing memerlukan metadata yang difilternya. |
Dalam semua skenario yang dibagi menjadi chunk, setiap chunk harus menyertakan field ACL. Filter izin berlaku per dokumen, sehingga potongan bidang ACL yang hilang tidak dapat dikembalikan ke pemanggil yang tepat.
1. Konfigurasi sumber data
Bagian ini merupakan tambahan atas panduan dasar Langkah 4: Membuat sumber data. Atur indexerPermissionOptions dalam definisi sumber data untuk memungkinkan pengindeksan userIds dan groupIds dari dokumen SharePoint.
{
"name": "my-sharepoint-acl-datasource",
"type": "sharepoint",
"indexerPermissionOptions": ["userIds", "groupIds"],
"credentials": {
"connectionString": "<connection-string>;"
},
"container": {
"name": "<library-name>",
"query": "<optional-folder-path>"
}
}
2. Tambahkan bidang izin ke definisi indeks
Tambahkan bidang ke definisi skema indeks Anda untuk menyimpan ACL dan mendukung pemfilteran waktu kueri.
{
"fields": [
{ "name": "UserIds", "type": "Collection(Edm.String)", "permissionFilter": "userIds", "filterable": true, "retrievable": false },
{ "name": "GroupIds", "type": "Collection(Edm.String)", "permissionFilter": "groupIds", "filterable": true, "retrievable": false }
],
"permissionFilterOption": "enabled"
}
Atur retrievable atribut ke true hanya selama pengembangan untuk memverifikasi nilai. Anda dapat mengubah aksesibilitas dari true ke false tanpa perlu membangun ulang indeks.
3. Mengonfigurasi proyeksi indeks dalam skillset Anda (jika berlaku)
Saat pemotongan diaktifkan, dokumen induk tidak ditulis ke indeks saat projectionMode adalah skipIndexingParentDocuments. Terapkan metadata ACL ke setiap bagian melalui indexProjections.selectors[].mappings.
Jika pengindeks Anda menggunakan set keterampilan dengan potongan data, seperti keterampilan Pemisahan Teks saat mengaktifkan vektorisasi terintegrasi, pastikan untuk memetakan properti ACL ke setiap gugus menggunakan proyeksi indeks. Baris // dalam contoh berikut adalah anotasi ilustratif dan bukan JSON yang valid. Hapus sebelum mengirimkan permintaan.
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": "UserIds", "source": "/document/metadata_user_ids" },
{ "name": "GroupIds", "source": "/document/metadata_group_ids" },
{ "name": "SharePointSiteUrl", "source": "/document/metadata_spo_site_url" } // include when the index has sharePointConnectorAppRegistration (SharePoint groups support)
]
}
],
"parameters": {
"projectionMode": "skipIndexingParentDocuments"
}
}
}
Pemetaan UserIds, GroupIds, dan SharePointSiteUrl membaca metadata tingkat sumber yang dihasilkan oleh pengindeks SharePoint (/document/metadata_*) dan menuliskan nilainya ke setiap potongan.
4. Mengonfigurasi pemetaan bidang pengindeks untuk ACL
Gunakan pemetaan bidang pengindeks saat pengindeks menulis satu dokumen per item sumber (tidak ada potongan) atau saat Anda mempertahankan indeks induk terpisah bersama indeks gugus. Jika kumpulan keterampilan Anda membagi dokumen menjadi potongan-potongan ke satu indeks target dengan projectionMode: skipIndexingParentDocuments, pemetaan bidang yang ditampilkan di sini digantikan oleh indexProjections.mappings dari langkah sebelumnya untuk indeks potongan.
Selain konfigurasi indexer yang diperlukan, petakan bidang ACL metadata mentah dari SharePoint ke bidang indeks Anda.
{
"fieldMappings": [
{ "sourceFieldName": "metadata_user_ids", "targetFieldName": "UserIds" },
{ "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" }
]
}
5. Jalankan pengindeks
Metadata ACL diserap saat pengindeks berjalan. Setelah Anda membuat atau memperbarui pengindeks (lihat Langkah 6: Membuat pengindeks), picu eksekusi sehingga pengindeks menyerap ACL bersama konten.
POST https://[service name].search.windows.net/indexers/[indexer-name]/run?api-version=2026-08-01-preview
api-key: [admin key]
Jika Anda mengaktifkan ingesti ACL pada pengindeks yang sudah ada dan telah mengindeks item, panggil /resync dengan options: ["permissions"] untuk mengisi ACL secara retroaktif bagi item-item tersebut, atau /resetdocs untuk mengekstrak ulang item-item tertentu.
6. Verifikasi penyerapan ACL
Untuk mengonfirmasi nilai ACL yang diisi dengan benar:
- Untuk sementara, atur
retrievableketruepadaUserIdsdanGroupIdsdalam definisi indeks Anda. Mengubahretrievabletidak memerlukan pembangunan ulang indeks. - Jalankan kueri elevated-read yang memilih
UserIdsdanGroupIds, lalu pastikan koleksi tersebut tidak kosong. Untuk skenario yang dipecah menjadi beberapa chunk, pastikan setiap chunk memuat kedua field tersebut. - Kembali
retrievablekefalsesetelah verifikasi.
Konfigurasikan dukungan grup SharePoint
Mulai dari REST API pratinjau 2026-05-01, pengindeks SharePoint dapat menyerap keanggotaan grup situs SharePoint (Pemilik, Anggota, Pengunjung, dan grup situs kustom). Ini menghormati grup ini pada waktu kueri. ID kelompok SharePoint dipancarkan di bidang metadata_group_ids dengan awalan spg: untuk membedakannya dari ID objek grup Microsoft Entra.
Panduan ini mandiri: selesaikan langkah-langkah untuk mengonfigurasi indeks, pemetaan bidang pengindeks, dan mengkueri indeks dengan penerapan grup situs SharePoint.
Komponen berikut bekerja sama untuk mengaktifkan resolusi grup situs SharePoint:
| Komponen | Di mana | Kegunaan |
|---|---|---|
sharePointConnectorAppRegistration (dengan applicationId, tenantId, federatedCredentialId) |
Definisi indeks | Menyediakan konfigurasi autentikasi yang diperlukan agar layanan pencarian dapat memanggil API REST SharePoint atas nama pengguna yang memanggil dan menentukan keanggotaan grup situs saat kueri. |
SharePointSiteUrl kolom (dengan sharepointSiteUrl: true) |
Skema indeks + pemetaan bidang pengindeks dari metadata_spo_site_url |
Mengidentifikasi situs SharePoint tempat dokumen berada, sehingga proses resolusi grup SP diterapkan pada cakupan yang benar. |
nilai yang diawali dengan spg: dalam GroupIds |
Metadata perizinan dokumen | Membedakan ID grup situs SharePoint dari ID objek grup Microsoft Entra. |
1. Prasyarat
- SharePoint pengindeks sudah dikonfigurasi untuk penyerapan ACL. Lihat Mengonfigurasi pemetaan bidang pengindeks untuk ACL.
- Pendaftaran aplikasi Microsoft Entra dengan kredensial identitas federasi. Lihat Mengonfigurasi aplikasi terdaftar dengan identitas terkelola.
- REST API
2026-05-01-previewatau yang lebih baru.
Catatan
FederatedCredentialApplicationId dalam string koneksi sumber data dan federatedCredentialId dalam sharePointConnectorAppRegistration menggunakan ID aplikasi identitas terkelola tersebut. Properti applicationId dalam sharePointConnectorAppRegistration menggunakan ID klien aplikasi ingesti. Untuk menemukan nilai yang benar, lihat Menemukan pengidentifikasi Microsoft Entra yang benar.
2. Mengonfigurasi indeks
Tambahkan konfigurasi sharePointConnectorAppRegistration dan bidang SharePointSiteUrl bersama bidang filter izin UserIds dan GroupIds, sehingga struktur indeks lengkap berada di satu tempat. Pertahankan permissionFilterOption: "enabled".
PUT https://{service}.search.windows.net/indexes/{index}?api-version=2026-08-01-preview
{
"name": "my-sharepoint-acl-index",
"sharePointConnectorAppRegistration": {
"applicationId": "<ingestion-app-client-id>",
"federatedCredentialId": "<managed-identity-application-id>",
"tenantId": "<sharepoint-tenant-id>"
},
"fields": [
{ "name": "UserIds", "type": "Collection(Edm.String)", "permissionFilter": "userIds", "filterable": true, "retrievable": false },
{ "name": "GroupIds", "type": "Collection(Edm.String)", "permissionFilter": "groupIds", "filterable": true, "retrievable": false },
{ "name": "SharePointSiteUrl", "type": "Edm.String", "sharepointSiteUrl": true, "filterable": false, "retrievable": false }
],
"permissionFilterOption": "enabled"
}
3. Mengonfigurasi pemetaan bidang pengindeks
Petakan bidang metadata SharePoint ke bidang indeks dalam satu blok pemetaan gabungan. Dua pemetaan pertama adalah pemetaan yang sama yang digunakan untuk penyerapan ACL standar; pemetaan ketiga mengaktifkan resolusi grup SharePoint.
{
"fieldMappings": [
{ "sourceFieldName": "metadata_user_ids", "targetFieldName": "UserIds" },
{ "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" },
{ "sourceFieldName": "metadata_spo_site_url", "targetFieldName": "SharePointSiteUrl" }
]
}
Jika kumpulan keterampilan Anda membagi dokumen menjadi beberapa bagian (misalnya, dengan keterampilan Text Split untuk vektorisasi terintegrasi), proyeksikan SharePointSiteUrl ke setiap bagian melalui indexProjections.mappings sebagai gantinya. Lihat Pilih lokasi untuk mengisi bidang ACL.
4. Mengkueri indeks
Tidak diperlukan perubahan sisi klien. Token x-ms-query-source-authorization yang sama mengaktifkan penerapan kebijakan untuk Microsoft Entra dan grup situs SharePoint. Layanan pencarian menentukan keanggotaan grup SharePoint di sisi server menggunakan sharePointConnectorAppRegistration pada indeks.
Untuk bentuk permintaan, lihat contoh kueri umum dan contoh khusus SharePoint dengan penerapan grup situs SharePoint.
5. Verifikasi
Untuk mengonfirmasi bahwa ID grup SharePoint telah masuk ke indeks, jalankan kueri elevated-read yang memilih GroupIds, lalu cari nilai dengan awalan spg: dalam respons.
Menyinkronkan izin antara konten terindeks dan sumber
Mulai dari REST API pratinjau 2026-05-01-preview, perubahan ACL untuk item dengan izin unik dideteksi dan diperbarui pada setiap eksekusi pengindeks yang berhasil. Pengindeks menggunakan token perubahan SharePoint untuk mendeteksi penambahan dan penghapusan penetapan peran secara inkremental, dengan cara yang sama seperti saat mendeteksi perubahan konten.
Beberapa skenario masih memerlukan refresh eksplisit:
| Ubah cakupan | Terdeteksi secara otomatis | Tindakan yang disarankan |
|---|---|---|
| Izin pada item tertentu dengan izin unik (file, item daftar, atau halaman) | Yes | Tidak perlu tindakan. Perubahan diterapkan saat pengindeks berikutnya berhasil dijalankan. |
| Perubahan konten pada item tertentu (yang juga mengevaluasi kembali ACL yang efektif untuk item tersebut) | Yes | Tidak perlu tindakan. |
| Perubahan izin pada lingkup induk (situs, pustaka, daftar, atau folder) yang diwariskan ke item anak | No | Panggil /resync dengan options: ["permissions"] untuk menyegarkan ACL pada seluruh sumber data, atau panggil /resetdocs dengan kunci dokumen yang terdampak untuk menyegarkan konten dan ACL. |
| Ingesti ACL diaktifkan pada pengindeks yang ada | No | Panggil /resync dengan options: ["permissions"] untuk mengisi ulang ACL untuk item yang diindeks sebelumnya. |
Mereset dokumen tertentu
Anda dapat mengatur ulang dokumen tertentu untuk sepenuhnya menyerap lagi konten dan ACL.
POST https://{service}.search.windows.net/indexers/{indexer}/resetdocs?api-version=2026-08-01-preview
{
"documentKeys": ["doc123", "doc456"]
}
Menyinkronkan ulang ACL di seluruh sumber data lengkap
Anda dapat menyinkronkan ulang konten ACL kumpulan data lengkap setelah penyerapan awal. Agar berhasil sepenuhnya, operasi ini memerlukan pengindeks yang dijalankan setelah selesai.
POST https://{service}.search.windows.net/indexers/{indexer}/resync?api-version=2026-08-01-preview
{
"options": ["permissions"]
}
Penting
Jika Anda mengubah izin SharePoint tanpa memicu mekanisme pembaruan, indeks melayani data ACL kedaluarsa untuk file yang diserap sebelumnya.
Setelah mengindeks data dan ACL, Anda bisa mengkueri indeks.
Troubleshooting
| Gejala | Penyebab dan resolusi |
|---|---|
UserIds atau GroupIds kosong dalam dokumen terindeks |
Jika skillset Anda menggunakan projectionMode: skipIndexingParentDocuments, pemetaan bidang pengindeks untuk bidang ACL akan diabaikan. Atur bidang ACL melalui indexProjections.mappings pada setiap gugus sebagai gantinya. |
ID grup situs SharePoint tidak ada, atau nilai GroupIds tidak memiliki awalan spg: |
Pastikan indeks memiliki konfigurasi sharePointConnectorAppRegistration, field SharePointSiteUrl tersedia dengan sharepointSiteUrl: true, dan pemetaan metadata_spo_site_url ada baik di pemetaan field pengindeks maupun di proyeksi indeks. |
SharePointSiteUrl kosong atau null setelah pengindeksan meskipun ACL diisi dengan benar |
Pengindeks memancarkan metadata ini di bawah metadata_spo_site_url, bukan metadata_sharepoint_site_url. Verifikasi bahwa pemetaan bidang pengindeks Anda menggunakan "sourceFieldName": "metadata_spo_site_url". Jika skillset Anda menggunakan proyeksi indeks untuk dokumen yang dibagi menjadi beberapa potongan, pastikan bahwa sumber pemetaan proyeksi adalah /document/metadata_spo_site_url. |
| Pengindeks mengembalikan 401 atau 403 | Berikan persetujuan admin tentang izin API Microsoft Graph dan SharePoint untuk skenario Anda. Gunakan kredensial federasi (bukan rahasia klien) saat skenario memerlukannya. Lihat Izin berdasarkan skenario ACL. |
| Izin basi setelah mengubah situs, pustaka, daftar, atau folder ACL | Hubungi /resync dengan options: ["permissions"]. Lihat Menyinkronkan izin antara konten terindeks dan sumber untuk konteks. |
federatedCredentialId ditolak saat mengonfigurasi sharePointConnectorAppRegistration |
Gunakan ID aplikasi identitas terkelola, bukan ID objek kredensial identitas federasi atau ID utama identitas terkelola. Lihat ID aplikasi kredensial federasi. |
Pengindeks mengembalikan 401 Unauthorized dan FederatedCredentialApplicationId ditetapkan |
Pastikan Anda menggunakan ID Aplikasi dari identitas terkelola (ditemukan di Enterprise applications), bukan ID Aplikasi (klien) dari aplikasi ingesti (ApplicationId) atau ID Objek mana pun. Untuk identitas terkelola yang ditetapkan pengguna, gunakan ID Klien dari halaman Properti sumber daya identitas terkelola. Lihat Menemukan pengidentifikasi Microsoft Entra yang benar. |
Untuk hasil yang hilang, tidak terduga, atau gagal pada waktu kueri setelah metadata ACL diindeks, lihat Pemecahan masalah pemfilteran izin SharePoint.