Toepassingsaanvragen voor de meeste Azure-services moeten worden geverifieerd met sleutels of verbindingen zonder wachtwoord. Ontwikkelaars moeten ijverig zijn om de sleutels nooit beschikbaar te maken op een onbeveiligde locatie. Iedereen die toegang krijgt tot de sleutel, kan zich verifiëren bij de service. Sleutelloze verificatie biedt verbeterde beheer- en beveiligingsvoordelen ten opzichte van de accountsleutel, omdat er geen sleutel (of verbindingsreeks) is om op te slaan.
Sleutelloze verbindingen zijn ingeschakeld met de volgende stappen:
Configureer uw verificatie.
Stel indien nodig omgevingsvariabelen in.
Gebruik een referentietype voor de Azure Identity-bibliotheek om een Azure OpenAI-clientobject te maken.
Verificatie
Verificatie voor Microsoft Entra-id is vereist voor het gebruik van de Azure-clientbibliotheken.
Verificatie verschilt op basis van de omgeving waarin de app wordt uitgevoerd:
Gebruik de volgende koppeling om de Azure OpenAI Keyless Building Block AI-sjabloon te verkennen. Deze sjabloon richt een Azure OpenAI-account in met de RBAC-rolmachtiging voor uw gebruikersaccount voor sleutelloze verificatie (Microsoft Entra) voor toegang tot de OpenAI API SDK's.
Notitie
In dit artikel worden een of meer AI-app-sjablonen gebruikt als basis voor de voorbeelden en richtlijnen in het artikel. AI-app-sjablonen bieden u een goed onderhouden, eenvoudig te implementeren referentie-implementaties die u helpen een startpunt van hoge kwaliteit voor uw AI-apps te garanderen.
Meer informatie over het beheren van de DefaultAzureCredential voor toepassingen die zijn geïmplementeerd in Azure.
Meer informatie over het beheren van de DefaultAzureCredential voor toepassingen die zijn geïmplementeerd in Azure.
Meer informatie over het beheren van de DefaultAzureCredential voor toepassingen die zijn geïmplementeerd in Azure.
Meer informatie over het beheren van de DefaultAzureCredential voor toepassingen die zijn geïmplementeerd in Azure.
Meer informatie over het beheren van de DefaultAzureCredential voor toepassingen die zijn geïmplementeerd in Azure.
Rollen configureren voor autorisatie
Zoek de rol voor uw gebruik van Azure OpenAI. Afhankelijk van hoe u die rol wilt instellen, hebt u de naam of id nodig.
Rolnaam
Rol-id
Voor Azure CLI of Azure PowerShell kunt u de rolnaam gebruiken.
Voor Bicep hebt u de rol-id nodig.
Gebruik de volgende tabel om een rol en id te selecteren.
Gebruiksscenario
Rolnaam
Rol-id
Assistenten
Cognitive Services OpenAI Contributor
a001fd3d-188f-4b5d-821b-7da978bf7442
Chatvoltooiingen
Cognitive Services OpenAI User
5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
Selecteer een identiteitstype dat u wilt gebruiken.
Persoonlijke identiteit: dit is uw persoonlijke identiteit die is gekoppeld aan uw aanmelding bij Azure.
Beheerde identiteit: dit is een identiteit die wordt beheerd door en gemaakt voor gebruik in Azure. Maak voor een beheerde identiteit een door de gebruiker toegewezen beheerde identiteit. Wanneer u de beheerde identiteit maakt, hebt u de Client ID, ook wel bekend als de app ID.
Gebruik een van de volgende opdrachten om uw persoonlijke identiteit te vinden. Gebruik de id als in <identity-id> de volgende stap.
Gebruik de volgende opdracht om uw eigen identiteits-id op te halen voor lokale ontwikkeling. U moet zich aanmelden voordat az login u deze opdracht gebruikt.
az ad signed-in-user show \
--query id -o tsv
Gebruik de volgende opdracht om uw eigen identiteits-id op te halen voor lokale ontwikkeling. U moet zich aanmelden voordat Connect-AzAccount u deze opdracht gebruikt.
Wanneer u Bicep gebruikt die is geïmplementeerd met Azure Developer CLI, wordt de identiteit van de persoon of service die de implementatie uitvoert ingesteld op de principalId parameter.
De volgende main.parameters.json variabele wordt ingesteld op de identiteit waarop het proces wordt uitgevoerd.
Geef voor gebruik in Azure een door de gebruiker toegewezen beheerde identiteit op als onderdeel van het Bicep-implementatieproces. Maak een door de gebruiker toegewezen beheerde identiteit, gescheiden van de identiteit die het proces uitvoert.
Als u uw identiteitsmachtigingen wilt verlenen aan uw resource via RBAC, wijst u een rol toe met behulp van de Azure CLI-opdracht az role assignment create.
az role assignment create \
--role "Cognitive Services OpenAI User" \
--assignee "<identity-id>" \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
Als u uw toepassingsmachtigingen wilt verlenen aan uw Azure OpenAI-resource via RBAC, wijst u een rol toe met behulp van de Azure PowerShell-cmdlet New-AzRoleAssignment.
Gebruik de volgende Azure OpenAI Bicep-sjabloon om de resource te maken en de verificatie voor de identityIdresource in te stellen. Bicep vereist de rol-id. De name weergave in dit Bicep-fragment is niet de Azure-rol. Dit is specifiek voor de Bicep-implementatie.
Zie het overzicht van DefaultAzureCredentialvoor meer informatie over DefaultAzureCredential voor .NET.
Voer een van de volgende methoden uit om de client-id van de door de gebruiker toegewezen beheerde identiteit in te stellen:
Stel omgevingsvariabele in AZURE_CLIENT_ID. De parameterloze constructor van DefaultAzureCredential gebruikt de waarde van deze omgevingsvariabele, indien aanwezig.
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);
Zie het overzicht van DefaultAzureCredentialvoor meer informatie over DefaultAzureCredential voor Go.
Voer een van de volgende methoden uit om de client-id van de door de gebruiker toegewezen beheerde identiteit in te stellen:
Stel omgevingsvariabele in AZURE_CLIENT_ID. De parameterloze constructor van DefaultAzureCredential gebruikt de waarde van deze omgevingsvariabele, indien aanwezig.
Wijs een specifieke door de gebruiker toegewezen beheerde identiteit toe met DefaultAzureCredential met behulp van de DefaultAzureCredentialBuilder om deze te configureren met een client-id:
Voer een van de volgende methoden uit om de client-id van de door de gebruiker toegewezen beheerde identiteit in te stellen:
Stel omgevingsvariabele in AZURE_CLIENT_ID. De parameterloze constructor van DefaultAzureCredential gebruikt de waarde van deze omgevingsvariabele, indien aanwezig.
Wijs een specifieke door de gebruiker toegewezen beheerde identiteit toe met DefaultAzureCredential met behulp van de parameter managedIdentityClientId om deze te configureren met een client-id:
Voer een van de volgende methoden uit om de client-id van de door de gebruiker toegewezen beheerde identiteit in te stellen:
Stel omgevingsvariabele in AZURE_CLIENT_ID. De parameterloze constructor van DefaultAzureCredential gebruikt de waarde van deze omgevingsvariabele, indien aanwezig.
Wijs een specifieke door de gebruiker toegewezen beheerde identiteit toe met DefaultAzureCredential met behulp van de parameter managed_identity_client_id om deze te configureren met een client-id: