Żą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:
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 bloku konstrukcyjnego bez kluczy usługi Azure OpenAI, aby zapoznać się z szablonem End to end to end Azure OpenAI Authentication Block Building Block (Kompleksowe tworzenie bloków AI uwierzytelniania bez kluczy w języku JavaScript).
Dowiedz się, jak zarządzać wartością DefaultAzureCredential dla aplikacji wdrożonych na platformie Azure.
Dowiedz się, jak zarządzać wartością DefaultAzureCredential dla aplikacji wdrożonych na platformie Azure.
Dowiedz się, jak zarządzać wartością DefaultAzureCredential dla aplikacji wdrożonych na platformie Azure.
Dowiedz się, jak zarządzać wartością DefaultAzureCredential dla aplikacji wdrożonych na platformie Azure.
Dowiedz się, jak zarządzać wartością DefaultAzureCredential dla aplikacji wdrożonych na platformie Azure.
Konfigurowanie ról na potrzeby autoryzacji
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.
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
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.
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
W przypadku programowania lokalnego, aby uzyskać własny identyfikator tożsamości, użyj następującego polecenia. Przed użyciem Connect-AzAccount tego polecenia musisz zalogować się przy użyciu polecenia .
W przypadku korzystania z aplikacji Bicep wdrożonej za pomocą interfejsu wiersza polecenia dla deweloperów platformy Azure tożsamość osoby lub usługi uruchamiającej wdrożenie jest ustawiona na principalId parametr .
Następująca main.parameters.json zmienna jest ustawiona na tożsamość uruchamianą przez proces.
Do użycia na platformie Azure określ tożsamość zarządzaną przypisaną przez użytkownika w ramach procesu wdrażania Bicep. Utwórz tożsamość zarządzaną przypisaną przez użytkownika niezależnie od tożsamości uruchamianej przez proces.
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>"
Aby udzielić uprawnień aplikacji do zasobu usługi Azure OpenAI za pomocą kontroli dostępu opartej na rolach, przypisz rolę przy użyciu polecenia cmdlet programu Azure PowerShell New-AzRoleAssignment.
Użyj następującego szablonu Bicep usługi Azure OpenAI, aby utworzyć zasób i ustawić uwierzytelnianie dla elementu identityId. Bicep wymaga identyfikatora roli. Pokazany name w tym fragmencie kodu Bicep nie jest rolą platformy Azure— jest specyficzny dla wdrożenia Bicep.
Biblioteka tożsamości platformy Azure umożliwia klientowi DefaultAzureCredential uruchamianie tego samego kodu w lokalnym środowisku projektowym i w chmurze platformy Azure.
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());
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);
Aby uzyskać więcej informacji na temat DefaultAzureCredential dla języka Go, zobacz przegląd DefaultAzureCredential.
Wybierz jedno z następujących podejść, aby ustawić identyfikator klienta przypisanej przez użytkownika tożsamości zarządzanej:
Ustaw zmienną środowiskową AZURE_CLIENT_ID. Konstruktor bez parametrów DefaultAzureCredential będzie używać wartości tej zmiennej środowiskowej, jeśli istnieje.
Przypisz określoną tożsamość zarządzaną, przypisaną przez użytkownika, z DefaultAzureCredential za pomocą DefaultAzureCredentialBuilder, aby skonfigurować ją z identyfikatorem klienta:
Aby uzyskać więcej informacji na temat DefaultAzureCredential dla języka JavaScript, zobacz DefaultAzureCredential overview.
Wykonaj jeden z następujących sposobów, aby ustawić identyfikator klienta dla 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.
Przypisz zarządzaną tożsamość przypisaną konkretnemu użytkownikowi za pomocą DefaultAzureCredential, korzystając z parametru managedIdentityClientId, aby skonfigurować ją z identyfikatorem klienta.
Wykonaj jedną z następujących metod ustawiania identyfikatora 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.
Przypisz określoną tożsamość zarządzaną przypisaną przez użytkownika przy użyciu DefaultAzureCredential przy użyciu parametru managed_identity_client_id, aby skonfigurować ją przy użyciu identyfikatora klienta: