Hitelesítés az Azure OpenAI-ban egy Azure által üzemeltetett alkalmazásból a Microsoft Entra ID használatával
Ez a cikk bemutatja, hogyan használhatja Microsoft Entra ID által felügyelt identitásokat és a Microsoft.Extensions.AI kódtárat egy Azure-ban üzemeltetett alkalmazás Azure OpenAI-erőforráson való hitelesítéséhez.
A Microsoft Entra-azonosítóból származó felügyelt identitás lehetővé teszi, hogy az alkalmazás egyszerűen hozzáférjen más Microsoft Entra által védett erőforrásokhoz, például az Azure OpenAI-hoz. Az identitást az Azure platform kezeli, és nem követeli meg a titkos kódok kiépítését, kezelését vagy elforgatását.
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók. Fiók létrehozása ingyenes.
- .NET SDK
- Azure OpenAI-szolgáltatás erőforrásának létrehozása és üzembe helyezése
- .NET-alkalmazás létrehozása és üzembe helyezése az App Service-
Felügyelt identitás hozzáadása az App Service-hez
A felügyelt identitások automatikusan felügyelt identitást biztosítanak a Microsoft Entra-azonosítóban az alkalmazások számára, amelyeket a Microsoft Entra-hitelesítést támogató erőforrásokhoz való csatlakozáskor használhatnak. Az alkalmazások felügyelt identitásokkal szerezhetik be a Microsoft Entra-jogkivonatokat anélkül, hogy hitelesítő adatokat kellene kezelni. Az alkalmazás kétféle identitástípushoz rendelhető hozzá:
- A rendszer által hozzárendelt identitás az alkalmazáshoz van kötve, és az alkalmazás törlésekor törlődik. Egy alkalmazás csak egy rendszer által hozzárendelt identitással rendelkezhet.
- A felhasználó által hozzárendelt identitás egy önálló Azure-erőforrás, amely hozzárendelhető az alkalmazáshoz. Egy alkalmazás több felhasználó által hozzárendelt identitással is rendelkezhet.
Lépjen az alkalmazás lapjára az Azure Portal, majd görgessen le a Beállítások csoporthoz.
Válassza ki a identitást.
A Rendszer által hozzárendelt lapon állítsa az Állapot kapcsolót Be, majd válassza a Mentés lehetőséget.
Jegyzet
Az előző képernyőkép bemutatja ezt a folyamatot egy Azure App Service-ben, de a lépések hasonlóak más gazdagépeken, például az Azure Container Appsben.
Futtassa a az webapp identity assign
parancsot egy rendszer által hozzárendelt identitás létrehozásához:
az webapp identity assign --name <appName> --resource-group <groupName>
Azure OpenAI felhasználói szerepkör hozzáadása az identitáshoz
Az Azure Portálon navigáljon arra a hatókörre, amelyhez hozzáférést szeretne adni az Azure OpenAI szolgáltatásnak. A hatókör lehet egy Felügyeleti csoport, Előfizetési, Erőforráscsoportvagy egy adott Azure OpenAI erőforrás.
A bal oldali navigációs ablakban válassza Hozzáférés-vezérlés (IAM).
Válassza a Hozzáadás lehetőséget, majd a Szerepkör-hozzárendelés hozzáadása lehetőséget.
A Szerepkör lapon válassza a Cognitive Services OpenAI-felhasználó szerepkört.
A Tagok lapon válassza ki a felügyelt identitást.
A Véleményezés + hozzárendelés lapon válassza a Véleményezés + hozzárendelés lehetőséget a szerepkör hozzárendeléséhez.
Az Azure CLI használatával különböző hatókörökben rendelheti hozzá a Cognitive Services OpenAI felhasználói szerepkört a felügyelt identitáshoz.
az role assignment create --assignee "<managedIdentityObjectID>" \
--role "Cognitive Services OpenAI User" \
--scope "/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>"
Identitáshitelesítés implementálása az alkalmazáskódban
Adja hozzá a következő NuGet-csomagokat az alkalmazáshoz:
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
A fenti csomagok mindegyike a következő problémákat kezeli ebben a forgatókönyvben:
- Azure.Identity: Alapvető funkciókat biztosít a Microsoft Entra ID használatához
- Azure.AI.OpenAI: Lehetővé teszi az alkalmazás számára az Azure OpenAI szolgáltatással való kapcsolódást
- Microsoft.Extensions.Azure: Segédbővítményeket biztosít a függőséginjektálási szolgáltatások regisztrálásához
- Microsoft.Extensions.AI: AI-absztrakciókat biztosít a gyakori AI-feladatokhoz
- Microsoft.Extensions.AI.OpenAI: Lehetővé teszi, hogy az OpenAI szolgáltatástípusokat AI absztrakciókként használja, amelyeket az Microsoft.Extensions.AI biztosít.
Az alkalmazás
Program.cs
fájljában hozzon létre egyDefaultAzureCredential
objektumot az elérhető hitelesítő adatok felderítéséhez és konfigurálásához:// 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 } );
Hozzon létre egy AI-szolgáltatást, és regisztrálja azt a szolgáltatásgyűjteményben:
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));
Injektálja a regisztrált szolgáltatást a végpontokon való használatra:
app.MapGet("/test-prompt", async (IChatClient chatClient) => { return await chatClient.GetResponseAsync("Test prompt", new ChatOptions()); }) .WithName("Test prompt");
Borravaló
További információ a ASP.NET Core függőséginjektálásról, valamint arról, hogyan regisztrálhat más AI-szolgáltatások típusait az Azure SDK for .NET függőséginjektálási dokumentációjában.