Ověřování Microsoft Entra pomocí sady Speech SDK

Při použití sady Speech SDK pro přístup ke službě Speech jsou k dispozici tři metody ověřování: klíče služby, token založený na klíči a ID Microsoft Entra. Tento článek popisuje, jak nakonfigurovat prostředek služby Speech a vytvořit objekt konfigurace sady Speech SDK pro použití Microsoft Entra ID pro ověřování.

Tento článek ukazuje, jak používat ověřování Microsoft Entra se sadou Speech SDK. Získáte informace pro:

  • Vytvoření prostředku služby Speech
  • Konfigurace prostředku služby Speech pro ověřování Microsoft Entra
  • Získání přístupového tokenu Microsoft Entra
  • Vytvořte odpovídající objekt konfigurace sady SDK.

Další informace o přístupovýchtokench

Vytvoření prostředku služby Speech

Pokud chcete vytvořit prostředek služby Speech na webu Azure Portal, přečtěte si téma Získání klíčů pro váš prostředek.

Konfigurace prostředku služby Speech pro ověřování Microsoft Entra

Pokud chcete nakonfigurovat prostředek služby Speech pro ověřování Microsoft Entra, vytvořte vlastní název domény a přiřaďte role.

Vytvoření vlastního názvu domény

Podle těchto kroků vytvořte vlastní název subdomény pro služby Azure AI pro váš prostředek služby Speech.

Upozornění

Když zapnete vlastní název domény, operace se nedá vrátit zpět. Jediným způsobem, jak se vrátit k názvu oblasti, je vytvořit nový prostředek služby Speech.

Pokud váš prostředek služby Speech obsahuje mnoho přidružených vlastních modelů a projektů vytvořených prostřednictvím sady Speech Studio, důrazně doporučujeme vyzkoušet konfiguraci s testovacím prostředkem, než upravíte prostředek použitý v produkčním prostředí.

Pokud chcete vytvořit vlastní název domény pomocí webu Azure Portal, postupujte takto:

  1. Přejděte na Azure Portal a přihlaste se ke svému účtu Azure.

  2. Vyberte požadovaný prostředek služby Speech.

  3. Ve skupině Správa prostředků v levém podokně vyberte Sítě.

  4. Na kartě Brány firewall a virtuální sítě vyberte Vygenerovat vlastní název domény. Zobrazí se nový pravý panel s pokyny k vytvoření jedinečné vlastní subdomény pro váš prostředek.

  5. Na panelu Generovat vlastní název domény zadejte vlastní název domény. Vaše úplná vlastní doména bude vypadat takto: https://{your custom name}.cognitiveservices.azure.com.

    Mějte na paměti, že po vytvoření vlastního názvu domény ho nelze změnit.

    Po zadání vlastního názvu domény vyberte Uložit.

  6. Po dokončení operace ve skupině pro správu prostředků vyberte Klíče a koncový bod. Ověřte, že nový název koncového bodu vašeho prostředku začíná tímto způsobem: https://{your custom name}.cognitiveservices.azure.com.

Přiřazení rolí

Pro ověřování Microsoft Entra pomocí prostředků služby Speech je potřeba přiřadit roli přispěvatele řeči služeb Cognitive Services nebo role uživatele služby Cognitive Services Speech.

Role můžete uživateli nebo aplikaci přiřadit pomocí webu Azure Portal nebo PowerShellu.

Získání přístupového tokenu Microsoft Entra

Pokud chcete získat přístupový token Microsoft Entra v jazyce C#, použijte klientskou knihovnu Azure Identity.

Tady je příklad použití služby Azure Identity k získání přístupového tokenu Microsoft Entra z interaktivního prohlížeče:

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;

Kontext tokenu musí být nastaven na "https://cognitiveservices.azure.com/.default".

Pokud chcete získat přístupový token Microsoft Entra v jazyce C++, použijte klientskou knihovnu Azure Identity.

Tady je příklad použití služby Azure Identity k získání přístupového tokenu Microsoft Entra s ID tenanta, ID klienta a přihlašovacími údaji tajného klíče klienta:

const std::string tenantId = "Your Tenant ID";
const std::string clientId = "Your Client ID";
const std::string clientSecret = "Your Client Secret";
const std::string tokenContext = "https://cognitiveservices.azure.com/.default";

Azure::Identity::ClientSecretCredential cred(tenantId,
    clientId,
    clientSecret,
    Azure::Identity::ClientSecretCredentialOptions());

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

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

Kontext tokenu musí být nastaven na "https://cognitiveservices.azure.com/.default".

Pokud chcete získat přístupový token Microsoft Entra v Javě, použijte klientskou knihovnu Azure Identity.

Tady je příklad použití služby Azure Identity k získání přístupového tokenu Microsoft Entra z prohlížeče:

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();

Kontext tokenu musí být nastaven na "https://cognitiveservices.azure.com/.default".

Pokud chcete získat přístupový token Microsoft Entra v Javě, použijte klientskou knihovnu Azure Identity.

Tady je příklad použití služby Azure Identity k získání přístupového tokenu Microsoft Entra z interaktivního prohlížeče:

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

Najděte ukázky, které získají přístupový token Microsoft Entra v ukázkách kódu platformy Microsoft Identity Platform.

V programovacích jazycích, kde není k dispozici klientská knihovna Microsoft Identity Platform, můžete požádat přímo o přístupový token.

Získání ID prostředku služby Speech

K volání sady SDK pomocí ověřování Microsoft Entra potřebujete ID prostředku služby Speech.

Poznámka:

Pro rozpoznávání záměru použijte ID prostředku predikce služby LUIS.

Id prostředku získáte na webu Azure Portal:

  1. Přejděte na Azure Portal a přihlaste se ke svému účtu Azure.
  2. Vyberte prostředek služby Speech.
  3. Ve skupině Správa prostředků v levém podokně vyberte Vlastnosti.
  4. Zkopírování ID prostředku

Vytvoření objektu konfigurace sady Speech SDK

S přístupovým tokenem Microsoft Entra teď můžete vytvořit objekt konfigurace sady Speech SDK.

Metoda poskytnutí tokenu a metoda pro vytvoření odpovídajícího objektu sady Speech SDK Config se liší podle objektu, který používáte.

SpeechRecognizer, SpeechSynthesizer, IntentRecognizer, ConversationTranscriber

Pro SpeechRecognizer, , IntentRecognizerSpeechSynthesizerConversationTranscriber , objekty, sestavení autorizační token z ID prostředku a Microsoft Entra přístupový token a pak ho použít k vytvoření objektu.SpeechConfig

string resourceId = "Your Resource ID";
string aadToken = "Your Azure AD access token";
string region =  "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD access token.
var authorizationToken = $"aad#{resourceId}#{aadToken}";
var speechConfig = SpeechConfig.FromAuthorizationToken(authorizationToken, region);
std::string resourceId = "Your Resource ID";
std::string aadToken = "Your Azure AD access token";
std::string region = "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD 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 AAD 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 AAD access token.
authorizationToken = "aad#" + resourceId + "#" + aadToken.token
speechConfig = SpeechConfig(auth_token=authorizationToken, region=region)

TranslationRecognizer

V případě objektu TranslationRecognizersestavte autorizační token z ID prostředku a přístupového tokenu Microsoft Entra a pak ho použijte k vytvoření objektu SpeechTranslationConfig .

string resourceId = "Your Resource ID";
string aadToken = "Your Azure AD access token";
string region =  "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD access token.
var authorizationToken = $"aad#{resourceId}#{aadToken}";
var speechConfig = SpeechTranslationConfig.FromAuthorizationToken(authorizationToken, region);
std::string resourceId = "Your Resource ID";
std::string aadToken = "Your Azure AD access token";
std::string region = "Your Speech Region";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD 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 AAD 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 AAD access token.
authorizationToken = "aad#" + resourceId + "#" + aadToken.token
translationConfig = SpeechTranslationConfig(auth_token=authorizationToken, region=region)

DialogService Připojení or

DialogServiceConnection V případě objektu sestavte autorizační token z ID prostředku a přístupového tokenu Microsoft Entra a pak ho použijte k vytvoření objektu CustomCommandsConfig nebo objektuBotFrameworkConfig.

string resourceId = "Your Resource ID";
string aadToken = "Your Azure AD access token";
string region =  "Your Speech Region";
string appId = "Your app ID";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD access token.
var authorizationToken = $"aad#{resourceId}#{aadToken}";
var customCommandsConfig = CustomCommandsConfig.FromAuthorizationToken(appId, authorizationToken, region);
std::string resourceId = "Your Resource ID";
std::string aadToken = "Your Azure AD access token";
std::string region = "Your Speech Region";
std::string appId = "Your app Id";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD access token.
auto authorizationToken = "aad#" + resourceId + "#" + aadToken;
auto customCommandsConfig = CustomCommandsConfig::FromAuthorizationToken(appId, authorizationToken, region);
String resourceId = "Your Resource ID";
String region = "Your Region";
String appId = "Your AppId";

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD access token.
String authorizationToken = "aad#" + resourceId + "#" + token;
CustomCommandsConfig dialogServiceConfig = CustomCommandsConfig.fromAuthorizationToken(appId, authorizationToken, region);

V Pythonu se v současné době nepodporuje dialogová služba Připojení

VoiceProfileClient

Pokud chcete použít VoiceProfileClient ověřování Microsoft Entra, použijte název vlastní domény vytvořený výše.

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

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

// You need to include the "aad#" prefix and the "#" (hash) separator between resource ID and AAD access token.
var authorizationToken = $"aad#{resourceId}#{aadToken}";
config.AuthorizationToken = authorizationToken;
std::string customDomainName = "Your Custom Name";
std::string aadToken = "Your Azure AD 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 AAD access token.
auto authorizationToken = "aad#" + resourceId + "#" + aadToken;
speechConfig->SetAuthorizationToken(authorizationToken);
String aadToken = "Your Azure AD 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 AAD access token.
String authorizationToken = "aad#" + resourceId + "#" + token;

speechConfig.setAuthorizationToken(authorizationToken);

Sada VoiceProfileClient Speech SDK pro Python není dostupná.

Poznámka:

Ověřování ConversationTranslator Microsoft Entra nepodporuje.