Uwierzytelnianie firmy Microsoft w usłudze Entra przy użyciu zestawu SPEECH SDK
W przypadku uzyskiwania dostępu do usługi Speech SDK dostępne są trzy metody uwierzytelniania: klucze usługi, token oparty na kluczach i identyfikator Entra firmy Microsoft. W tym artykule opisano sposób konfigurowania zasobu usługi Mowa i tworzenia obiektu konfiguracji zestawu Speech SDK do używania identyfikatora Entra firmy Microsoft do uwierzytelniania.
W tym artykule pokazano, jak używać uwierzytelniania firmy Microsoft w usłudze Speech SDK. Dowiedz się, jak odbywa się:
- Tworzenie zasobu usługi Mowa
- Konfigurowanie zasobu usługi Mowa na potrzeby uwierzytelniania entra firmy Microsoft
- Uzyskiwanie tokenu dostępu Microsoft Entra
- Utwórz odpowiedni obiekt konfiguracji zestawu SDK.
Aby dowiedzieć się więcej na temat tokenów dostępu firmy Microsoft, w tym okresu istnienia tokenu, odwiedź stronę Tokeny dostępu w Platforma tożsamości Microsoft.
Tworzenie zasobu usługi Mowa
Aby utworzyć zasób usługi Mowa w witrynie Azure Portal, zobacz ten przewodnik Szybki start.
Konfigurowanie zasobu usługi Mowa na potrzeby uwierzytelniania entra firmy Microsoft
Aby skonfigurować zasób usługi Mowa na potrzeby uwierzytelniania w usłudze Microsoft Entra, utwórz niestandardową nazwę domeny i przypisz role.
Tworzenie niestandardowej nazwy domeny
Wykonaj następujące kroki, aby utworzyć niestandardową nazwę poddomeny dla usług Azure AI dla zasobu usługi Mowa.
Uwaga
Po włączeniu niestandardowej nazwy domeny operacja nie jest odwracalna. Jedynym sposobem powrotu do nazwy regionalnej jest utworzenie nowego zasobu usługi Mowa.
Jeśli zasób usługi Mowa zawiera wiele skojarzonych modeli niestandardowych i projektów utworzonych za pośrednictwem usługi Speech Studio, zdecydowanie zalecamy wypróbowanie konfiguracji z zasobem testowym przed zmodyfikowaniem zasobu używanego w środowisku produkcyjnym.
Aby utworzyć niestandardową nazwę domeny przy użyciu witryny Azure Portal, wykonaj następujące kroki:
Przejdź do witryny Azure Portal i zaloguj się na swoje konto platformy Azure.
Wybierz wymagany zasób usługi Mowa.
W grupie Zarządzanie zasobami w okienku po lewej stronie wybierz pozycję Sieć.
Na karcie Zapory i sieci wirtualne wybierz pozycję Generuj niestandardową nazwę domeny. Zostanie wyświetlony nowy panel po prawej stronie z instrukcjami tworzenia unikatowej niestandardowej poddomeny dla zasobu.
W panelu Generuj niestandardową nazwę domeny wprowadź niestandardową nazwę domeny. Pełna domena niestandardowa będzie wyglądać następująco:
https://{your custom name}.cognitiveservices.azure.com
.Pamiętaj, że po utworzeniu niestandardowej nazwy domeny nie można jej zmienić.
Po wprowadzeniu niestandardowej nazwy domeny wybierz pozycję Zapisz.
Po zakończeniu operacji w grupie Zarządzanie zasobami wybierz pozycję Klucze i punkt końcowy. Upewnij się, że nowa nazwa punktu końcowego zasobu rozpoczyna się w następujący sposób:
https://{your custom name}.cognitiveservices.azure.com
.
Przypisywanie ról
W przypadku uwierzytelniania firmy Microsoft z zasobami usługi Mowa należy przypisać rolę współautora mowy usług Cognitive Services lub użytkownika usługi Mowa w usługach Cognitive Services.
Role można przypisać do użytkownika lub aplikacji przy użyciu witryny Azure Portal lub programu PowerShell.
Uzyskiwanie tokenu dostępu Microsoft Entra
Aby uzyskać token dostępu firmy Microsoft Entra w języku C#, użyj biblioteki klienta tożsamości platformy Azure.
Oto przykład użycia tożsamości platformy Azure do uzyskania tokenu dostępu firmy Microsoft Entra z przeglądarki interaktywnej:
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;
Uwaga
Kontekst tokenu musi być ustawiony na "https://cognitiveservices.azure.com/.default".
Aby uzyskać token dostępu firmy Microsoft Entra w języku C++, użyj biblioteki klienta tożsamości platformy Azure.
Oto przykład użycia tożsamości platformy Azure w celu uzyskania tokenu dostępu firmy Microsoft Entra z identyfikatorem dzierżawy, identyfikatorem klienta i poświadczeniami wpisu tajnego klienta:
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());
Uwaga
Kontekst tokenu musi być ustawiony na "https://cognitiveservices.azure.com/.default".
Aby uzyskać token dostępu firmy Microsoft Entra w języku Java, użyj biblioteki klienta tożsamości platformy Azure.
Oto przykład użycia tożsamości platformy Azure do uzyskania tokenu dostępu firmy Microsoft Entra z przeglądarki:
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();
Uwaga
Kontekst tokenu musi być ustawiony na "https://cognitiveservices.azure.com/.default".
Aby uzyskać token dostępu firmy Microsoft Entra w języku Python, użyj biblioteki klienta tożsamości platformy Azure.
Oto przykład użycia tożsamości platformy Azure do uzyskania tokenu dostępu firmy Microsoft Entra z przeglądarki interaktywnej:
from azure.identity import InteractiveBrowserCredential
ibc = InteractiveBrowserCredential()
aadToken = ibc.get_token("https://cognitiveservices.azure.com/.default")
Znajdź przykłady, które pobierają token dostępu firmy Microsoft Entra w przykładach kodu Platforma tożsamości Microsoft.
W przypadku języków programowania, w których biblioteka klienta Platforma tożsamości Microsoft jest niedostępna, można bezpośrednio zażądać tokenu dostępu.
Pobieranie identyfikatora zasobu usługi Mowa
Potrzebujesz identyfikatora zasobu usługi Mowa, aby wykonywać wywołania zestawu SDK przy użyciu uwierzytelniania firmy Microsoft Entra.
Uwaga
W przypadku rozpoznawania intencji użyj identyfikatora zasobu przewidywania usługi LUIS.
Aby uzyskać identyfikator zasobu w witrynie Azure Portal:
- Przejdź do witryny Azure Portal i zaloguj się na swoje konto platformy Azure.
- Wybierz zasób usługi Mowa.
- W grupie Zarządzanie zasobami w okienku po lewej stronie wybierz pozycję Właściwości.
- Kopiowanie identyfikatora zasobu
Tworzenie obiektu konfiguracji zestawu SPEECH SDK
Za pomocą tokenu dostępu firmy Microsoft Entra można teraz utworzyć obiekt konfiguracji zestawu Speech SDK.
Metoda podawania tokenu i metoda konstruowania odpowiedniego obiektu zestawu SPEECH SDK Config
różni się w zależności od używanego obiektu.
SpeechRecognizer, SpeechSynthesizer, IntentRecognizer, ConversationTranscriber
W przypadku SpeechRecognizer
obiektów , ConversationTranscriber
SpeechSynthesizer
IntentRecognizer
, skompiluj token autoryzacji na podstawie identyfikatora zasobu i tokenu dostępu Firmy Microsoft Entra, a następnie użyj go do utworzenia SpeechConfig
obiektu.
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);
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);
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);
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)
TranslationRecognizer
W przypadku elementu TranslationRecognizer
utwórz token autoryzacji na podstawie identyfikatora zasobu i tokenu dostępu Firmy Microsoft Entra, a następnie użyj go do utworzenia SpeechTranslationConfig
obiektu.
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 = SpeechTranslationConfig.FromAuthorizationToken(authorizationToken, region);
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);
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;
SpeechTranslationConfig translationConfig = SpeechTranslationConfig.fromAuthorizationToken(authorizationToken, region);
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
translationConfig = SpeechTranslationConfig(auth_token=authorizationToken, region=region)
VoiceProfileClient
Aby użyć VoiceProfileClient
uwierzytelniania z usługą Microsoft Entra, użyj nazwy domeny niestandardowej utworzonej powyżej.
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);
Zestaw VoiceProfileClient
SPEECH SDK dla języka Python nie jest dostępny.
Uwaga
Element ConversationTranslator
nie obsługuje uwierzytelniania entra firmy Microsoft.