Megosztás a következőn keresztül:


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

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.
  1. Lépjen az alkalmazás lapjára az Azure Portal, majd görgessen le a Beállítások csoporthoz.

  2. Válassza ki a identitást.

  3. A Rendszer által hozzárendelt lapon állítsa az Állapot kapcsolót Be, majd válassza a Mentés lehetőséget.

    Képernyőkép a rendszer által hozzárendelt felügyelt identitás alkalmazáshoz való hozzáadásáról.

    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

  1. 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.

  2. A bal oldali navigációs ablakban válassza Hozzáférés-vezérlés (IAM).

  3. Válassza a Hozzáadás lehetőséget, majd a Szerepkör-hozzárendelés hozzáadása lehetőséget.

    RBAC-szerepkör hozzáadását bemutató képernyőkép.

  4. A Szerepkör lapon válassza a Cognitive Services OpenAI-felhasználó szerepkört.

  5. A Tagok lapon válassza ki a felügyelt identitást.

  6. 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

  1. 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.
  2. Az alkalmazás Program.cs fájljában hozzon létre egy DefaultAzureCredential 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
        }
    );
    
  3. 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));
    
  4. 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.