Aracılığıyla paylaş


Hızlı Başlangıç: Anahtar olmadan bağlanma

Arama hizmetinizle etkileşim kurmak için Jupyter not defterlerini veya REST istemcisini kullanarak YEREL sisteminizden API anahtarları olmadan bağlanabilmeniz için Azure AI Arama'yı Microsoft Entra ID kimlik doğrulaması ve rol tabanlı erişim denetimi (RBAC) kullanacak şekilde yapılandırın.

API anahtarlarını kullanarak bağlanan diğer hızlı başlangıçlara geçtiyseniz bu hızlı başlangıçta, örnek kodunuzda sabit kodlanmış anahtarlardan kaçınmak için kimlik tabanlı kimlik doğrulamasına nasıl geçebileceğiniz gösterilir.

Önkoşullar

  • Azure aboneliği. Ücretsiz bir tane oluşturun.

  • Azure AI Search, herhangi bir bölge veya katman, ancak Azure AI Search için yönetilen kimlik yapılandırmak için Temel veya üzeri gerekir.

  • PowerShell veya Bash gibi bir komut satırı aracı ve Azure CLI.

1. Adım: Azure aboneliğinizi ve kiracı kimliklerinizi alma

Birden fazla aboneliğiniz veya kiracınız varsa bu adıma ihtiyacınız vardır.

  1. Arama hizmetiniz için Azure aboneliğini ve kiracısını alın:

    1. Azure portalında oturum açın ve arama hizmetinize gidin.

    2. Genel Bakış>Temel Parçalar'daki abonelik adına ve kimliğine dikkat edin.

    3. Bir sonraki sayfada üst yönetim grubunu (kiracı kimliği) göstermek için abonelik adını seçin.

      Abonelik adını sağlayan Azure portalı sayfasının ekran görüntüsü

  2. Artık Azure AI Search'in hangi aboneliğin ve kiracının altında olduğunu biliyorsunuz. Yerel cihazınıza ve komut istemine geçin ve cihazınızdaki etkin Azure aboneliğini ve kiracısını belirleyin:

    az account show
    
  3. Etkin abonelik ve kiracı önceki adımda elde edilen bilgilerden farklıysa abonelik kimliğini değiştirin. Ardından, önceki adımda bulduğunuz kiracı kimliğini kullanarak Azure'da oturum açın:

     az account set --subscription <your-subscription-id>
    
     az login --tenant <your-tenant-id>
    

2. Adım: RBAC için Azure AI Arama'yı yapılandırma

  1. Azure portalında oturum açın ve Azure yapay zeka Arama hizmeti gidin.

  2. Rol tabanlı erişim denetimini (RBAC) etkinleştir:

    1. Ayarlar>Anahtarları'na gidin.

    2. İstemcileri rol tabanlı erişim denetimine geçirmeniz için zamana ihtiyacınız varsa Rol tabanlı denetim veya Her İkisi'ni seçin.

      Rol tabanlı denetim'i seçerseniz, sonraki yönergede adlı tüm rolleri kendinize atadığınızdan emin olun; aksi takdirde Azure portalında veya yerel bir istemci aracılığıyla görevleri tamamlayamazsınız.

  3. Azure portalında rol atama:

    1. Arama hizmetinize gidin.

    2. Sol gezinti bölmesinde Erişim Denetimi (IAM) öğesini seçin.

    3. + Ekle>Rol ataması ekle’yi seçin.

    4. Bir rol seçin (Arama Hizmeti Katkıda Bulunanı, Arama Dizini Veri Katkıda Bulunanı, Arama Dizini Veri Okuyucusu) ve bunu Microsoft Entra kullanıcı veya grup kimliğinize atayın.

      Her rol için yineleyin.

      Azure AI Search'te nesne oluşturmak, yüklemek ve sorgulamak için Arama Hizmeti Katkıda Bulunanı ve Arama Dizini Veri Katkıda Bulunanı gerekir. Daha fazla bilgi için bkz . Rolleri kullanarak bağlanma.

İpucu

Daha sonra, kimlik doğrulama hatası hataları alırsanız bu bölümdeki ayarları yeniden denetleyin. Abonelik veya kaynak grubu düzeyinde belirttiğiniz API ayarlarını geçersiz kılan ilkeler olabilir.

3. Adım: Yerel sisteminizden bağlanma

Henüz Azure'da oturum açmadıysanız:

az login

Python ve Jupyter not defterlerini kullanma

  1. Azure Kimliği ve Azure Search kitaplıklarını yükleyin:

    pip install azure-identity azure-search-documents
    
  2. Kimlik doğrulaması ve Azure AI Search'e bağlanma:

    from azure.identity import DefaultAzureCredential
    from azure.search.documents import SearchClient
    
    service_endpoint = "https://<your-search-service-name>.search.windows.net"
    index_name = "hotels-sample-index"
    
    credential = DefaultAzureCredential()
    client = SearchClient(endpoint=service_endpoint, index_name=index_name, credential=credential)
    
    results = client.search("beach access")
    for result in results:
        print(result)
    

REST istemcisi kullanma

Çeşitli hızlı başlangıçlar ve öğreticilerde REST uzantısıyla Visual Studio Code gibi bir REST istemcisi kullanılır. Visual Studio Code'dan Azure AI Search'e şu şekilde bağlanabilirsiniz.

Hızlı Başlangıç: Vektör araması bölümünde açıklanana benzer bir .rest veya .http dosyanız olmalıdır.

  1. Erişim belirteci oluşturma.

    az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
    
  2. Dosyanızın en üstünde, bağlantı için kullanılan değişkenleri ayarlayın ve önceki adımda aldığınız tam arama hizmeti uç noktasını ve erişim belirtecini yapıştırın. Değişkenleriniz aşağıdaki örneğe benzer görünmelidir. Değerlerin tırnak içine alınmadığına dikkat edin.

    @baseUrl = https://contoso.search.search.windows.net
    @token = <a long GUID>
    
  3. REST çağrısında yetkilendirme taşıyıcı belirtecini belirtin:

     POST https://{{baseUrl}}/indexes/hotels-sample-index/docs/search?api-version=2024-07-01 HTTP/1.1
       Content-type: application/json
       Authorization: Bearer {{token}}
    
         {
              "queryType": "simple",
              "search": "beach access",
              "filter": "",
              "select": "HotelName,Description,Category,Tags",
              "count": true
          }
    

401 hatalarını giderme

  • Etkin aboneliği ve kiracıyı (az account show) denetleyin ve arama hizmetiniz için geçerli olduğundan emin olun.

  • Azure portalında arama hizmeti Ayarlar>Anahtarları seçeneklerini denetleyin ve hizmetin Her İkisi" veya Rol tabanlı erişim denetimi için yapılandırıldığını onaylayın.

  • Yalnızca REST istemcisi için: Dosyanızda belirtilen belirteci ve uç noktayı denetleyin ve çevresinde tırnak işareti veya ek boşluk olmadığından emin olun.

Diğer her şey başarısız olursa, önbelleğe alınmış belirteçleri kaldırmak için cihazınızı yeniden başlatın ve ardından ile az loginbaşlayarak bu bölümdeki adımları yineleyin.

Ek yapılandırma

Giden bağlantılar için yönetilen kimlik yapılandırma:

Ağ erişim yapılandırması: