Autenticação do Microsoft Entra com o SDK de Fala
Ao usar o SDK de Fala para acessar o serviço de Fala, há três métodos de autenticação disponíveis: chaves de serviço, um token baseado em chave e ID do Microsoft Entra. Este artigo descreve como configurar um recurso de fala e criar um objeto de configuração do SDK de fala para usar a ID do Microsoft Entra para autenticação.
Este artigo mostra como usar a autenticação do Microsoft Entra com o SDK de fala. Sabe como:
- Criar um recurso de Fala
- Configurar o recurso de Fala para autenticação do Microsoft Entra
- Obter um de acesso do Microsoft Entra
- Crie o objeto de configuração SDK apropriado.
Para saber mais sobre os tokens de acesso do Microsoft Entra, incluindo o tempo de vida do token, visite Tokens do Access na plataforma de identidade da Microsoft.
Criar um recurso de Fala
Para criar um recurso de Fala no portal do Azure, consulte este início rápido.
Configurar o recurso de Fala para autenticação do Microsoft Entra
Para configurar seu recurso de fala para autenticação do Microsoft Entra, crie um nome de domínio personalizado e atribua funções.
Criar um nome de domínio personalizado
Siga estas etapas para criar um nome de subdomínio personalizado para os serviços de IA do Azure para seu recurso de Fala.
Atenção
Quando você ativa um nome de domínio personalizado, a operação não é reversível. A única maneira de voltar ao nome regional é criar um novo recurso de fala.
Se o recurso de Fala tiver muitos modelos personalizados associados e projetos criados por meio do Speech Studio, é altamente recomendável tentar a configuração com um recurso de teste antes de modificar o recurso usado na produção.
Para criar um nome de domínio personalizado usando o portal do Azure, siga estas etapas:
Aceda ao portal do Azure e inicie sessão com a sua conta do Azure.
Selecione o recurso de fala necessário.
No grupo Gerenciamento de Recursos no painel esquerdo, selecione Rede.
Na guia Firewalls e redes virtuais, selecione Gerar nome de domínio personalizado. Um novo painel direito é exibido com instruções para criar um subdomínio personalizado exclusivo para seu recurso.
No painel Gerar nome de domínio personalizado, insira um nome de domínio personalizado. Seu domínio personalizado completo será parecido com:
https://{your custom name}.cognitiveservices.azure.com
.Lembre-se de que, depois de criar um nome de domínio personalizado, ele não pode ser alterado.
Depois de inserir seu nome de domínio personalizado, selecione Salvar.
Após a conclusão da operação, no grupo Gerenciamento de recursos, selecione Chaves e Ponto de extremidade. Confirme se o novo nome do ponto de extremidade do seu recurso começa desta forma:
https://{your custom name}.cognitiveservices.azure.com
.
Atribuir funções
Para autenticação do Microsoft Entra com recursos de Fala, você precisa atribuir a função de Colaborador de Fala dos Serviços Cognitivos ou Usuário de Fala dos Serviços Cognitivos.
Você pode atribuir funções ao usuário ou aplicativo usando o portal do Azure ou o PowerShell.
Obter um de acesso do Microsoft Entra
Para obter um token de acesso do Microsoft Entra em C#, use a Biblioteca de Cliente do Azure Identity.
Veja um exemplo de como usar a Identidade do Azure para obter um token de acesso do Microsoft Entra de um navegador interativo:
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;
Nota
O contexto do token deve ser definido como "https://cognitiveservices.azure.com/.default".
Para obter um token de acesso do Microsoft Entra em C++, use a Biblioteca de Cliente do Azure Identity.
Eis um exemplo de utilização da Identidade do Azure para obter um token de acesso do Microsoft Entra com o seu ID de inquilino, ID de cliente e credenciais de segredo do cliente:
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());
Nota
O contexto do token deve ser definido como "https://cognitiveservices.azure.com/.default".
Para obter um token de acesso do Microsoft Entra em Java, use a Biblioteca de Cliente do Azure Identity.
Veja um exemplo de como usar a Identidade do Azure para obter um token de acesso do Microsoft Entra de um navegador:
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();
Nota
O contexto do token deve ser definido como "https://cognitiveservices.azure.com/.default".
Para obter um token de acesso do Microsoft Entra em Python, use a Biblioteca de Cliente do Azure Identity.
Veja um exemplo de como usar a Identidade do Azure para obter um token de acesso do Microsoft Entra de um navegador interativo:
from azure.identity import InteractiveBrowserCredential
ibc = InteractiveBrowserCredential()
aadToken = ibc.get_token("https://cognitiveservices.azure.com/.default")
Encontre exemplos que obtêm um token de acesso do Microsoft Entra em exemplos de código da plataforma de identidade da Microsoft.
Para linguagens de programação em que uma biblioteca de cliente da plataforma de identidade da Microsoft não está disponível, você pode solicitar diretamente um token de acesso.
Obter o ID do recurso de Fala
Você precisa de sua ID de recurso de fala para fazer chamadas SDK usando a autenticação do Microsoft Entra.
Nota
Para reconhecimento de intenção, use seu ID de recurso de previsão LUIS.
Para obter a ID do recurso no portal do Azure:
- Aceda ao portal do Azure e inicie sessão com a sua conta do Azure.
- Selecione um recurso de fala.
- No grupo Gerenciamento de Recursos no painel esquerdo, selecione Propriedades.
- Copie o ID do recurso
Criar o objeto de configuração do SDK de Fala
Com um token de acesso do Microsoft Entra, agora você pode criar um objeto de configuração do SDK de fala.
O método de fornecimento do token e o método para construir o objeto Speech SDK Config
correspondente varia de acordo com o objeto que você está usando.
SpeechRecognizer, SpeechSynthesizer, IntentRecognizer, ConversationTranscriber
Para SpeechRecognizer
, SpeechSynthesizer
, IntentRecognizer
, ConversationTranscriber
objetos, crie o token de autorização a partir da ID do recurso e do token de acesso do Microsoft Entra e use-o para criar um SpeechConfig
objeto.
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)
TraduçãoRecognizer
Para o TranslationRecognizer
, crie o token de autorização a partir da ID do recurso e do token de acesso do Microsoft Entra e use-o para criar um SpeechTranslationConfig
objeto.
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
Para usar a autenticação com o VoiceProfileClient
Microsoft Entra, use o nome de domínio personalizado criado acima.
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);
O VoiceProfileClient
não está disponível com o Speech SDK for Python.
Nota
O ConversationTranslator
não suporta a autenticação do Microsoft Entra.