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.
Arama hizmetiniz için Azure aboneliğini ve kiracısını alın:
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
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
Azure portalında oturum açın ve Azure yapay zeka Arama hizmeti gidin.
Rol tabanlı erişim denetimini (RBAC) etkinleştir:
Ayarlar>Anahtarları'na gidin.
İ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.
Azure portalında rol atama:
Arama hizmetinize gidin.
Sol gezinti bölmesinde Erişim Denetimi (IAM) öğesini seçin.
+ Ekle>Rol ataması ekle’yi seçin.
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
Azure Kimliği ve Azure Search kitaplıklarını yükleyin:
pip install azure-identity azure-search-documents
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.
Erişim belirteci oluşturma.
az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
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>
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 login
başlayarak bu bölümdeki adımları yineleyin.
Ek yapılandırma
Giden bağlantılar için yönetilen kimlik yapılandırma:
Arama hizmetiniz için sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimliği yapılandırın.
Diğer Azure kaynaklarına erişim yetkisi vermek için rol atamalarını kullanın.
Ağ erişim yapılandırması: