Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Varje anrop till Azure AI-tjänster måste innehålla en autentiseringsheader. Det här huvudet skickar en resursnyckel eller en autentiseringstoken som används för att verifiera din prenumeration för en tjänst eller grupp med tjänster. I den här artikeln får du lära dig om tre sätt att autentisera en begäran och kraven för var och en.
- Autentisera med en resursnyckel med en enda tjänst eller AI Foundry-resursnyckel för flera tjänster .
- Autentisera med en token.
- Autentisera med Microsoft Entra-ID.
Förutsättningar
Innan du gör en begäran behöver du en Azure-prenumeration och en AI Foundry-resurs. Om du behöver en AI Foundry-resurs kan du läsa guiden skapa en AI Foundry-resurs .
Autentiseringshuvuden
Nu ska vi snabbt granska de autentiseringshuvuden som är tillgängliga för användning med Azure AI-tjänster.
| Rubrik | beskrivning |
|---|---|
| Ocp-Apim-Subscription-Key | Använd den här rubriken för att autentisera med en resursnyckel för en specifik tjänst eller en AI Foundry-resursnyckel. |
| Ocp-Apim-Subscription-Region | Den här rubriken krävs bara när du använder en AI Foundry resursnyckel med Azure AI Translator-tjänsten. Använd det här huvudet för att ange resursregionen. |
| Auktorisering | Använd den här rubriken om du använder en åtkomsttoken. Stegen för att utföra ett tokenutbyte beskrivs i följande avsnitt. Det angivna värdet följer det här formatet: Bearer <TOKEN>. |
Autentisera med en resursnyckel med en enda tjänst
Det första alternativet är att autentisera en begäran med en resursnyckel för en specifik tjänst, till exempel Azure AI Translator. Nycklarna är tillgängliga i Azure Portal för varje resurs som du har skapat. Gå till resursen i Azure Portal. Avsnittet Nycklar och slutpunkter finns i avsnittet Resurshantering . Kopiera slutpunkten och åtkomstnyckeln eftersom du behöver båda för att autentisera dina API-anrop. Du kan använda antingen KEY1 eller KEY2. Om du alltid har två nycklar kan du rotera och återskapa nycklar på ett säkert sätt utan att orsaka avbrott i tjänsten.
Om du vill använda en resursnyckel för att autentisera Ocp-Apim-Subscription-Key en begäran måste den skickas som rubrik. Det här är ett exempelanrop till Azure AI Translator-tjänsten:
Det här är ett exempelanrop till Translator-tjänsten:
curl -X POST 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=de' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
-H 'Content-Type: application/json' \
--data-raw '[{ "text": "How much for the cup of coffee?" }]' | json_pp
Autentisera med en AI Foundry-resursnyckel
Du kan använda en AI Foundry-resursnyckel för att autentisera begäranden för flera Azure AI-tjänster. Autentiseringsuppgifterna är inte kopplade till en specifik tjänst. Se Priser för Azure AI-tjänster för information om regional tillgänglighet, funktioner som stöds och priser.
Resursnyckeln anges i varje begäran som Ocp-Apim-Subscription-Key rubrik.
Regioner som stöds
När du använder resursnyckeln AI Foundry för att göra en begäran till api.cognitive.microsoft.commåste du inkludera regionen i URL:en. Exempel: westus.api.cognitive.microsoft.com.
När du använder en AI Foundry-resursnyckel med Azure AI Translator måste du ange resursregionen med Ocp-Apim-Subscription-Region huvud.
AI Foundry-resursautentisering stöds i följande regioner:
australiaeastbrazilsouthcanadacentralcentralindiaeastasiaeastusjapaneastnortheuropesouthcentralussoutheastasiauksouthwestcentraluswesteuropewestuswestus2francecentralkoreacentralnorthcentralussouthafricanorthuaenorthswitzerlandnorth
Exempelbegäranden
Det här är ett exempelanrop till Azure AI Translator-tjänsten:
curl -X POST 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=de' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
-H 'Ocp-Apim-Subscription-Region: YOUR_SUBSCRIPTION_REGION' \
-H 'Content-Type: application/json' \
--data-raw '[{ "text": "How much for the cup of coffee?" }]' | json_pp
Autentisera med en åtkomsttoken
Vissa Azure AI-tjänster accepterar, och i vissa fall kräver, en åtkomsttoken. För närvarande stöder dessa tjänster åtkomsttoken:
- API för textöversättning
- Speech Services: API för tal till text
- Speech Services: API för text till tal
Varning
De tjänster som stöder åtkomsttoken kan ändras med tiden, så kontrollera API-referensen för en tjänst innan du använder den här autentiseringsmetoden.
Resursnycklar för AI Foundry och AI-tjänster kan bytas ut mot autentiseringstoken. Autentiseringstoken är giltiga i 10 minuter. De lagras i JWT-format (JWT) och kan efterfrågas programmatiskt med hjälp av JWT-biblioteken.
Åtkomsttoken ingår i en begäran som Authorization rubrik. Det angivna tokenvärdet måste föregås av Bearer, till exempel: Bearer YOUR_AUTH_TOKEN.
Exempelbegäranden
Använd den här URL:en för att byta ut en resursnyckel mot en åtkomsttoken: https://YOUR-REGION.api.cognitive.microsoft.com/sts/v1.0/issueToken.
curl -v -X POST \
"https://YOUR-REGION.api.cognitive.microsoft.com/sts/v1.0/issueToken" \
-H "Content-type: application/x-www-form-urlencoded" \
-H "Content-length: 0" \
-H "Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY"
Dessa regioner stöder tokenutbyte för AI Foundry-resurser:
australiaeastbrazilsouthcanadacentralcentralindiaeastasiaeastusjapaneastnortheuropesouthcentralussoutheastasiauksouthwestcentraluswesteuropewestuswestus2
När du har fått en åtkomsttoken måste du skicka den i varje begäran som Authorization rubrik. Det här är ett exempelanrop till Azure AI Translator-tjänsten:
curl -X POST 'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&from=en&to=de' \
-H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
-H 'Content-Type: application/json' \
--data-raw '[{ "text": "How much for the cup of coffee?" }]' | json_pp
Autentisera med Microsoft Entra ID
Viktigt!
Microsoft Entra-autentisering måste alltid användas tillsammans med det anpassade underdomännamnet för din Azure-resurs. Regionala slutpunkter stöder inte Microsoft Entra-autentisering.
I föregående avsnitt visade vi hur du autentiserar med hjälp av API-nycklar. Även om dessa nycklar ger en snabb och enkel väg för att börja utveckla, misslyckas de i scenarier som kräver rollbaserad åtkomstkontroll i Azure (Azure RBAC). Nu ska vi ta en titt på vad som krävs för att autentisera på ett säkrare sätt med hjälp av Microsoft Entra-ID.
I följande avsnitt använder du antingen Azure Cloud Shell-miljön eller Azure CLI för att skapa en underdomän, tilldela roller och hämta en ägartoken för att anropa Azure AI-tjänsterna. Om du fastnar finns länkar i varje avsnitt med alla tillgängliga alternativ för varje kommando i Azure Cloud Shell/Azure CLI.
Viktigt!
Om din organisation utför autentisering via Microsoft Entra-ID bör du inaktivera lokal autentisering (autentisering med nycklar) så att användare i organisationen alltid måste använda Microsoft Entra-ID.
Skapa en resurs med en anpassad underdomän
Det första steget är att skapa en anpassad underdomän. Om du vill använda en befintlig AI Foundry-resurs som inte har ett anpassat underdomännamn följer du anvisningarna i anpassade underdomäner för Azure AI-tjänster för att aktivera anpassad underdomän för din resurs.
Börja med att öppna Azure Cloud Shell. Välj sedan en prenumeration:
Set-AzContext -SubscriptionName <SubscriptionName>Skapa sedan en AI Foundry-resurs med en anpassad underdomän. Underdomännamnet måste vara globalt unikt och får inte innehålla specialtecken, till exempel: ".", "!", ",".
$account = New-AzCognitiveServicesAccount -ResourceGroupName <RESOURCE_GROUP_NAME> -name <ACCOUNT_NAME> -Type <ACCOUNT_TYPE> -SkuName <SUBSCRIPTION_TYPE> -Location <REGION> -CustomSubdomainName <UNIQUE_SUBDOMAIN>Om det lyckas bör slutpunkten visa underdomännamnet som är unikt för resursen.
Tilldela en roll till ett huvudnamn för tjänsten
Nu när du har en anpassad underdomän som är associerad med resursen måste du tilldela en roll till tjänstens huvudnamn.
Kommentar
Tänk på att Azure-rolltilldelningar kan ta upp till fem minuter att sprida.
Först ska vi registrera ett Microsoft Entra-program.
$SecureStringPassword = ConvertTo-SecureString -String <YOUR_PASSWORD> -AsPlainText -Force $app = New-AzureADApplication -DisplayName <APP_DISPLAY_NAME> -IdentifierUris <APP_URIS> -PasswordCredentials $SecureStringPasswordDu behöver ApplicationId i nästa steg.
Därefter måste du skapa ett huvudnamn för tjänsten för Microsoft Entra-programmet.
New-AzADServicePrincipal -ApplicationId <APPLICATION_ID>Kommentar
Om du registrerar ett program i Azure Portal slutförs det här steget åt dig.
Det sista steget är att tilldela rollen "Cognitive Services-användare" till tjänstens huvudnamn (omfångsbegränsat till resursen). Genom att tilldela en roll ger du tjänstens huvudnamn åtkomst till den här resursen. Du kan ge samma tjänsthuvudnamn åtkomst till flera resurser i din prenumeration.
Kommentar
ObjectId för tjänstens huvudnamn används, inte ObjectId för programmet. Den ACCOUNT_ID är Azure-resurs-ID:t för AI Foundry-resursen som du skapade. Du hittar Azure-resurs-ID:t från "egenskaper" för resursen i Azure-portalen.
New-AzRoleAssignment -ObjectId <SERVICE_PRINCIPAL_OBJECTID> -Scope <ACCOUNT_ID> -RoleDefinitionName "Cognitive Services User"
Exempelbegäran
I det här exemplet används ett lösenord för att autentisera tjänstens huvudnamn. Den angivna token används sedan för att anropa Azure AI Vision API.
Hämta ditt TenantId:
$context=Get-AzContext $context.Tenant.IdHämta en token:
$tenantId = $context.Tenant.Id $clientId = $app.ApplicationId $clientSecret = "<YOUR_PASSWORD>" $resourceUrl = "https://cognitiveservices.azure.com/" $tokenEndpoint = "https://login.microsoftonline.com/$tenantId/oauth2/token" $body = @{ grant_type = "client_credentials" client_id = $clientId client_secret = $clientSecret resource = $resourceUrl } $responseToken = Invoke-RestMethod -Uri $tokenEndpoint -Method Post -Body $body $accessToken = $responseToken.access_tokenKommentar
När du använder lösenord i ett skript är det säkraste alternativet att använda PowerShell Secrets Management-modulen och integrera med en lösning som Azure Key Vault.
Anropa Api:et för Azure AI Vision:
$url = $account.Endpoint+"vision/v1.0/models" $result = Invoke-RestMethod -Uri $url -Method Get -Headers @{"Authorization"="Bearer $accessToken"} -Verbose $result | ConvertTo-Json
Alternativt kan tjänstens huvudnamn autentiseras med ett certifikat. Förutom tjänstens huvudnamn stöds även användarens huvudnamn genom att ha behörigheter delegerade via ett annat Microsoft Entra-program. I det här fallet, i stället för lösenord eller certifikat, uppmanas användarna att använda tvåfaktorautentisering när de hämtar token.
Auktorisera åtkomst till hanterade identiteter
Azure AI-tjänster stöder Microsoft Entra-autentisering med hanterade identiteter för Azure-resurser. Hanterade identiteter för Azure-resurser kan auktorisera åtkomst till AI Foundry-resurser med hjälp av Microsoft Entra-autentiseringsuppgifter från program som körs på virtuella Azure-datorer (VM), funktionsappar, vm-skalningsuppsättningar och andra tjänster. Genom att använda hanterade identiteter för Azure-resurser tillsammans med Microsoft Entra-autentisering kan du undvika att lagra autentiseringsuppgifter med dina program som körs i molnet.
Aktivera hanterade identiteter på en virtuell dator (VM)
Innan du kan använda hanterade identiteter för Azure-resurser för att auktorisera åtkomst till AI Foundry-resurser från den virtuella datorn måste du aktivera hanterade identiteter för Azure-resurser på den virtuella datorn. Information om hur du aktiverar hanterade identiteter för Azure-resurser finns i:
- Azure Portal
- Azure PowerShell
- Azure CLI
- Azure Resource Manager-mall
- Azure Resource Manager-klientbibliotek
Mer information om hanterade identiteter finns i Hanterade identiteter för Azure-resurser.
Använda Azure Key Vault för säker åtkomst till autentiseringsuppgifter
Du kan använda Azure Key Vault för att på ett säkert sätt utveckla Azure AI Foundry-program. Med Key Vault kan du lagra dina autentiseringsuppgifter i molnet och minskar risken för att hemligheter kan läcka ut av misstag, eftersom du inte lagrar säkerhetsinformation i ditt program.
Autentiseringen görs via Microsoft Entra-ID. Auktorisering kan göras via rollbaserad åtkomstkontroll i Azure (Azure RBAC) eller key vault-åtkomstprincip. Azure RBAC kan användas för både hantering av valv och åtkomst till data som lagras i ett valv, medan åtkomstprincip för nyckelvalv endast kan användas när du försöker komma åt data som lagras i ett valv.