Ověřování pro Azure OpenAI z hostované aplikace Azure pomocí ID Microsoft Entra
Tento článek ukazuje, jak používat spravované identity Microsoft Entra ID a knihovnu Microsoft.Extensions.AI k ověření aplikace hostované v Azure pro prostředek Azure OpenAI.
Spravovaná identita z Microsoft Entra ID umožňuje vaší aplikaci snadno přistupovat k dalším prostředkům chráněným Microsoft Entra, jako je Azure OpenAI. Identita je spravovaná platformou Azure a nevyžaduje zřízení, správu ani měnění tajemství.
Požadavky
- Účet Azure, který má aktivní předplatné. Vytvořit účet zdarma.
- .NET SDK
- vytvoření a nasazení prostředku služby Azure OpenAI Service
- vytvoření a nasazení aplikace .NET do služby App Service
Přidání spravované identity do služby App Service
Spravované identity poskytují automaticky spravovanou identitu v Microsoft Entra ID pro aplikace, které se mají použít při připojování k prostředkům, které podporují ověřování Microsoft Entra. Aplikace můžou používat spravované identity k získání tokenů Microsoft Entra, aniž by musely spravovat jakékoli přihlašovací údaje. Aplikaci je možné přiřadit dva typy identit:
- identita přiřazená systémem je propojena s vaší aplikací a je zrušena, pokud je vaše aplikace odstraněna. Aplikace může mít pouze jednu identitu přiřazenou systémem.
- identita přiřazená uživatelem je samostatný prostředek Azure, který lze přiřadit vaší aplikaci. Aplikace může mít více identit přiřazených uživatelem.
Přejděte na stránku aplikace na webu Azure Portala posuňte se dolů ke skupině Nastavení.
Vyberte identitu.
Na kartě Systémově přiřazená přepněte Stav na Zapnutoa poté vyberte Uložit.
Poznámka
Předchozí snímek obrazovky ukazuje tento proces ve službě Azure App Service, ale postup je podobný na jiných hostitelích, jako je Azure Container Apps.
Spuštěním příkazu az webapp identity assign
vytvořte identitu přiřazenou systémem:
az webapp identity assign --name <appName> --resource-group <groupName>
Přidání role uživatele Azure OpenAI do identity
Na webu Azure Portalpřejděte do oboru, ke kterému chcete udělit přístup Azure OpenAI. Oborem může být skupina pro správu , předplatné , skupina prostředků nebo konkrétní prostředek Azure OpenAI .
V levém navigačním podokně vyberte Řízení přístupu (IAM).
Vyberte Přidata pak vyberte Přidat přiřazení role.
Na kartě Role vyberte roli uživatel služby Cognitive Services OpenAI.
Na kartě Členové vyberte spravovanou identitu.
Na kartě Zkontrolovat a přiřadit vyberte Zkontrolovat a přiřadit pro přiřazení role.
Pomocí Azure CLI můžete přiřadit roli uživatele OpenAI služeb Cognitive Services spravované identitě v různých oborech.
az role assignment create --assignee "<managedIdentityObjectID>" \
--role "Cognitive Services OpenAI User" \
--scope "/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>"
Implementace ověřování identit v kódu aplikace
Do aplikace přidejte následující balíčky NuGet:
dotnet add package Azure.Identity dotnet add package Azure.AI.OpenAI dotnet add package Microsoft.Extensions.Azure dotnet add package Microsoft.Extensions.AI dotnet add package Microsoft.Extensions.AI.OpenAI
Předchozí balíčky pro tento scénář zpracují následující aspekty:
- Azure.Identity: Poskytuje základní funkce pro práci s MICROSOFT Entra ID
- azure.AI.OpenAI: Umožňuje aplikaci používat rozhraní se službou Azure OpenAI.
- Microsoft.Extensions.Azure: Poskytuje pomocná rozšíření pro registraci služeb pro injektáž závislostí.
- Microsoft.Extensions.AI: Poskytuje abstrakce AI pro běžné úlohy umělé inteligence.
- Microsoft.Extensions.AI.OpenAI: Umožňuje používat typy služeb OpenAI jako abstrakce AI poskytované Microsoft.Extensions.AI
V souboru
Program.cs
vaší aplikace vytvořte objektDefaultAzureCredential
ke zjišťování a konfiguraci dostupných přihlašovacích údajů:// For example, will discover Visual Studio or Azure CLI credentials // in local environments and managed identity credentials in production deployments var credential = new DefaultAzureCredential( new DefaultAzureCredentialOptions { // If necessary, specify the tenant ID, // user-assigned identity client or resource ID, or other options } );
Vytvořte službu AI a zaregistrujte ji v kolekci služeb:
string endpoint = builder.Configuration["AZURE_OPENAI_ENDPOINT"]; string deployment = builder.Configuration["AZURE_OPENAI_GPT_NAME"]; builder.Services.AddChatClient( new AzureOpenAIClient(new Uri(endpoint), credential) .AsChatClient(deployment));
Vložte registrovanou službu, abyste ji mohli použít ve svých koncových bodech.
app.MapGet("/test-prompt", async (IChatClient chatClient) => { return await chatClient.GetResponseAsync("Test prompt", new ChatOptions()); }) .WithName("Test prompt");
Spropitné
Přečtěte si více o vkládání závislostí v ASP.NET Core a o tom, jak registrovat další typy služeb umělé inteligence v sadě Azure SDK pro .NET v dokumentaci k vkládání závislostí.