Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Note
Azure AI Vyhledávač je k dispozici prostřednictvím portálu Azure, rozhraní REST API a Sady Azure SDK. Podporuje také Foundry IQ, spravovanou znalostní vrstvu, která transformuje podnikový obsah na opakovaně použitelné znalostní báze s podporou oprávnění pro agenty na portálu Microsoft Foundry.
V kódu aplikace můžete nastavit připojení bez klíčů na Azure AI Vyhledávač, které k ověřování a autorizaci používá Microsoft Entra ID a role. Žádosti aplikací na většinu Azure služeb musí být ověřeny pomocí klíčů nebo bez klíčů připojení. Vývojáři musí být usilovní, aby klíče nikdy nezpřístupnili v nezabezpečeném umístění. Každý, kdo získá přístup ke klíči, se může ověřit ve službě. Ověřování bez klíčů nabízí lepší výhody správy a zabezpečení u klíče účtu, protože neexistuje žádný klíč (nebo připojovací řetězec) pro ukládání.
Tento článek vysvětluje, jak se používá DefaultAzureCredential v kódu aplikace.
Pokud chcete do kódu implementovat bezklíčová připojení, postupujte takto:
- Povolení přístupu na základě role ve vyhledávací službě
- Podle potřeby nastavte proměnné prostředí.
- Pomocí typu přihlašovacích údajů knihovny identit Azure vytvořte objekt klienta Azure AI Vyhledávač.
Požadavky
Azure AI Vyhledávač, každá oblast, ale musí to být fakturovatelná úroveň (Basic nebo vyšší).
Ve vyhledávací službě je povolený přístup založený na rolích .
Přiřazení rolí v Azure AI Vyhledávač Přiřaďte k identitě tyto role:
- Přispěvatel vyhledávací služby a Přispěvatel dat indexu vyhledávání pro místní vývoj (úplný přístup)
- Čtenář dat indexu vyhledávání pro produkční dotazy pouze ke čtení
Podrobné pokyny najdete v tématu Přiřazení rolí pro vývoj.
Instalace klientské knihovny Azure Identity
Pokud chcete použít bezklíčový přístup, aktualizujte kód s povoleným vyhledáváním AI pomocí klientské knihovny Azure Identity.
Nainstalujte klientskou knihovnu Azure Identity pro .NET a klientskou knihovnu Azure Search Documents:
dotnet add package Azure.Identity
dotnet add package Azure.Search.Documents
Aktualizace zdrojového kódu tak, aby používal DefaultAzureCredential
Knihovna identit Azure identity DefaultAzureCredential umožňuje spustit stejný kód v místním vývojovém prostředí a v cloudu Azure. Vytvořte jednu přihlašovací údaje a podle potřeby znovu použijte instanci přihlašovacích údajů, abyste mohli využívat ukládání tokenů do mezipaměti.
Další informace o DefaultAzureCredential pro .NET najdete v tématu Azure Klientská knihovna identit pro .NET.
using Azure;
using Azure.Search.Documents;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;
using Azure.Identity;
using System;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_SEARCH_ENDPOINT");
string indexName = "my-search-index";
DefaultAzureCredential credential = new();
SearchClient searchClient = new(new Uri(endpoint), indexName, credential);
SearchIndexClient searchIndexClient = new(endpoint, credential);
Reference:SearchClient, SearchIndexClient, DefaultAzureCredential
Ověření připojení
Po nastavení klienta ověřte připojení spuštěním jednoduché operace. Následující příklad uvádí indexy ve vyhledávací službě:
// List indexes to verify connection
var indexes = searchIndexClient.GetIndexNames();
foreach (var name in indexes)
{
Console.WriteLine(name);
}
Úspěšné připojení vytiskne názvy indexů (nebo prázdný seznam, pokud neexistují žádné indexy). Pokud se zobrazí chyba ověřování, ověřte, že je povolený přístup na základě role a že vaše identita má požadovaná přiřazení rolí.
Výchozí autorita je Azure Public Cloud. Vlastní hodnoty audience pro suverénní nebo specializované cloudy zahrnují:
-
https://search.azure.uspro Azure Government -
https://search.azure.cnpro Azure provozovaný společností 21Vianet -
https://search.microsoftazure.depro Azure (Německo)
Místní vývoj
Místní vývoj pomocí rolí zahrnuje tyto kroky:
- Přiřaďte svou osobní identitu k rolím RBAC pro konkrétní prostředek.
- K ověření pomocí Azure použijte nástroj, jako je Azure CLI nebo Azure PowerShell.
- Vytvořte proměnné prostředí pro váš prostředek.
Role pro místní vývoj
Jako místní vývojář potřebuje vaše Azure identita úplnou kontrolu nad operacemi roviny dat. Toto jsou navrhované role:
- Přispěvatel vyhledávací služby, vytváření a správa objektů
- Přispěvatel údajů do indexu vyhledávání, načtení a dotazování se na index a vyhledání ze znalostní báze
Najděte svou osobní identitu pomocí jednoho z následujících nástrojů. Tuto identitu použijte jako <identity-id> hodnotu.
- Azure CLI
- Azure PowerShell
- portál Azure
Zástupné symboly <role-name>, <identity-id>, <subscription-id>, a <resource-group-name> nahraďte skutečnými hodnotami v následujících příkazech.
Přihlaste se k Azure CLI.
az loginOtevře se okno prohlížeče pro ověřování. Po úspěšném přihlášení se v terminálu zobrazí informace o vašem předplatném.
Získejte svou osobní identitu.
az ad signed-in-user show \ --query id -o tsvPříkaz vrátí ID objektu uživatele (GUID). Uložte tuto hodnotu pro další krok.
Přiřaďte roli řízení přístupu na základě role (RBAC) identitě respektive skupiny zdrojů.
az role assignment create \ --role "<role-name>" \ --assignee "<identity-id>" \ --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"Úspěšné přiřazení vrátí objekt JSON s podrobnostmi o přiřazení role.
Ověřování pro lokální vývoj
K ověřování Azure identity použijte nástroj v místním vývojovém prostředí. Po ověření DefaultAzureCredential instance ve zdrojovém kódu vyhledá a použije vaši identitu pro účely ověřování.
Vyberte nástroj pro ověřování během místního vývoje.
Konfigurace proměnných prostředí pro místní vývoj
Pokud se chcete připojit k Azure AI Vyhledávač, je třeba, aby váš kód znal koncový bod prostředku.
Vytvořte proměnnou prostředí s názvem AZURE_SEARCH_ENDPOINT pro koncový bod Azure AI Vyhledávač. Tato adresa URL má obecně formát https://<YOUR-RESOURCE-NAME>.search.windows.net/.
Produkční úlohy
Nasazení produkčních úloh zahrnuje tyto kroky:
- Zvolte role RBAC, které se řídí principem nejnižšího oprávnění.
- Přiřaďte role RBAC k produkční identitě pro konkrétní prostředek.
- Nastavte proměnné prostředí pro váš zdroj.
Role pro produkční úlohy
Pokud chcete vytvořit produkční prostředky, musíte vytvořit spravovanou identitu přiřazenou uživatelem a pak ji přiřadit k prostředkům se správnými rolemi.
Pro produkční aplikaci se navrhuje následující role:
| Název role | identifikační číslo |
|---|---|
| Čtečka dat vyhledávacího indexu | 1407120a-92aa-4202-b7e9-c0e197c71c8f |
Ověřování pro produkční úlohy
Pomocí následující šablony služby Azure AI Vyhledávač Bicep vytvořte prostředek a nastavte ověřování pro identityId. Pro Bicep je nutné ID role.
name zobrazený v tomto fragmentu kódu Bicep není rolí Azure; je specifický pro nasazení Bicep.
// main.bicep
param environment string = 'production'
param roleGuid string = ''
module aiSearchRoleUser 'core/security/role.bicep' = {
scope: aiSearchResourceGroup
name: 'aiSearch-role-user'
params: {
principalId: (environment == 'development') ? principalId : userAssignedManagedIdentity.properties.principalId
principalType: (environment == 'development') ? 'User' : 'ServicePrincipal'
roleDefinitionId: roleGuid
}
}
Soubor main.bicep volá následující obecný Bicep kód pro vytváření rolí. Máte možnost vytvořit několik rolí RBAC, jako je jeden pro uživatele a druhý pro produkční prostředí. To vám umožní aktivovat jak vývojová, tak produkční prostředí v rámci stejného nasazení pomocí Bicep.
// core/security/role.bicep
metadata description = 'Creates a role assignment for an identity.'
param principalId string // passed in from main.bicep
@allowed([
'Device'
'ForeignGroup'
'Group'
'ServicePrincipal'
'User'
])
param principalType string = 'ServicePrincipal'
param roleDefinitionId string // Role ID
resource role 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(subscription().id, resourceGroup().id, principalId, roleDefinitionId)
properties: {
principalId: principalId
principalType: principalType
roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionId)
}
}
Konfigurace proměnných prostředí pro produkční úlohy
Pokud se chcete připojit k Azure AI Vyhledávač, váš kód musí znát koncový bod prostředku a ID spravované identity.
Vytvořte proměnné prostředí pro nasazené prostředí Azure AI Vyhledávač bez použití klíčů.
-
AZURE_SEARCH_ENDPOINT: Tato adresa URL je přístupovým bodem vašeho prostředku Azure AI Vyhledávač. Tato adresa URL má obecně formáthttps://<YOUR-RESOURCE-NAME>.search.windows.net/. -
AZURE_CLIENT_ID: Toto je identita, pod kterou se má ověřit.
Řešení běžných chyb
| Error | Příčina | Solution |
|---|---|---|
AuthenticationFailedException |
Chybějící nebo neplatné přihlašovací údaje | Ujistěte se, že jste přihlášení pomocí az login rozhraní příkazového řádku (CLI) nebo Connect-AzAccount (PowerShellu). Ověřte, že váš účet Azure má přístup k předplatnému. |
403 Forbidden |
Identita nemá požadovanou roli | Přiřaďte odpovídající roli (Čtenář dat indexu vyhledávání pro dotazy, Přispěvatel dat indexu vyhledávání pro indexování). Může trvat až 10 minut, než se přiřazení rolí projeví. |
401 Unauthorized |
Řízení přístupu na základě role není povoleno ve vyhledávací službě. | Na portálu Azure v části Settings>Klíče> Řízení přístupu na základě role povolte přístup na základě role. |
ResourceNotFoundException |
Neplatný název koncového bodu nebo indexu | Ověřte, že proměnná prostředí AZURE_SEARCH_ENDPOINT odpovídá zadané adrese URL vaší vyhledávací služby (formát: https://<service-name>.search.windows.net). |
CredentialUnavailableException |
Nebyly nalezeny žádné platné přihlašovací údaje. |
DefaultAzureCredential zkouší více metod ověřování. Ujistěte se, že je nakonfigurovaná aspoň jedna (Azure CLI, Visual Studio, proměnné prostředí). |