Aracılığıyla paylaş


Konuşma SDK'sı ile Microsoft Entra kimlik doğrulaması

Konuşma tanıma hizmetine erişmek için Konuşma SDK'sını kullanırken üç kimlik doğrulama yöntemi kullanılabilir: hizmet anahtarları, anahtar tabanlı belirteç ve Microsoft Entra Id. Bu makalede, bir Konuşma kaynağını yapılandırma ve kimlik doğrulaması için Microsoft Entra Id kullanmak üzere konuşma SDK'sı yapılandırma nesnesi oluşturma işlemi açıklanmaktadır.

Bu makalede Konuşma SDK'sı ile Microsoft Entra kimlik doğrulamasının nasıl kullanılacağı gösterilmektedir. Şunları yapmayı öğreneceksiniz:

  • Konuşma kaynağı oluşturma
  • Microsoft Entra kimlik doğrulaması için Konuşma kaynağını yapılandırma
  • Microsoft Entra erişim belirteci alma
  • Uygun SDK yapılandırma nesnesini oluşturun.

Belirteç ömrü de dahil olmak üzere Microsoft Entra erişim belirteçleri hakkında daha fazla bilgi edinmek için Microsoft kimlik platformu Access belirteçleri'ni ziyaret edin.

Konuşma kaynağı oluşturma

Azure portalında Konuşma kaynağı oluşturmak için bkz. Kaynağınızın anahtarlarını alma

Microsoft Entra kimlik doğrulaması için Konuşma kaynağını yapılandırma

Konuşma kaynağınızı Microsoft Entra kimlik doğrulaması için yapılandırmak için özel bir etki alanı adı oluşturun ve roller atayın.

Özel etki alanı adı oluşturma

Konuşma kaynağınız için Azure AI hizmetleri için özel bir alt etki alanı adı oluşturmak için bu adımları izleyin.

Dikkat

Özel bir etki alanı adını açtığınızda, işlem geri alınamaz. Bölgesel ada geri dönmenin tek yolu yeni bir Konuşma kaynağı oluşturmaktır.

Konuşma kaynağınızda Speech Studio aracılığıyla oluşturulmuş çok sayıda ilişkili özel model ve proje varsa, üretimde kullanılan kaynağı değiştirmeden önce yapılandırmayı bir test kaynağıyla denemenizi kesinlikle öneririz.

Azure portalını kullanarak özel etki alanı adı oluşturmak için şu adımları izleyin:

  1. Azure portalına gidin ve Azure hesabınızla oturum açın.

  2. Gerekli Konuşma kaynağını seçin.

  3. Sol bölmedeki Kaynak Yönetimi grubunda Ağ'ı seçin.

  4. Güvenlik duvarları ve sanal ağlar sekmesinde Özel Etki Alanı Adı Oluştur'a tıklayın. Kaynağınız için benzersiz bir özel alt etki alanı oluşturma yönergelerini içeren yeni bir sağ panel görüntülenir.

  5. Özel Etki Alanı Adı Oluştur paneline özel bir etki alanı adı girin. Tam özel etki alanınız şöyle görünür: https://{your custom name}.cognitiveservices.azure.com.

    Özel bir etki alanı adı oluşturduktan sonra değiştirilemeyeceğini unutmayın.

    Özel etki alanı adınızı girdikten sonra Kaydet'i seçin.

  6. İşlem tamamlandıktan sonra Kaynak yönetimi grubunda Anahtarlar ve Uç Nokta'yı seçin. Kaynağınızın yeni uç nokta adının şu şekilde başladığını onaylayın: https://{your custom name}.cognitiveservices.azure.com.

Rol atama

Konuşma kaynaklarıyla Microsoft Entra kimlik doğrulaması için Bilişsel Hizmetler Konuşma Katılımcısı veya Bilişsel Hizmetler Konuşma Kullanıcısı rolünü atamanız gerekir.

Azure portalını veya PowerShell'i kullanarak kullanıcıya veya uygulamaya rol atayabilirsiniz.

Microsoft Entra erişim belirteci alma

C# dilinde bir Microsoft Entra erişim belirteci almak için Azure Kimlik İstemci Kitaplığı'nı kullanın.

Etkileşimli bir tarayıcıdan Microsoft Entra erişim belirtecini almak için Azure Identity'i kullanma örneği aşağıda verilmişti:

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;

Belirteç bağlamı "https://cognitiveservices.azure.com/.default"" olarak ayarlanmalıdır.

C++ dilinde bir Microsoft Entra erişim belirteci almak için Azure Identity İstemci Kitaplığı'nı kullanın.

Kiracı kimliğiniz, istemci kimliğiniz ve gizli anahtar kimlik bilgilerinizle Microsoft Entra erişim belirteci almak için Azure Identity'i kullanma örneği aşağıda verilmiştir:

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

Belirteç bağlamı "https://cognitiveservices.azure.com/.default"" olarak ayarlanmalıdır.

Java'da Microsoft Entra erişim belirteci almak için Azure Kimlik İstemci Kitaplığı'nı kullanın.

Bir tarayıcıdan Microsoft Entra erişim belirteci almak için Azure Identity'yi kullanma örneği aşağıda verilmişti:

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

Belirteç bağlamı "https://cognitiveservices.azure.com/.default"" olarak ayarlanmalıdır.

Python'da Microsoft Entra erişim belirteci almak için Azure Kimlik İstemci Kitaplığı'nı kullanın.

Etkileşimli bir tarayıcıdan Microsoft Entra erişim belirtecini almak için Azure Identity'i kullanma örneği aşağıda verilmişti:

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

Microsoft kimlik platformu kod örneklerinde Microsoft Entra erişim belirteci alan örnekleri bulun.

Microsoft kimlik platformu istemci kitaplığının kullanılamadığı programlama dilleri için doğrudan erişim belirteci isteyebilirsiniz.

Konuşma kaynağı kimliğini alma

Microsoft Entra kimlik doğrulamasını kullanarak SDK çağrıları yapmak için Konuşma kaynağı kimliğiniz gerekir.

Not

Amaç Tanıma için LUIS Tahmin kaynak kimliğinizi kullanın.

Azure portalında kaynak kimliğini almak için:

  1. Azure portalına gidin ve Azure hesabınızla oturum açın.
  2. Konuşma kaynağı seçin.
  3. Sol bölmedeki Kaynak Yönetimi grubunda Özellikler'i seçin.
  4. Kaynak Kimliğini Kopyalama

Konuşma SDK'sı yapılandırma nesnesi oluşturma

Microsoft Entra erişim belirteci ile artık bir Konuşma SDK'sı yapılandırma nesnesi oluşturabilirsiniz.

Belirteci sağlama yöntemi ve karşılık gelen Konuşma SDK'sı Config nesnesini oluşturma yöntemi, kullandığınız nesneye göre değişir.

SpeechRecognizer, SpeechSynthesizer, IntentRecognizer, ConversationTranscriber

, SpeechSynthesizer, , IntentRecognizerConversationTranscriber nesneleri içinSpeechRecognizer, kaynak kimliğinden ve Microsoft Entra erişim belirtecinden yetkilendirme belirtecini derleyin ve bir nesne oluşturmak SpeechConfig için kullanın.

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

TranslationRecognizeriçin kaynak kimliğinden ve Microsoft Entra erişim belirtecinden yetkilendirme belirtecini derleyin ve ardından bunu kullanarak bir SpeechTranslationConfig nesne oluşturun.

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)

DialogServiceConnector

DialogServiceConnection nesnesi için, kaynak kimliğinden ve Microsoft Entra erişim belirtecinden yetkilendirme belirtecini derleyin ve ardından bir veya BotFrameworkConfig nesnesi oluşturmak CustomCommandsConfig için kullanın.

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

DialogServiceConnector şu anda Python'da desteklenmiyor

VoiceProfileClient

öğesini Microsoft Entra kimlik doğrulamasıyla kullanmak VoiceProfileClient için yukarıda oluşturulan özel etki alanı adını kullanın.

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

VoiceProfileClient, Python için Konuşma SDK'sı ile kullanılamaz.

Not

, ConversationTranslator Microsoft Entra kimlik doğrulamasını desteklemez.