Delen via


Microsoft Entra-verificatie met de Speech SDK

Wanneer u de Speech SDK gebruikt voor toegang tot de Speech-service, zijn er drie verificatiemethoden beschikbaar: servicesleutels, een sleuteltoken en Microsoft Entra-id. In dit artikel wordt beschreven hoe u een AI Foundry-resource voor Speech configureert en een Speech SDK-configuratieobject maakt voor het gebruik van Microsoft Entra ID voor verificatie.

In dit artikel wordt beschreven hoe u Microsoft Entra-verificatie gebruikt met de Speech SDK. U leert het volgende:

  • Een AI Foundry-resource voor Spraak maken
  • De Spraak-resource configureren voor Microsoft Entra-verificatie
  • Een Microsoft Entra-toegangstoken ophalen
  • Maak het juiste SDK-configuratieobject.

Voor meer informatie over Microsoft Entra-toegangstokens, inclusief levensduur van tokens, gaat u naar Access-tokens in het Microsoft Identity Platform.

Een AI Foundry-resource voor Spraak maken

Als u een AI Foundry-resource voor Spraak wilt maken in Azure Portal, raadpleegt u deze quickstart.

De Spraak-resource configureren voor Microsoft Entra-verificatie

Als u uw Spraak-resource voor Microsoft Entra-verificatie wilt configureren, maakt u een aangepaste domeinnaam en wijst u rollen toe.

Een aangepaste domeinnaam maken

Volg deze stappen om een aangepaste subdomeinnaam te maken voor Azure AI-services voor uw Speech-resource.

Let op

Wanneer u een aangepaste domeinnaam inschakelt, is de bewerking niet omkeerbaar. De enige manier om terug te gaan naar de regionale naam is door een nieuwe Spraak-resource te maken.

Als uw Speech-resource veel aangepaste modellen en projecten bevat die zijn gemaakt via Speech Studio, raden we u ten zeerste aan om de configuratie uit te voeren met een testresource voordat u de resource die in productie wordt gebruikt, wijzigt.

Voer de volgende stappen uit om een aangepaste domeinnaam te maken met behulp van Azure Portal:

  1. Ga naar Azure Portal en meld u aan bij uw account.

  2. Selecteer de vereiste spraakresource.

  3. Selecteer Netwerken in de groep Resourcebeheer in het linkerdeelvenster.

  4. Selecteer Op het tabblad Firewalls en virtuele netwerken de optie Aangepaste domeinnaam genereren. Er wordt een nieuw rechterdeelvenster weergegeven met instructies voor het maken van een uniek aangepast subdomein voor uw resource.

  5. Voer in het deelvenster Aangepaste domeinnaam genereren een aangepaste domeinnaam in. Uw volledige aangepaste domein ziet er als volgt uit: https://{your custom name}.cognitiveservices.azure.com.

    Nadat u een aangepaste domeinnaam hebt gemaakt, kan deze niet meer worden gewijzigd.

    Nadat u uw aangepaste domeinnaam hebt ingevoerd, selecteert u Opslaan.

  6. Nadat de bewerking is voltooid, selecteert u sleutels en eindpunt in de resourcebeheergroep. Controleer of de naam van het nieuwe eindpunt van uw resource op deze manier wordt gestart: https://{your custom name}.cognitiveservices.azure.com.

Rollen toewijzen

Voor Microsoft Entra-verificatie met Spraakresources moet u de rol Cognitive Services Speech Contributor of Cognitive Services Speech User toewijzen.

U kunt rollen toewijzen aan de gebruiker of toepassing met behulp van Azure Portal of PowerShell.

Een Microsoft Entra-toegangstoken ophalen

Als u een Microsoft Entra-toegangstoken in C# wilt ophalen, gebruikt u de Azure Identity-clientbibliotheek.

Hier volgt een voorbeeld van het gebruik van Azure Identity om een Microsoft Entra-toegangstoken op te halen vanuit een interactieve browser:

TokenRequestContext context = new Azure.Core.TokenRequestContext(new string[] { "https://cognitiveservices.azure.com/.default" });
InteractiveBrowserCredential browserCredential = new InteractiveBrowserCredential();
var browserToken = browserCredential.GetToken(context);
string aadToken = browserToken.Token;

Notitie

De tokencontext moet worden ingesteld op 'https://cognitiveservices.azure.com/.default".

Als u een Microsoft Entra-toegangstoken in C++wilt ophalen, gebruikt u de Azure Identity-clientbibliotheek.

Hier volgt een voorbeeld van het gebruik van Azure Identity om een Microsoft Entra-toegangstoken op te halen met uw tenant-id, client-id en referenties voor clientgeheimen:

const std::string tokenContext = "https://cognitiveservices.azure.com/.default";

Azure::Identity::DefaultAzureCredential();

Azure::Core::Credentials::TokenRequestContext context;
context.Scopes.push_back(tokenContext);

auto token = cred.GetToken(context, Azure::Core::Context());

Notitie

De tokencontext moet worden ingesteld op 'https://cognitiveservices.azure.com/.default".

Als u een Microsoft Entra-toegangstoken in Java wilt ophalen, gebruikt u de Azure Identity-clientbibliotheek.

Hier volgt een voorbeeld van het gebruik van Azure Identity om een Microsoft Entra-toegangstoken op te halen vanuit een browser:

TokenRequestContext context = new TokenRequestContext();
context.addScopes("https://cognitiveservices.azure.com/.default");

InteractiveBrowserCredentialBuilder builder = new InteractiveBrowserCredentialBuilder();
InteractiveBrowserCredential browserCredential = builder.build();

AccessToken browserToken = browserCredential.getToken(context).block();
String token = browserToken.getToken();

Notitie

De tokencontext moet worden ingesteld op 'https://cognitiveservices.azure.com/.default".

Gebruik de Azure Identity-clientbibliotheek om een Microsoft Entra-toegangstoken in Python op te halen.

Hier volgt een voorbeeld van het gebruik van Azure Identity om een Microsoft Entra-toegangstoken op te halen vanuit een interactieve browser:

from azure.identity import  InteractiveBrowserCredential
ibc = InteractiveBrowserCredential()
aadToken = ibc.get_token("https://cognitiveservices.azure.com/.default")

Meer voorbeelden

Zoek voorbeelden die een Microsoft Entra-toegangstoken ophalen in codevoorbeelden van het Microsoft Identity Platform.

Voor programmeertalen waar een Clientbibliotheek van Microsoft Identity Platform niet beschikbaar is, kunt u rechtstreeks een toegangstoken aanvragen.

De spraakresource-id ophalen

U hebt uw Spraakresource-ID nodig om SDK-aanroepen te doen met behulp van Microsoft Entra-verificatie in scenario's die nog geen ondersteuning bieden voor Entra ID.

De resource-id ophalen in Azure Portal:

  1. Ga naar Azure Portal en meld u aan bij uw account.
  2. Selecteer een AI Foundry-resource voor Spraak.
  3. Selecteer Eigenschappen in de groep Resourcebeheer in het linkerdeelvenster.
  4. De resource-id kopiëren

Het Speech SDK-configuratieobject maken

Met een Microsoft Entra-toegangstoken kunt u nu een Speech SDK-configuratieobject maken.

De methode voor het opgegeven token en de methode voor het maken van het bijbehorende Speech SDK-object Config verschilt per object dat u gebruikt.

Spraakherkenner, Bron(n)taalherkenner, Gespreksomzetter

Gebruik voor SpeechRecognizer, SourceLanguageRecognizer, ConversationTranscriber objecten een geschikt exemplaar van TokenCredential voor authenticatie, samen met het eindpunt dat uw aangepaste domein bevat, om een SpeechConfig object te maken.

TokenCredential browserCredential = new InteractiveBrowserCredential();

// Define the custom domain endpoint for your Speech resource.
var endpoint = "https://{your custom name}.cognitiveservices.azure.com/";

// Create the SpeechConfig object using the custom domain endpoint and TokenCredential.
var speechConfig = SpeechConfig.FromEndpoint(new Uri(endpoint), browserCredential);

Vertaalherkenner

Gebruik het TranslationRecognizer object met een geschikt exemplaar van TokenCredential voor verificatie, samen met het eindpunt dat uw aangepaste domein bevat, om een SpeechTranslationConfig object te maken.

TokenCredential browserCredential = new InteractiveBrowserCredential();

// Define the custom domain endpoint for your Speech resource
var endpoint = "https://{your custom name}.cognitiveservices.azure.com/";

// Create the SpeechTranslationConfig object using the custom domain endpoint and TokenCredential.
var speechConfig = SpeechTranslationConfig.FromEndpoint(new Uri(endpoint), browserCredential);

SpeechSynthesizer, IntentRecognizer

SpeechSynthesizer Voor IntentRecognizerobjecten bouwt u het autorisatietoken op basis van de resource-id en het Microsoft Entra-toegangstoken en gebruikt u het vervolgens om een SpeechConfig object te maken.

string resourceId = "Your Resource ID";
string aadToken = "Your Microsoft Entra access token";
string region =  "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
var authorizationToken = $"aad#{resourceId}#{aadToken}";
var speechConfig = SpeechConfig.FromAuthorizationToken(authorizationToken, region);

SpeechRecognizer, SpeechSynthesizer, IntentRecognizer, ConversationTranscriber

Voor SpeechRecognizer, SpeechSynthesizer, IntentRecognizerConversationTranscriber objecten, bouwt u het autorisatietoken op basis van de resource-id en het Microsoft Entra-toegangstoken en gebruikt u het vervolgens om een SpeechConfig object te maken.

std::string resourceId = "Your Resource ID";
std::string aadToken = "Your Microsoft Entra access token";
std::string region = "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
auto authorizationToken = "aad#" + resourceId + "#" + aadToken;
auto speechConfig = SpeechConfig::FromAuthorizationToken(authorizationToken, region);

Vertaalherkenner

Bouw voor het TranslationRecognizerautorisatietoken het autorisatietoken op basis van de resource-id en het Microsoft Entra-toegangstoken en gebruik het vervolgens om een SpeechTranslationConfig object te maken.

std::string resourceId = "Your Resource ID";
std::string aadToken = "Your Microsoft Entra access token";
std::string region = "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
auto authorizationToken = "aad#" + resourceId + "#" + aadToken;
auto speechConfig = SpeechTranslationConfig::FromAuthorizationToken(authorizationToken, region);

Spraakherkenner, Gesprekstranscribeerder

Voor SpeechRecognizer, ConversationTranscriber objecten, gebruik een geschikt exemplaar van TokenCredential voor authenticatie, samen met het eindpunt dat uw aangepaste domein bevat, om een SpeechConfig object te maken.

TokenCredential browserCredential = new InteractiveBrowserCredentialBuilder().build();

// Define the custom domain endpoint for your Speech resource.
String endpoint = "https://{your custom name}.cognitiveservices.azure.com/";

// Create the SpeechConfig object using the custom domain endpoint and TokenCredential.
SpeechConfig speechConfig = SpeechConfig.fromEndpoint(new java.net.URI(endpoint), browserCredential);

Vertaalherkenner

Gebruik het TranslationRecognizer object met een geschikt exemplaar van TokenCredential voor verificatie, samen met het eindpunt dat uw aangepaste domein bevat, om een SpeechTranslationConfig object te maken.

TokenCredential browserCredential = new InteractiveBrowserCredentialBuilder().build();

// Define the custom domain endpoint for your Speech resource
String endpoint = "https://{your custom name}.cognitiveservices.azure.com/";

// Create the SpeechTranslationConfig object using the custom domain endpoint and TokenCredential.
SpeechConfig speechConfig = SpeechTranslationConfig.fromEndpoint(new java.net.URI(endpoint), browserCredential);

SpeechSynthesizer, IntentRecognizer

SpeechSynthesizer Voor IntentRecognizerobjecten bouwt u het autorisatietoken op basis van de resource-id en het Microsoft Entra-toegangstoken en gebruikt u het vervolgens om een SpeechConfig object te maken.

String resourceId = "Your Resource ID";
String region = "Your Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
String authorizationToken = "aad#" + resourceId + "#" + token;
SpeechConfig speechConfig = SpeechConfig.fromAuthorizationToken(authorizationToken, region);

Spraakherkenner, Gesprekstranscriptor

Voor SpeechRecognizer, ConversationTranscriber objecten, gebruik een geschikt exemplaar van TokenCredential voor autorisatie, samen met het eindpunt dat uw aangepaste domein bevat, om een SpeechConfig object te maken.

browserCredential = InteractiveBrowserCredential()

// Define the custom domain endpoint for your Speech resource.
custom_endpoint = "https://{your custom name}.cognitiveservices.azure.com/"

// Create the SpeechConfig object using the custom domain endpoint and TokenCredential.
speechConfig = SpeechConfig(token_credential=credential, endpoint=custom_endpoint)

Vertaalherkenner

Gebruik het TranslationRecognizer object met een geschikt exemplaar van TokenCredential voor verificatie, samen met het eindpunt dat uw aangepaste domein bevat, om een SpeechTranslationConfig object te maken.

browserCredential = InteractiveBrowserCredential()

// Define the custom domain endpoint for your Speech resource
custom_endpoint = "https://{your custom name}.cognitiveservices.azure.com/"

// Create the SpeechTranslationConfig object using the custom domain endpoint and TokenCredential.
speechTranslationConfig = SpeechTranslationConfig(token_credential=credential, endpoint=custom_endpoint)

SpeechSynthesizer, IntentRecognizer

SpeechSynthesizer Voor IntentRecognizerobjecten bouwt u het autorisatietoken op basis van de resource-id en het Microsoft Entra-toegangstoken en gebruikt u het vervolgens om een SpeechConfig object te maken.

resourceId = "Your Resource ID"
region = "Your Region"
# You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
authorizationToken = "aad#" + resourceId + "#" + aadToken.token
speechConfig = SpeechConfig(auth_token=authorizationToken, region=region)

VoiceProfileClient

Als u de VoiceProfileClient verificatie met Microsoft Entra wilt gebruiken, gebruikt u de aangepaste domeinnaam die hierboven is gemaakt.

string customDomainName = "Your Custom Name";
string hostName = $"https://{customDomainName}.cognitiveservices.azure.com/";
string token = "Your Microsoft Entra access token";

var config =  SpeechConfig.FromHost(new Uri(hostName));

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
var authorizationToken = $"aad#{resourceId}#{aadToken}";
config.AuthorizationToken = authorizationToken;
std::string customDomainName = "Your Custom Name";
std::string aadToken = "Your Microsoft Entra access token";

auto speechConfig = SpeechConfig::FromHost("https://" + customDomainName + ".cognitiveservices.azure.com/");

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
auto authorizationToken = "aad#" + resourceId + "#" + aadToken;
speechConfig->SetAuthorizationToken(authorizationToken);
String aadToken = "Your Microsoft Entra access token";
String customDomainName = "Your Custom Name";
String hostName = "https://" + customDomainName + ".cognitiveservices.azure.com/";
SpeechConfig speechConfig = SpeechConfig.fromHost(new URI(hostName));

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and Microsoft Entra access token.
String authorizationToken = "aad#" + resourceId + "#" + token;

speechConfig.setAuthorizationToken(authorizationToken);

De VoiceProfileClient is niet beschikbaar met de Speech SDK voor Python.

Notitie

Microsoft ConversationTranslator Entra-verificatie wordt niet ondersteund.