Udostępnij za pośrednictwem


Korzystanie z usługi Azure OpenAI bez kluczy

Żądania aplikacji do większości usług platformy Azure muszą być uwierzytelniane przy użyciu kluczy lub połączeń bez hasła. Deweloperzy muszą być sumienni, aby nigdy nie ujawniać kluczy w niezabezpieczonej lokalizacji. Każdy, kto uzyskuje dostęp do klucza, może uwierzytelnić się w usłudze. Uwierzytelnianie bez klucza oferuje ulepszone korzyści związane z zarządzaniem i zabezpieczeniami za pośrednictwem klucza konta, ponieważ nie ma klucza (lub parametry połączenia) do przechowywania.

Połączenia bez klucza są włączone, wykonując następujące czynności:

  • Skonfiguruj uwierzytelnianie.
  • Ustaw zmienne środowiskowe zgodnie z potrzebami.
  • Użyj typu poświadczeń biblioteki tożsamości platformy Azure, aby utworzyć obiekt klienta usługi Azure OpenAI.

Uwierzytelnianie

Uwierzytelnianie do identyfikatora Entra firmy Microsoft jest wymagane do korzystania z bibliotek klienckich platformy Azure.

Uwierzytelnianie różni się w zależności od środowiska, w którym działa aplikacja:

Blok konstrukcyjny bez klucza usługi Azure OpenAI

Skorzystaj z poniższego linku, aby zapoznać się z szablonem AI bez kluczy usługi Azure OpenAI. Ten szablon aprowizuje konto usługi Azure OpenAI przy użyciu uprawnień roli RBAC konta użytkownika na potrzeby uwierzytelniania bez klucza (Microsoft Entra) w celu uzyskania dostępu do zestawów SDK interfejsu API OpenAI.

Uwaga

W tym artykule użyto co najmniej jednego szablonu aplikacji sztucznej inteligencji jako podstawy przykładów i wskazówek w artykule. Szablony aplikacji sztucznej inteligencji zapewniają dobrze utrzymywane, łatwe w wdrażaniu implementacje referencyjne, które pomagają zapewnić wysokiej jakości punkt wyjścia dla aplikacji sztucznej inteligencji.

Zapoznaj się z szablonem AI bloku konstrukcyjnego bloków konstrukcyjnych bez kluczy platformy .NET, aby zakończyć uwierzytelnianie bez klucza platformy Azure.

Uwierzytelnianie na potrzeby programowania lokalnego

Wybierz narzędzie do uwierzytelniania podczas programowania lokalnego.

Uwierzytelnianie w środowiskach hostowanych na platformie Azure

Dowiedz się, jak zarządzać wartością DefaultAzureCredential dla aplikacji wdrożonych na platformie Azure.

Konfigurowanie ról na potrzeby autoryzacji

  1. Znajdź rolę użycia usługi Azure OpenAI. W zależności od tego, jak zamierzasz ustawić tę rolę, potrzebujesz nazwy lub identyfikatora.

    Nazwa roli Identyfikator roli
    W przypadku interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell można użyć nazwy roli. W przypadku aplikacji Bicep potrzebny jest identyfikator roli.
  2. Użyj poniższej tabeli, aby wybrać rolę i identyfikator.

    Przypadek użycia Nazwa roli Identyfikator roli
    Asystenci Cognitive Services OpenAI Contributor a001fd3d-188f-4b5d-821b-7da978bf7442
    Ukończenie czatu Cognitive Services OpenAI User 5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
  3. Wybierz typ tożsamości do użycia.

    • Tożsamość osobista: jest to tożsamość osobista powiązana z logowaniem do platformy Azure.
    • Tożsamość zarządzana: jest to tożsamość zarządzana przez program i utworzona do użycia na platformie Azure. W przypadku tożsamości zarządzanej utwórz tożsamość zarządzaną przypisaną przez użytkownika. Podczas tworzenia tożsamości zarządzanej potrzebny jest również element Client ID, znany również jako app ID.
  4. Aby znaleźć swoją tożsamość osobistą, użyj jednego z następujących poleceń. Użyj identyfikatora <identity-id> w następnym kroku.

    W przypadku programowania lokalnego, aby uzyskać własny identyfikator tożsamości, użyj następującego polecenia. Przed użyciem az login tego polecenia musisz zalogować się przy użyciu polecenia .

    az ad signed-in-user show \
        --query id -o tsv
    
  5. Przypisz rolę kontroli dostępu opartej na rolach (RBAC) do tożsamości grupy zasobów.

    Aby udzielić uprawnień tożsamości do zasobu za pomocą kontroli dostępu opartej na rolach, przypisz rolę przy użyciu polecenia interfejsu wiersza polecenia platformy Azure az role assignment create.

    az role assignment create \
        --role "Cognitive Services OpenAI User" \
        --assignee "<identity-id>" \
        --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
    

    Jeśli ma to zastosowanie, zastąp <identity-id>wartości , <subscription-id>i <resource-group-name> rzeczywistymi wartościami.

Skonfiguruj zmienne środowiskowe

Aby nawiązać połączenie z usługą Azure OpenAI, kod musi znać punkt końcowy zasobu, a może potrzebować innych zmiennych środowiskowych.

  1. Utwórz zmienną środowiskową dla punktu końcowego usługi Azure OpenAI.

    • AZURE_OPENAI_ENDPOINT: ten adres URL jest punktem dostępu dla zasobu usługi Azure OpenAI.
  2. Utwórz zmienne środowiskowe na podstawie lokalizacji, w której działa aplikacja:

    Lokalizacja Tożsamość opis
    Lokalny Osobista W przypadku lokalnych środowisk uruchomieniowych z tożsamością osobistą zaloguj się, aby utworzyć poświadczenia za pomocą narzędzia.
    Chmura platformy Azure Tożsamość zarządzana przypisana przez użytkownika Utwórz zmienną AZURE_CLIENT_ID środowiskową zawierającą identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika do uwierzytelnienia jako.

Instalowanie biblioteki klienta usługi Azure Identity

Użyj poniższego linku, aby zainstalować bibliotekę klienta usługi Azure Identity.

Zainstaluj bibliotekę klienta .NET Azure Identity:

dotnet add package Azure.Identity

Użyj wartości domyślnejAzureCredential

Biblioteka tożsamości platformy Azure umożliwia klientowi DefaultAzureCredential uruchamianie tego samego kodu w lokalnym środowisku projektowym i w chmurze platformy Azure.

Aby uzyskać więcej informacji na temat DefaultAzureCredential dla platformy .NET, zobacz DefaultAzureCredential overview.

Zastosuj jedno z następujących podejść, aby ustawić identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika.

  • Ustaw zmienną środowiskową AZURE_CLIENT_ID. Konstruktor bez parametrów DefaultAzureCredential będzie używać wartości tej zmiennej środowiskowej, jeśli istnieje.

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using System;
    using static System.Environment;
    
    string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
    
    OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());
    
  • Ustaw właściwość ManagedIdentityClientId na DefaultAzureCredentialOptions:

    using Azure;
    using Azure.AI.OpenAI;
    using Azure.Identity;
    using System;
    using static System.Environment;
    
    string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
    
    var credential = new DefaultAzureCredential(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = "<user_assigned_client_id>"
        });
    
    OpenAIClient client = new(new Uri(endpoint), credential);
    

Zasoby