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:
Azure portalına gidin ve Azure hesabınızla oturum açın.
Gerekli Konuşma kaynağını seçin.
Sol bölmedeki Kaynak Yönetimi grubunda Ağ'ı seçin.
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.
Ö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.
İş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:
- Azure portalına gidin ve Azure hesabınızla oturum açın.
- Konuşma kaynağı seçin.
- Sol bölmedeki Kaynak Yönetimi grubunda Özellikler'i seçin.
- 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
, , IntentRecognizer
ConversationTranscriber
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
TranslationRecognizer
iç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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin