İzin meta verilerini almak ve arama sonuçlarını kullanıcı erişim haklarına göre filtrelemek için SharePoint dizin oluşturucu kullanma (önizleme)

Not

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Önemli

(önizleme) olarak işaretlenen özellikler, özellikler veya özellikler hizmet düzeyi sözleşmesi kapsamında değildir, üretim iş yükleri için önerilmez ve genel kullanıma sunulmadan önce değişebilir veya kısıtlanabilir. Azure Yapay Zeka Arama önizleme terimleri, tek başına veya genel kullanıma sunulan bir özelliğin parçası olsun, tüm önizleme işlevleri için geçerlidir.

SharePoint izin meta verilerinin alınması (önizleme), erişim denetim listeleri (ACL’ler) gibi izinlerle ilgili meta verilerini, Microsoft 365’teki SharePoint’ten alınan diğer içeriklerle birlikte korumak için bir Azure Yapay Zeka Arama dizin oluşturucusu kullanır. Dizin oluşturucu, izinleri dizine alınan her belgede meta veri olarak depolar. Sorgu zamanında kullanıcılar yalnızca erişim iznine sahip oldukları belgeleri alır.

Güvenlik düzenlemesi yapılmış bir RAG çözümünü gösteren mimari diyagramda, bir SharePoint dizin oluşturucu, bir SharePoint sitesinden belgeleri ve ACL izin meta verilerini alıp bunları Azure AI Arama dizininde depolar. RAG yönlendirici ise sorgu sonuçlarını filtreleyerek, her kullanıcının yalnızca erişim iznine sahip olduğu belgeleri almasını sağlar.

Önemli

Tam SharePoint izin modeli, hassasiyet etiketleri ve hazır güvenli kesme gerektiren senaryolar için uzak SharePoint bilgi kaynağı kullanın. Bu yaklaşım, Copilot alma API'si aracılığıyla SharePoint'i doğrudan çağırır. Yönetim tamamen SharePoint'te yer alıyor ve sorgu sonuçları tüm geçerli izinlere ve etiketlere otomatik olarak riayet eder.

Önkoşullar

  • Azure Yapay Zeka Arama, herhangi bir bölgede Temel veya daha yüksek bir faturalanabilir katmanda kullanılabilir.

  • yapılandırılmış izinlere sahip Microsoft 365 sitelerde, kitaplıklarda, klasörlerde ve dosyalarda SharePoint.

  • bu makalede açıklanan ACL'ye özgü gereksinimleri uygulayarak SharePoint dizin oluşturucu belgelerinde tüm yapılandırma adımlarını tamamlayın.

  • Microsoft Entra uygulama izinlerini ve senaryonuza uygun bir kimlik bilgilerini yapılandırın. Bkz. ACL'ye göre izinler senaryosu. ACL alma işlemi uygulama izinleri gerektirir. Devredilmiş izinler desteklenmez. Uygulama izinleri ile devredilmiş izinler arasındaki seçim için bkz. İzin yapılandırmanızı seçin.

  • REST API sürüm 2026-08-01-preview veya eşdeğer bir önizleme SDK paketi.

Sınırlama

SharePoint izin modeli desteği

Bu önizleme belgeler, liste öğeleri ve modern ASPX site sayfaları için temel ACL'leri destekler.

SharePoint Özelliği Açıklama Desteklenen Notlar
Site, kitaplık, liste ve sayfa devralma Site → kitaplığı/liste → klasör → dosya/öğe/sayfa. ✔️ İçeri alma sırasında değerlendirilir; etkin ACL'ler her öğe için hesaplanır.
Klasör, dosya, liste öğesi ve sayfa benzersiz ACL'leri Öğe düzeyinde erişim. ✔️ İlk alma sırasında mevcutsa ve benzersiz izinlere sahip öğelerde ACL değişikliklerini algılayan sonraki çalıştırmalarda dahil edilir.
SharePoint listesi öğeleri Liste öğeleri (allSiteLists ve allSiteContent kapsayıcılar) üzerindeki izinler. ✔️ Önizleme, 2026-05-01-preview REST API'sinde başlar.
ASPX site sayfaları Modern site sayfalarında (allSitePages ve allSiteContent kapsayıcılarda) izinler. ✔️ Önizleme, 2026-05-01-preview REST API'sinde başlar.
Microsoft Entra (Microsoft 365 ve güvenlik) grupları Grup tabanlı erişim. ✔️ Microsoft Entra tanımlayıcısına (ID) çözümlenebildiğinde grup kimlikleri dahil edilir.
SharePoint site grupları Sahipler/Üyeler/Ziyaretçiler ve özel site grupları. ✔️ Önizleme, 2026-05-01-preview REST API'sinde başlar. SharePoint grupları yapılandırması gerektirir. Grup kimlikleri, spg: ön ekiyle üretilir.
Paylaşılabilir "Herkes bağlantıları" veya "Kuruluşunuzdaki kişiler bağlantıları" Kuruluş genelinde veya genel erişim. ❌ Önizlemede desteklenmez.
Dış/konuk kullanıcılar Konuklar için erişim. ❌ Desteklenmez.
Bilgi Yönetimi ilkeleri Belirli izin gereksinimlerini tanımlamak için ilkeler. ❌ Önizlemede desteklenmez.
Purview duyarlılık etiketleri Gizlilik, kategorilere ayırma, izinler ve şifreleme için belge düzeyinde güvenlik ❌ Ayrı bir özellik aracılığıyla desteklenir: duyarlılık etiketlerini koruma ve onurlandırma.

Desteklenen grup ilişkileri

Microsoft Entra grup geçişliliği, Microsoft Entra içinde geçerlidir. SharePoint grupların üyesi olan Microsoft Entra grupları genişletmez.

İzin ilişkisi Desteklenen Kılavuz
Doğrudan SharePoint öğesine atanan kullanıcı veya Microsoft Entra grubu Evet Dizin oluşturucu, kullanıcının veya Microsoft Entra grup nesne kimliğini öğenin izin meta verilerinde depolar.
Kullanıcı, Microsoft Entra gruplarının geçişli iç içe üyeliği aracılığıyla atanan bir Microsoft Entra grubuna dahil olur Evet Sorgu zamanı Microsoft Graph çözümlemesi, kullanıcının geçişli Microsoft Entra grup üyeliklerini genişletir.
Doğrudan öğeye erişimi olan bir SharePoint site grubuna atanan kullanıcı Evet SharePoint grupları desteğini yapılandırın.
bir SharePoint grubu içinde iç içe yerleştirilmiş Microsoft Entra grubu No SharePoint grup çözümlemesi, iç içe geçmiş Microsoft Entra grubunu genişletmez. Bu ilişkiye bağlı olan sonuçlar filtrelenir. Kullanıcıları doğrudan SharePoint grubuna ekleyin veya desteklenen bir Microsoft Entra grup ataması aracılığıyla izin tanıyın.
SharePoint ve Microsoft Entra için diğer karma iç içe yerleştirme yönergeleri Belirtilmemiş Microsoft Entra geçişlilik desteğinden çıkarım yapmayın. Bu önizleme sınırlaması, SharePoint grupların içinde iç içe yerleştirilmiş Microsoft Entra gruplarıyla sınırlandırılır.

Hiyerarşik izinler nasıl değerlendirilir?

SharePoint izinleri, devralma bozulmadığı sürece Site → Kitaplığı → Klasör → Dosyası hiyerarşisini devralır.

Alma sırasında, dizin oluşturucu her düzeyde kullanıcı ve grup tanımlayıcılarını (ID) toplar ve her dosya için etkili ACL'yi hesaplar.

ACL’ye göre izin senaryosu

ACL alımı için gereken Microsoft Entra uygulama izinleri ve kimlik bilgisi türü, dizine eklediğiniz öğe türlerine ve grup türlerine bağlıdır. Uygulama kaydında, tüm izinler API izinleri>İzin ekle'nin altına eklenir ve federasyon kimlik bilgileri Sertifikalar ve gizli diziler>Federasyon kimlik bilgileri altına eklenir. Adım adım yönergeler ve ekran görüntüleri için bkz. 3. Adım: Microsoft Entra uygulama kaydı oluşturma ve Kayıtlı uygulamayı yönetilen kimlikle yapılandırma.

Scenario Eklenecek API izinleri Credential
Belge kitaplığı dosyalarındaki ACL'ler, erişim yalnızca Microsoft Entra kullanıcılar ve standart gruplar (Microsoft Entra güvenlik grupları, Microsoft 365 grupları, posta etkin güvenlik grupları) aracılığıyla verildiğinde Microsoft Graph: Files.Read.All, Sites.FullControl.All (veya kapsamlı erişim için Sites.Selected) İstemci gizli anahtarı veya federasyon kimlik bilgileri
Belge kitaplığındaki dosyalara ait ACL'ler; SharePoint site gruplarının da (Sahipler, Üyeler, Ziyaretçiler veya özel site grupları) dikkate alınması gerektiğinde Microsoft Graph: Files.Read.All, Sites.FullControl.All (veya Sites.Selected)
SharePoint: Sites.FullControl.All (veya Sites.Selected)
Federasyon kimlik bilgileri (gerekli)
SharePoint list öğelerdeki ACL'ler Microsoft Graph: Files.Read.All, Sites.FullControl.All (veya Sites.Selected), User.Read.All
SharePoint: Sites.FullControl.All (veya Sites.Selected)
Federasyon kimlik bilgileri (gerekli)
ASPX site sayfalarında içerik ve ACL'ler Microsoft Graph: Sites.FullControl.All (veya Sites.Selected), User.Read.All (belge kitaplıklarını veya listelerini de dizine alıyorsanız yukarıdaki satırlardan Files.Read.All tutun)
SharePoint: Sites.FullControl.All (veya Sites.Selected)
Federasyon kimlik bilgileri (gerekli)
sharePointConnectorAppRegistration aracılığıyla SharePoint site gruplarının sorgu süresi çözümlemesi dizin oluşturucu tarafından kullanılan uygulama kaydına SharePoint: User.Read.All ekleyin Federasyon kimlik bilgileri (gerekli)

Not

  • İzin eklediğinizde iki API yüzeyi arasından seçim yapabilirsiniz: Microsoft Graph ve SharePoint. Her ikisi de benzer adlandırılmış izinleri kullanıma sunar. Örneğin, Sites.FullControl.All her ikisi altında da vardır. Tabloda belirtilen API yüzeyinin altına her izni ekleyin.

  • Senaryoya SharePoint API izinleri eklendiğinde federasyon kimlik bilgisi kullanın. İstemci gizli dizileri yalnızca Microsoft Graph belge kitaplığı satırı için çalışır.

  • Dizin oluşturucu bu izinleri yalnızca kullanıcının e-postasını döndüren SharePoint REST API aracılığıyla okuduğundan liste öğeleri ve ASPX site sayfaları için User.Read.All gereklidir. Dizin oluşturucu daha sonra her e-posta adresini Microsoft Entra nesne kimliğiyle eşlemek için Microsoft Graph’ı çağırır ve bu arama işlemi için User.Read.All gerekir.

  • Sites.Selected kullandığınızda, dizin oluşturmadan önce uygulamaya her hedef SharePoint sitesine açık erişim verin.

Federe kimlik bilgisi, istemci parolası yerine güvenilen bir yönetilen kimlik kullanarak uygulamanın kimliğini doğrulamak için kullanılır. Aynı federasyon kimlik bilgisi hem alma (dizin oluşturucu) hem de SharePoint site gruplarının sorgu zamanı değerlendirmesini kapsar. Kurulum adımları için bkz . Kayıtlı uygulamayı yönetilen kimlikle yapılandırma.

ACL alma işlemini etkinleştirmeden önce

Kayıtlı Microsoft Entra uygulamanızda şu adımları tamamlayın:

  1. Dizine neyi eklemeyi planladığınıza (belge kitaplığı dosyaları, liste öğeleri, ASPX site sayfaları) ve SharePoint site gruplarının göz önünde bulundurulması gerekip gerekmediğine göre önceki tablodaki senaryonuzu belirleyin.
  2. Microsoft Entra yönetim merkezi uygulama kaydınızı açın ve API izinleri> İzin ekle gidin.
  3. Senaryonuz için listelenen Microsoft Graph izinlerini ekleyin. Yönetici onayı verin.
  4. Senaryonuz SharePoint izinleri de gerektiriyorsa, İsne izin ekle yeniden seçin, SharePoint API'sini seçin ve Sites.FullControl.All (veya Sites.Selected) ekleyin. Yönetici onayı verin.
  5. Kimlik bilgilerini yapılandırın:
    • Yalnızca Microsoft Graph senaryoları için, istemci parolası'nı (Certificates & secrets>Client secrets) veya federasyon kimlik bilgisini kullanabilirsiniz.
    • SharePoint izinleri içeren herhangi bir senaryo için Certificates & secretsFederated credentials altına federasyon kimlik bilgileri ekleyin. Bkz . Kayıtlı uygulamayı yönetilen kimlikle yapılandırma.
  6. Dizine eklemek istediğiniz içeriği ve izinleri okuyabilmesi için uygulamaya hedef SharePoint sitelerine erişim izni verin (özellikle kapsamlı erişim için Sites.Selected kullandığınızda önemlidir).

Doğru Microsoft Entra tanımlayıcılarını bulma

Her tanımlayıcı Azure portalında farklı bir konumda görünür ve belirli bir yapılandırma alanıyla eşler. SharePoint ACL alımını federasyon kimlik bilgileriyle yapılandırırken başvuru olarak bu bölümü kullanın. Bu tanımlayıcılara SharePoint grup desteğini yapılandırma bölümünde ve veri kaynağı bağlantı dizesinde atıfta bulunulur.

Tanımlayıcı Portal konumu Kullanıldığı yer Notlar
İçe aktarma uygulaması (istemci) kimliği Uygulama kayıtları><your-app>>Genel Bakış ApplicationId veri kaynağı bağlantı dizesinde; applicationIdsharePointConnectorAppRegistration içinde Bu kimlik çoğu yapılandırma alanı için doğrudur. İstemci kimliği olarak da adlandırılır.
Uygulama nesne kimliği Uygulama kayıtları><your-app>>Genel Bakış (Uygulama (istemci) kimliğinin altında) Azure Yapay Zeka Arama yapılandırmasında kullanılmaz Bunu Uygulama (istemci) kimliğiyle karıştırmayın. Aynı panelde, istemci kimliğinin hemen altında görünür.
Hizmet sorumlusu nesne kimliği > Microsoft Entra ID Geçerli uygulamalar><your-app>>Özellikleri Yönet> Azure Yapay Zeka Arama yapılandırmasında kullanılmaz Bu, uygulamanın hizmet sorumlusu gösterimidir. Bu, uygulama kayıt nesnesi kimliğinden farklı bir GUID'tir.
Yönetilen kimlik asıl kimliği Yönetilen kimlik kaynağının >Özellikleri veya arama hizmetinin Kimlik bölmesi Doğrudan Azure Yapay Zeka Arama veri kaynağında veya dizin yapılandırmasında kullanılmaz Uygulama kaydında federe kimlik kimlik bilgisini ayarladığınızda dahili olarak kullanılır. Oluşturduğunuz kimlik bilgisi bu kimliğe güvenir.
Federe kimlik bilgisi nesne kimliği Uygulama kayıtları>><your-app>Yönet>Sertifikalar ve gizli anahtarlar>Federasyon kimlik bilgileri><credential-name> Azure Yapay Zeka Arama yapılandırmasında kullanılmaz federatedCredentialId için federe kimlik bilgisi girdisinin GUID'sini kullanmayın.
Federatif kimlik bilgisi uygulama kimliği Sistem tarafından atanan: Microsoft Entra ID>Kurumsal uygulamalar><search-service>>Özellikler; Kullanıcı tarafından atanan: <managed-identity-resource>>Özellikler FederatedCredentialApplicationId veri kaynağı bağlantı dizesinde; federatedCredentialIdsharePointConnectorAppRegistration içinde Yönetilen kimlik araması için bkz. Federasyon kimlik bilgisi uygulama kimliği .

Federatif kimlik bilgisi uygulama kimliği

FederatedCredentialApplicationId için veri kaynağı bağlantı dizesinde ve dizin tanımındaki federatedCredentialId için, veri alımı uygulamasının kimliğini değil, yönetilen kimliğin kendi uygulama (istemci) kimliğini kullanın.

Sistem tarafından atanan yönetilen kimlik:

  1. Azure Yapay Zeka Arama hizmetinize gidin.
  2. Güvenlik + ağ>Kimlik öğesini seçin.
  3. Sistem tarafından atanan sekmesinde Nesne (sorumlu) kimliğini not edin.
  4. Microsoft Entra ID>Enterprise uygulamalarınıyönet'e> gidin.
  5. Arama hizmetinizin adını arayın veya Nesne (sorumlu) kimliğini arama kutusuna yapıştırın.
  6. Sonucu seçin ve Özellikler'i açın. Burada gösterilen federatedCredentialId kopyalayın; bu, veri kaynağında FederatedCredentialApplicationId ve dizinde değeridir.

Kullanıcı tarafından atanan yönetilen kimlik:

  1. Kullanıcı tarafından atanan yönetilen kimlik kaynağına gidin.
  2. Ayarlar>Özellikleri'ni seçin.
  3. Veri kaynağında FederatedCredentialApplicationId ve dizinde için değer olan federatedCredentialId'ni kopyalayın.

Arama hizmetinizi ACL alımı ve sorgu zamanı zorlaması için yapılandırma

Bu adımlar arama hizmetinizi ACL alımı için yapılandırarak sorgu zamanında ACL'yi kabul etme özelliğini etkinleştirir.

ACL alanlarının doldurulacağı yeri seçme

ACL meta veri alanlarını eşlemeniz, dizin oluşturucunun kaynak öğe başına bir belge mi yoksa kaynak öğe başına birden çok öbek mi yazdığına bağlıdır.

Scenario Aracılığıyla ACL alanlarını doldurma Neden?
Öbekleme olmadan beceri kümesi olamaz; her kaynak öğe için bir arama belgesi Indexer alan eşlemeleri yalnızca (metadata_user_ids → UserIds, metadata_group_ids → GroupIds ve SharePoint grupları için metadata_spo_site_url → SharePointSiteUrl). Dizin oluşturucu hedef dizine tek bir belge yazar ve alan eşlemeleri kaynak meta verileri dizin alanlarına taşır.
Parçalama içeren beceri kümesi (örneğin, tümleşik vektörleştirme için Metin Bölme becerisi), her parçada ana alanların yinelendiği tek dizin (projectionMode: skipIndexingParentDocuments) Beceri kümesindeki Index projeksiyonları (mappings, /document/metadata_user_ids ve SharePoint grupları için /document/metadata_group_ids) /document/metadata_spo_site_url). Ana belge dizinlenmez; yalnızca parçalar dizinlenir. ACL değerleri her öbek üzerine yansıtılmalıdır, böylece sorgu zamanı filtreleri sonuçlarda döndürülen öbek üzerinde uygulanır. Bu alanlar için dizin oluşturucu alan eşlemeleri bu modda atlanır.
Öbeklemeli, iki dizinli yapıya sahip yetenek seti (ana dizin + alt öbek dizini) Her ikisi de: dizin oluşturucu alan eşlemeleri üst dizinde ACL alanlarını doldurur, dizin projeksiyonları ise alt öbek dizininde ACL alanlarını doldurur. Her iki dizin de sorgulanabilir ve her birinin filtreleme yaptığı meta veriye ihtiyacı vardır.

Tüm parçalı senaryolarda, her parça ACL alanlarını taşımalıdır. İzin filtreleri belge başına uygulanır, bu nedenle eksik ACL alanları doğru arayana döndürülemez.

1. Veri kaynağı yapılandırması

Bu bölüm, temel Adım 4: Veri kaynağı oluşturma kılavuzunun en üstünde yer alan bir deltadır. Veri kaynağı tanımında indexerPermissionOptions'yi ayarlayın, böylece SharePoint belgelerinden ve userIds'i dizine ekleyebilirsiniz.

{
  "name": "my-sharepoint-acl-datasource",
  "type": "sharepoint",
  "indexerPermissionOptions": ["userIds", "groupIds"],
  "credentials": {
    "connectionString": "<connection-string>;"
  },
  "container": {
    "name": "<library-name>",
    "query": "<optional-folder-path>"
  }
}

2. Dizin tanımına izin alanları ekleme

ACL'leri depolamak ve sorgu zamanı filtrelemesini desteklemek için dizin şeması tanımınıza alanlar ekleyin.

{
  "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"
}

Değerleri doğrulamak için retrievable özniteliğini yalnızca geliştirme sırasında true olarak ayarlayın. Dizin yeniden oluşturma gereksinimi olmadan "retrievable" değerini true'dan false'a değiştirebilirsiniz.

3. Beceri kümenizde dizin projeksiyonlarını yapılandırma (varsa)

Öbekleme etkinleştirildiğinde, projectionModeskipIndexingParentDocuments olduğunda ana belge dizine yazılmaz. ACL meta verilerini indexProjections.selectors[].mappings aracılığıyla her öbeğe taşıyın.

Dizin oluşturucunuz tümleşik vektörleştirmeyi etkinleştirirken Metin Bölme becerisi gibi veri öbekleme özelliğine sahip bir beceri kümesi kullanıyorsa, dizin projeksiyonlarını kullanarak ACL özelliklerini her öbekle eşlediğinizden emin olun. // Aşağıdaki örnekteki satırlar açıklayıcı ek açıklamalardır ve geçerli JSON değildir. İsteği göndermeden önce bunları kaldırın.

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"
    }
  }
}

UserIds, GroupIds ve SharePointSiteUrl eşlemeleri, SharePoint dizin oluşturucu (/document/metadata_*) tarafından çıkarılan kaynak düzeyi meta verilerini okur ve değerleri her parçaya yazar.

4. ACL'ler için dizin oluşturucu alan eşlemelerini yapılandırma

Dizin oluşturucu kaynak öğe başına bir belge yazdığında (öbekleme olmadığında) veya öbek dizininin yanında ayrı bir üst dizin tutarken dizin oluşturucu alan eşlemelerini kullanın. Beceri kümeniz, belgeleri projectionMode: skipIndexingParentDocuments kullanarak tek bir hedef dizine öbeklere ayırıyorsa, burada gösterilen alan eşlemelerinin yerini öbek dizini için önceki adımdaki indexProjections.mappings alır.

Gerekli indexer yapılandırmanızın yanı sıra ham meta veri ACL alanlarını SharePoint dizin alanlarınızla eşleyin.

{
  "fieldMappings": [
    { "sourceFieldName": "metadata_user_ids",  "targetFieldName": "UserIds" },
    { "sourceFieldName": "metadata_group_ids", "targetFieldName": "GroupIds" }
  ]
}

5. Dizin oluşturucuyu çalıştırın

Dizin oluşturucu çalıştırıldığında ACL meta verileri alır. Dizin oluşturucuyu oluşturduktan veya güncelleştirdikten sonra (bkz . 6. Adım: Dizin oluşturucu oluşturma), dizin oluşturucunun içerikle birlikte ACL'leri de alabilmesi için bir çalıştırma tetikleyin.

POST https://[service name].search.windows.net/indexers/[indexer-name]/run?api-version=2026-08-01-preview
api-key: [admin key]

Öğeleri zaten dizine eklemiş mevcut bir dizin oluşturucuda ACL alımını etkinleştirdiyseniz, bu öğeler için ACL'leri geriye dönük olarak doldurmak üzere /resync öğesini options: ["permissions"] ile çağırın veya belirli öğeleri yeniden ayıklamak için /resetdocs kullanın.

6. ACL alımını doğrulama

ACL değerlerinin doğru doldurulmuş olduğunu onaylamak için:

  1. Dizin tanımınızda retrievable ve true üzerinde UserIds değerini geçici olarak GroupIds olarak ayarlayın. retrievable öğesini değiştirmek, dizinin yeniden oluşturulmasını gerektirmez.
  2. yükseltilmiş okuma sorgusu çalıştırın; bu sorgu UserIds ve GroupIds öğelerini seçsin ve koleksiyonların boş olmadığını doğrulayın. Öbeklenmiş senaryolar için her öbekte her iki alanın da olduğunu onaylayın.
  3. Doğrulamadan sonra retrievable konumuna false geri dönün.

SharePoint grupları desteğini yapılandırma

2026-05-01-preview REST API'sinde başlayarak, SharePoint dizin oluşturucu SharePoint site grubu üyeliklerini (Sahipler, Üyeler, Ziyaretçiler ve özel site grupları) alabilir. Sorgu sırasında bu grupları dikkate alır. SharePoint grup kimlikleri, Microsoft Entra grup nesnesi kimliklerinden ayırt etmek için metadata_group_ids alanında spg: ön ekiyle gösterilir.

Bu kılavuz bağımsızdır: dizini ve dizin oluşturucu alan eşlemelerini yapılandırmak ve SharePoint site grubu zorlaması uygulanarak dizini sorgulamak için adımları sırasıyla tamamlayın.

Aşağıdaki bileşenler birlikte çalışarak SharePoint site grubu çözümlemesini etkinleştirir:

Bileşen Konumu Purpose
sharePointConnectorAppRegistration (applicationId, tenantId, federatedCredentialId dahil) Dizin tanımı Arama hizmetinin SharePoint REST API'sini çağıran kullanıcı olarak çağırması ve sorgu zamanında site grubu üyeliğini çözümlemesi için gereken kimlik doğrulama yapılandırmasını sağlar.
SharePointSiteUrl alanı (sharepointSiteUrl: true ile) metadata_spo_site_url öğesinden dizin şeması + dizin oluşturucu alan eşlemesi Bir belgenin ait olduğu SharePoint siteyi tanımlar, bu nedenle SP grup çözümlemesi doğru şekilde kapsamlanır.
spg: içindeki GroupIds önekli değerler Belge izin meta verileri SharePoint site grubu kimliklerini Microsoft Entra grup nesnesi kimliklerinden ayırt edin.

1. Önkoşullar

Not

FederatedCredentialApplicationId veri kaynağı bağlantı dizesinde ve sharePointConnectorAppRegistration içindeki federatedCredentialId için yönetilen kimliğin uygulama kimliğini kullanın. applicationId içindeki sharePointConnectorAppRegistration özelliği, alma uygulamasının istemci kimliğini kullanır. Doğru değerleri bulmak için bkz. Doğru Microsoft Entra tanımlayıcılarını bulma.

2. Dizini yapılandırma

sharePointConnectorAppRegistration ve SharePointSiteUrl izin filtresi alanlarının yanı sıra UserIds yapılandırmasını ve GroupIds alanını da ekleyin; böylece tam dizin yapısı tek bir yerde olur. tutun 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. Dizin oluşturucu alan eşlemelerini yapılandırma

SharePoint meta veri alanlarını tek bir birleşik eşleme bloğundaki dizin alanlarıyla eşleyin. İlk iki eşleme, standart ACL alımı için kullanılan eşlemelerle aynıdır; üçüncü eşleme SharePoint grup çözümlemesini etkinleştirir.

{
  "fieldMappings": [
    { "sourceFieldName": "metadata_user_ids",             "targetFieldName": "UserIds" },
    { "sourceFieldName": "metadata_group_ids",            "targetFieldName": "GroupIds" },
    { "sourceFieldName": "metadata_spo_site_url",  "targetFieldName": "SharePointSiteUrl" }
  ]
}

Beceri kümeniz belgeleri parçalara ayırıyorsa (örneğin, tümleşik vektörleştirme için Metin Bölme becerisiyle), bunun yerine SharePointSiteUrl öğesini indexProjections.mappings aracılığıyla her bir parçaya yansıtın. Bkz. ACL alanlarının doldurulacağı yeri seçme.

4. Dizini sorgulama

İstemci tarafı değişikliği gerekmez. Aynı x-ms-query-source-authorization belirteci hem Microsoft Entra’yı hem de SharePoint site grubu zorunluluğunu etkinleştirir. Arama hizmeti, dizindeki sharePointConnectorAppRegistration kullanarak SharePoint grubu üyelikleri sunucu tarafında çözümler.

İstek yapısı için genel sorgu örneğine ve SharePoint’e özgü SharePoint site grubu zorlaması içeren örneğe bakın.

5. Doğrulama

SharePoint grup kimliklerinin dizine işlendiğini doğrulamak için, öğesini seçen bir GroupIds çalıştırın ve yanıtta spg: ön ekli değerleri arayın.

Dizinlenmiş içerik ve kaynak içerik arasındaki izinleri eşitleme

2026-05-01-preview REST API'sinde başlayarak, her başarılı dizin oluşturucu çalıştırmasında benzersiz izinlere sahip öğeler için ACL değişiklikleri algılanır ve yenilenir. Dizin oluşturucu, rol ataması eklemelerini ve kaldırmalarını artımlı olarak almak için SharePoint değişiklik belirteçlerini kullanır ve aynı şekilde içerik değişikliklerini de alır.

Bazı senaryolar yine de açık bir yenileme gerektirir:

Kapsamı değiştir Otomatik olarak algılandı Önerilen eylem
Benzersiz izinlere sahip belirli bir öğedeki izinler (dosya, liste öğesi veya sayfa) Evet Eylem gerekmez. Değişiklik, bir sonraki başarılı dizin oluşturucu çalıştırmasında algılanır.
Belirli bir öğedeki içerik değişikliği (bu öğe için geçerli ACL'leri de yeniden değerlendirir) Evet Eylem gerekmez.
Alt öğeler tarafından devralınan üst kapsamda (site, kitaplık, liste veya klasör) izinlerde değişiklik No Veri kaynağı genelinde ACL'leri yenilemek için /resync öğesini options: ["permissions"] ile çağırın veya hem içeriği hem de ACL'leri yenilemek için etkilenen belge anahtarlarıyla /resetdocs öğesini çağırın.
Mevcut bir dizin oluşturucuda ACL alımı etkinleştirildi No Önceden dizine eklenmiş öğeler için ACL'leri geriye dönük olarak doldurmak üzere /resync öğesini options: ["permissions"] ile çağırın.

Belirli belgeleri sıfırlama

Belirli belgeleri yeniden içerik ve ACL'leri tamamen almak için sıfırlayabilirsiniz.

POST https://{service}.search.windows.net/indexers/{indexer}/resetdocs?api-version=2026-08-01-preview
{
  "documentKeys": ["doc123", "doc456"]
}

ACL'leri tüm veri kaynağında yeniden eşitleyin

İlk veri alımından sonra tam veri kümesi ACL içeriğini yeniden eşitleyebilirsiniz. Bu işlemin tam olarak başarılı olması için, tamamlandıktan sonra bir dizin oluşturucu çalıştırılması gerektirir.

POST https://{service}.search.windows.net/indexers/{indexer}/resync?api-version=2026-08-01-preview
{
  "options": ["permissions"]
}

Önemli

Bir güncelleştirme mekanizması tetiklemeden SharePoint izinlerini değiştirirseniz dizin, daha önce alınan dosyalar için eski ACL verileri sağlar.

Verilerinizi ve ACL'lerinizi dizine aldıktan sonra dizini sorgulayabilirsiniz.

Troubleshooting

Belirti Neden ve çözüm
UserIds veya GroupIds dizine alınan belgelerde boş Beceri kümeniz projectionMode: skipIndexingParentDocuments kullanıyorsa, ACL alanları için dizin oluşturucu alan eşlemeleri atlanır. Bunun yerine ACL alanlarını her parça için indexProjections.mappings aracılığıyla ayarlayın.
SharePoint site grubu kimlikleri eksik veya GroupIds değerlerinde spg: ön eki yok Dizinin sharePointConnectorAppRegistration yapılandırmasına sahip olduğunu, SharePointSiteUrl alanının sharepointSiteUrl: true ile mevcut olduğunu ve metadata_spo_site_url eşlemesinin dizin oluşturucu alan eşlemelerinde veya dizin projeksiyonlarında bulunduğunu onaylayın.
SharePointSiteUrl, ACL’ler bunun dışında doğru şekilde doldurulmasına rağmen dizin oluşturulduktan sonra boş veya null oluyor Dizin oluşturucu bu meta verileri metadata_sharepoint_site_url altında değil, metadata_spo_site_url altında yayımlar. Dizin oluşturucu alan eşlemenizin "sourceFieldName": "metadata_spo_site_url" kullandığını doğrulayın. Beceri kümeniz parçalanmış belgeler için dizin projeksiyonları kullanıyorsa projeksiyon eşleme kaynağının /document/metadata_spo_site_url olduğunu doğrulayın.
Dizin oluşturucu 401 veya 403 döndürür Senaryonuz için hem Microsoft Graph hem de SharePoint API izinleri için yönetici onayı verin. Senaryo gerektirdiğinde, bir istemci parolası değil, bir federe kimlik bilgisi kullanın. Bkz. ACL'ye göre izinler senaryosu.
Site, kitaplık, liste veya klasör ACL'sini değiştirdikten sonra izinler eskir /resync ile options: ["permissions"] numarasını arayın. Bağlam için bkz. Dizinlenmiş içerik ve kaynak içerik arasındaki izinleri eşitleme .
federatedCredentialId yapılandırılırken sharePointConnectorAppRegistration reddedilir Federe kimlik bilgisinin nesne kimliği veya yönetilen kimliğin ana kimliği yerine, yönetilen kimliğin uygulama kimliğini kullanın. Bkz. Federasyon kimlik bilgisi uygulama kimliği.
İndeksleyici 401 Unauthorized değerini döndürür ve FederatedCredentialApplicationId ayarlanır Alım uygulamasının Uygulama (istemci) kimliğini () veya herhangi bir Nesne Kimliğini değil, yönetilen kimliğin Uygulama Kimliğini (ApplicationIdKurumsal uygulamalarda bulunur) kullandığınızı doğrulayın. Kullanıcı tarafından atanan yönetilen kimlik için, yönetilen kimlik kaynağının Özellikler sayfasındaki İstemci Kimliği'ni kullanın. Bkz. Doğru Microsoft Entra tanımlayıcılarını bulma.

ACL meta verileri dizine eklendikten sonra, eksik, beklenmeyen veya sorgu sırasında başarısız olan sonuçlar için bkz. SharePoint izin filtreleme sorunlarını giderme.