Os tokens de acesso permitem que os SDKs dos Serviços de Comunicação do Azure se autentiquem diretamente nos Serviços de Comunicação do Azure como uma identidade específica. Você precisa criar tokens de acesso se quiser que seus usuários participem de uma chamada ou thread de bate-papo em seu aplicativo.
Este artigo descreve como usar os SDKs dos Serviços de Comunicação do Azure para criar identidades e gerenciar seus tokens de acesso. Para casos de uso de produção, recomendamos que você gere tokens de acesso em um serviço do lado do servidor, conforme descrito em Arquitetura de cliente e servidor.
Adicione a extensão dos Serviços de Comunicação do Azure para a CLI do Azure usando o az extension comando.
az extension add --name communication
Iniciar sessão na CLI do Azure
Você precisa entrar na CLI do Azure. Pode iniciar sessão executando o az login comando a partir do terminal e, em seguida, fornecer as suas credenciais.
(Opcional) Usar operações de identidade da CLI do Azure sem passar uma cadeia de conexão
Você pode configurar a variável de ambiente para usar operações AZURE_COMMUNICATION_CONNECTION_STRING de identidade da CLI do Azure sem precisar usar --connection_string para passar na cadeia de conexão. Para configurar uma variável de ambiente, abra uma janela do console e selecione seu sistema operacional nas guias a seguir. Substitua <yourConnectionString> pela cadeia de conexão real.
Depois de adicionar a variável de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisem ler a variável de ambiente, incluindo a janela do console. Por exemplo, se você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.
Edite o seu .zshrce adicione a variável de ambiente:
Depois de adicionar a variável de ambiente, execute source ~/.zshrc a partir da janela da consola para que as alterações entrem em vigor. Se você criou a variável de ambiente com o IDE aberto, talvez seja necessário fechar e reabrir o editor, o IDE ou o shell para acessar a variável.
Edite o seu .bash_profilee adicione a variável de ambiente:
Depois de adicionar a variável de ambiente, execute source ~/.bash_profile a partir da janela da consola para que as alterações entrem em vigor. Se você criou a variável de ambiente com o IDE aberto, talvez seja necessário fechar e reabrir o editor, o IDE ou o shell para acessar a variável.
Armazene seu token de acesso em uma variável de ambiente
Para configurar uma variável de ambiente, abra uma janela do console e selecione seu sistema operacional nas guias abaixo. Substitua <yourAccessToken> pelo seu token de acesso real.
Depois de adicionar a variável de ambiente, talvez seja necessário reiniciar todos os programas em execução que precisem ler a variável de ambiente, incluindo a janela do console. Por exemplo, se você estiver usando o Visual Studio como editor, reinicie o Visual Studio antes de executar o exemplo.
Edite o seu .zshrce adicione a variável de ambiente:
Depois de adicionar a variável de ambiente, execute source ~/.zshrc a partir da janela da consola para que as alterações entrem em vigor. Se você criou a variável de ambiente com o IDE aberto, talvez seja necessário fechar e reabrir o editor, o IDE ou o shell para acessar a variável.
Edite o seu .bash_profilee adicione a variável de ambiente:
Depois de adicionar a variável de ambiente, execute source ~/.bash_profile a partir da janela da consola para que as alterações entrem em vigor. Se você criou a variável de ambiente com o IDE aberto, talvez seja necessário fechar e reabrir o editor, o IDE ou o shell para acessar a variável.
Operações
Criar uma identidade
Para criar tokens de acesso, você precisa de uma identidade. Os Serviços de Comunicação do Azure mantêm um diretório de identidade leve para essa finalidade. Use o user create comando para criar uma nova entrada no diretório com um arquivo Id. A identidade é necessária posteriormente para a emissão de tokens de acesso.
az communication identity user create --connection-string "<yourConnectionString>"
Substitua <yourConnectionString> pela cadeia de conexão.
Criar uma identidade e emitir um token de acesso na mesma solicitação
Execute o comando a seguir para criar uma identidade dos Serviços de Comunicação e emitir um token de acesso para ela ao mesmo tempo. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações com suporte em Autenticar nos Serviços de Comunicação do Azure.
az communication identity token issue --scope chat --connection-string "<yourConnectionString>"
Faça esta substituição no código:
Substitua <yourConnectionString> pela cadeia de conexão.
Emitir token de acesso
Execute o seguinte comando para emitir um token de acesso para sua identidade dos Serviços de Comunicação. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações com suporte em Autenticar nos Serviços de Comunicação do Azure.
az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"
Faça esta substituição no código:
Substitua <yourConnectionString> pela cadeia de conexão.
Substitua <userId> pelo seu userId.
Os tokens de acesso são credenciais de curta duração que precisam ser reemitidas. Não fazer isso pode causar uma interrupção na experiência dos usuários do aplicativo. A expires_on propriedade response indica o tempo de vida do token de acesso.
Emitir token de acesso com vários escopos
Execute o comando a seguir para emitir um token de acesso com vários escopos para sua identidade dos Serviços de Comunicação. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações suportadas no Modelo de identidade.
az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"
Faça esta substituição no código:
Substitua <yourConnectionString> pela cadeia de conexão.
Substitua <userId> pelo seu userId.
Os tokens de acesso são credenciais de curta duração que precisam ser reemitidas. Não fazer isso pode causar uma interrupção na experiência dos usuários do aplicativo. A expires_on propriedade response indica o tempo de vida do token de acesso.
Troque um token de acesso do Microsoft Entra do usuário do Teams por um token de acesso da Identidade de Comunicação
Use o token get-for-teams-user comando para emitir um token de acesso para o usuário do Teams que pode ser usado com os SDKs dos Serviços de Comunicação do Azure.
az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"
Faça esta substituição no código:
Substitua <yourConnectionString> pela cadeia de conexão.
Substitua <yourAadUser> pelo seu userID do Microsoft Entra.
Substitua <yourAadApplication> pelo ID do aplicativo Microsoft Entra.
Substitua <yourAadToken> pelo seu token de acesso Microsoft Entra.
Revogar tokens de acesso
Talvez seja necessário revogar explicitamente um token de acesso. Por exemplo, você faria isso quando os usuários do aplicativo alterassem a senha que usam para se autenticar no seu serviço. O token revoke comando invalida todos os tokens de acesso ativos que foram emitidos para a identidade.
az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"
Faça esta substituição no código:
Substitua <yourConnectionString> pela cadeia de conexão.
Substitua <userId> pelo seu userId.
Excluir uma identidade
Ao excluir uma identidade, você revoga todos os tokens de acesso ativos e impede a emissão adicional de tokens de acesso para a identidade. Isso também remove todo o conteúdo persistente associado à identidade.
az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"
Faça esta substituição no código:
Substitua <yourConnectionString> pela cadeia de conexão.
Em uma janela de prompt de comando, como cmd, PowerShell ou Bash, execute o dotnet new comando para criar um novo aplicativo de console com o nome AccessTokensQuickstart. Este comando cria um projeto Hello World C# simples com um único arquivo de origem, Program.cs.
dotnet new console -o AccessTokensQuickstart
Altere seu diretório para a pasta do aplicativo recém-criada e use o dotnet build comando para compilar seu aplicativo.
cd AccessTokensQuickstart
dotnet build
Uma saída simples Hello World é exibida. Se ele for exibido corretamente, sua configuração está funcionando e você pode começar a escrever seu código dos Serviços de Comunicação do Azure.
Instalar o pacote
Enquanto você ainda estiver no diretório do aplicativo, instale a biblioteca de Identidade dos Serviços de Comunicação do Azure para o pacote .NET usando o dotnet add package comando.
dotnet add package Azure.Communication.Identity
Configurar a estrutura do aplicativo
No diretório do projeto, conclua as seguintes etapas:
Abra o Program.cs ficheiro num editor de texto.
Adicione uma using diretiva para incluir o Azure.Communication.Identity namespace.
Para suportar código assíncrono, atualize a declaração do Main método.
Para começar, execute o seguinte código:
using System;
using Azure;
using Azure.Core;
using Azure.Communication.Identity;
namespace AccessTokensQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Access Tokens Quickstart");
// Quickstart code goes here
}
}
}
Autenticar o cliente
Inicialize CommunicationIdentityClient com sua cadeia de conexão. O código a seguir, que você adiciona ao Main método, recupera a cadeia de conexão para o recurso de uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING.
// This code demonstrates how to retrieve your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
var client = new CommunicationIdentityClient(connectionString);
Como alternativa, você pode separar o ponto de extremidade e a chave de acesso executando o seguinte código:
// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
string endpoint = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ENDPOINT");
string accessKey = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ACCESSKEY");
var client = new CommunicationIdentityClient(new Uri(endpoint), new AzureKeyCredential(accessKey));
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);
Criar uma identidade
Para criar tokens de acesso, você precisa de uma identidade. Os Serviços de Comunicação do Azure mantêm um diretório de identidade leve para essa finalidade. Use o createUser método para criar uma nova entrada no diretório com um arquivo Id. Use a identidade posteriormente para emitir tokens de acesso.
var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Armazene a identidade recebida com mapeamento para os usuários do aplicativo (por exemplo, armazenando-a no banco de dados do servidor de aplicativos).
Emitir um token de acesso
Depois de ter uma identidade dos Serviços de Comunicação, use o GetToken método para emitir um token de acesso para ela. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações suportadas no Modelo de identidade. Você também pode construir uma nova instância de com base em uma representação de cadeia de caracteres de uma identidade do Serviço de communicationUser Comunicação do Azure.
// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
var tokenResponse = await client.GetTokenAsync(identity, scopes: new [] { CommunicationTokenScope.VoIP });
// Get the token from the response
var token = tokenResponse.Value.Token;
var expiresOn = tokenResponse.Value.ExpiresOn;
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Os tokens de acesso são credenciais de curta duração que precisam ser reemitidas. Não fazer isso pode causar uma interrupção da experiência do usuário do seu aplicativo. A expiresOn propriedade indica o tempo de vida do token de acesso.
Definir um tempo de expiração de token personalizado
O tempo de expiração do token padrão é de 24 horas, mas você pode configurá-lo fornecendo um valor entre uma hora e 24 horas para o parâmetro tokenExpiresInopcional. Ao solicitar um novo token, especifique a duração típica esperada de uma sessão de comunicação para o tempo de expiração do token.
// Issue an access token with a validity of an hour and the "voip" scope for an identity
TimeSpan tokenExpiresIn = TimeSpan.FromHours(1);
CommunicationTokenScope[] scopes = new[] { CommunicationTokenScope.VoIP };
var tokenResponse = await client.GetTokenAsync(identity, scopes, tokenExpiresIn);
Criar uma identidade e emitir um token na mesma solicitação
Você pode usar o CreateUserAndTokenAsync método para criar uma identidade dos Serviços de Comunicação e emitir um token de acesso para ela ao mesmo tempo. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações com suporte em Autenticar nos Serviços de Comunicação do Azure.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
var identityAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Atualizar um token de acesso
Para atualizar um token de acesso, passe uma instância do objeto para GetTokenAsynco CommunicationUserIdentifier . Se você armazenou isso Id e precisa criar um novo CommunicationUserIdentifier, você pode fazer isso passando seu armazenado Id para o CommunicationUserIdentifier construtor da seguinte maneira:
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Revogar tokens de acesso
Talvez seja necessário revogar explicitamente um token de acesso. Por exemplo, quando os usuários do aplicativo alteram a senha que usam para se autenticar no seu serviço. O RevokeTokensAsync método invalida todos os tokens de acesso ativos que foram emitidos para a identidade.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Excluir uma identidade
Ao excluir uma identidade, você revoga todos os tokens de acesso ativos e impede a emissão adicional de tokens de acesso para a identidade. Isso também remove todo o conteúdo persistente associado à identidade.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
Executar o código
Quando terminar de criar o token de acesso, você poderá executar o aplicativo a partir do diretório do aplicativo usando o dotnet run comando.
dotnet run
A saída do aplicativo descreve cada ação concluída:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 10/11/2022 7:34:29 AM +00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 10/11/2022 7:34:29 AM +00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
A --save opção lista a biblioteca como uma dependência em seu package.json arquivo.
Configurar a estrutura do aplicativo
Crie um arquivo nomeado issue-access-token.js no diretório do projeto e adicione o seguinte código:
const { CommunicationIdentityClient } = require('@azure/communication-identity');
const main = async () => {
console.log("Azure Communication Services - Access Tokens Quickstart")
// Quickstart code goes here
};
main().catch((error) => {
console.log("Encountered an error");
console.log(error);
})
Autenticar o cliente
Instancie com sua cadeia de CommunicationIdentityClient conexão. O código a seguir, que você adiciona ao Main método, recupera a cadeia de conexão para o recurso de uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING.
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(connectionString);
Como alternativa, você pode separar o ponto de extremidade e a chave de acesso executando o seguinte código:
// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const accessKey = process.env["COMMUNICATION_SERVICES_ACCESSKEY"];
// Create the credential
const tokenCredential = new AzureKeyCredential(accessKey);
// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential)
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);
Criar uma identidade
Para criar tokens de acesso, você precisa de uma identidade. Os Serviços de Comunicação do Azure mantêm um diretório de identidade leve para essa finalidade. Use o createUser método para criar uma nova entrada no diretório com um arquivo Id. Você precisará da identidade posteriormente para emitir tokens de acesso.
let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);
Armazene a identidade recebida com mapeamento para os usuários do seu aplicativo (por exemplo, armazenando-a no banco de dados do servidor de aplicativos).
Emitir um token de acesso
Use o getToken método para emitir um token de acesso para sua identidade dos Serviços de Comunicação. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações suportadas no Modelo de identidade. Você também pode construir uma nova instância de um communicationUser com base em uma representação de cadeia de caracteres da identidade do Serviço de Comunicação do Azure.
// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
let tokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
// Get the token and its expiration date from the response
const { token, expiresOn } = tokenResponse;
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Os tokens de acesso são credenciais de curta duração que precisam ser reemitidas. Não fazer isso pode causar uma interrupção da experiência do usuário do seu aplicativo. A expiresOn propriedade indica o tempo de vida do token de acesso.
Definir um tempo de expiração de token personalizado
O tempo de expiração do token padrão é de 24 horas (1440 minutos), mas você pode configurá-lo fornecendo um valor entre 60 minutos e 1440 minutos para o parâmetro tokenExpiresInMinutesopcional. Ao solicitar um novo token, especifique a duração típica esperada de uma sessão de comunicação para o tempo de expiração do token.
// Issue an access token with a validity of an hour and the "voip" scope for an identity
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let tokenResponse = await identityClient.getToken
(identityResponse, ["voip"], tokenOptions);
Criar uma identidade e emitir um token em uma chamada de método
Você pode usar o createUserAndToken método para criar uma identidade dos Serviços de Comunicação e emitir um token de acesso para ela ao mesmo tempo. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Crie-o com o voip escopo.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
let identityTokenResponse = await identityClient.createUserAndToken(["voip"]);
// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Atualizar um token de acesso
À medida que os tokens expiram, você precisa atualizá-los. Para atualizar os tokens, ligue getToken novamente com a mesma identidade usada para emitir os tokens. Você também precisa fornecer os scopes tokens atualizados.
// Value of identityResponse represents the Azure Communication Services identity stored during identity creation and then used to issue the tokens being refreshed
let refreshedTokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
Revogar tokens de acesso
Talvez seja necessário revogar um token de acesso. Por exemplo, você faz isso quando os usuários do aplicativo alteram a senha que usam para se autenticar no seu serviço. O revokeTokens método invalida todos os tokens de acesso ativos que foram emitidos para a identidade.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Excluir uma identidade
Ao excluir uma identidade, você revoga todos os tokens de acesso ativos e impede a emissão adicional de tokens de acesso para a identidade. Isso também remove todo o conteúdo persistente associado à identidade.
await identityClient.deleteUser(identityResponse);
console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);
Executar o código
Em um prompt do console, vá para o diretório que contém o arquivo issue-access-token.js e execute o seguinte node comando para executar o aplicativo:
node ./issue-access-token.js
A saída do aplicativo descreve cada ação concluída:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Em uma janela de terminal ou prompt de comando, crie um novo diretório para seu aplicativo e abra-o.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Use um editor de texto para criar um arquivo chamado issue-access-tokens.py no diretório raiz do projeto. Em seguida, adicione a estrutura para o programa, incluindo o tratamento básico de exceções. Você adiciona todo o código-fonte a este arquivo.
import os
from datetime import timedelta
from azure.communication.identity import CommunicationIdentityClient, CommunicationUserIdentifier
try:
print("Azure Communication Services - Access Tokens Quickstart")
# Quickstart code goes here
except Exception as ex:
print("Exception:")
print(ex)
Instalar o pacote
Enquanto estiver no diretório do aplicativo, instale o pacote SDK de Identidade dos Serviços de Comunicação do Azure para Python usando o pip install comando.
pip install azure-communication-identity
Autenticar o cliente
Instancie a CommunicationIdentityClient com sua cadeia de conexão. O código a seguir, que você adiciona ao try bloco , recupera a cadeia de conexão para o recurso de uma variável de ambiente chamada COMMUNICATION_SERVICES_CONNECTION_STRING.
# This code demonstrates how to retrieve your connection string
# from an environment variable.
connection_string = os.environ["COMMUNICATION_SERVICES_CONNECTION_STRING"]
# Instantiate the identity client
client = CommunicationIdentityClient.from_connection_string(connection_string)
Para criar tokens de acesso, você precisa de uma identidade. Os Serviços de Comunicação do Azure mantêm um diretório de identidade leve para essa finalidade. Use o create_user método para criar uma nova entrada no diretório com um arquivo Id. A identidade é necessária posteriormente para emitir tokens de acesso.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
Armazene a identidade recebida com mapeamento para os usuários do aplicativo (por exemplo, armazenando-a no banco de dados do servidor de aplicativos).
Emitir um token de acesso
Use o get_token método para emitir um token de acesso para sua identidade dos Serviços de Comunicação. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações suportadas no Modelo de identidade. Você também pode construir uma nova instância de parâmetro CommunicationUserIdentifier com base em uma representação de cadeia de caracteres da identidade do Serviço de Comunicação do Azure.
# Issue an access token with a validity of 24 hours and the "voip" scope for an identity
token_result = client.get_token(identity, ["voip"])
print("\nIssued an access token with 'voip' scope that expires at " + token_result.expires_on + ":")
print(token_result.token)
Os tokens de acesso são credenciais de curta duração que precisam ser reemitidas. Não fazer isso pode causar uma interrupção da experiência do usuário do seu aplicativo. A expires_on propriedade response indica o tempo de vida do token de acesso.
Definir um tempo de expiração de token personalizado
O tempo de expiração do token padrão é de 24 horas, mas você pode configurá-lo fornecendo um valor entre uma hora e 24 horas para o parâmetro token_expires_inopcional. Ao solicitar um novo token, especifique a duração típica esperada de uma sessão de comunicação para o tempo de expiração do token.
# Issue an access token with a validity of an hour and the "voip" scope for an identity
token_expires_in = timedelta(hours=1)
token_result = client.get_token(identity, ["voip"], token_expires_in=token_expires_in)
Criar uma identidade e emitir um token de acesso na mesma solicitação
Você pode usar o create_user_and_token método para criar uma identidade dos Serviços de Comunicação e emitir um token de acesso para ela ao mesmo tempo. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações com suporte em Autenticar nos Serviços de Comunicação do Azure.
# Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
identity_token_result = client.create_user_and_token(["voip"])
# Get the token details from the response
identity = identity_token_result[0]
token = identity_token_result[1].token
expires_on = identity_token_result[1].expires_on
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)
Atualizar um token de acesso
Para atualizar um token de acesso, use o CommunicationUserIdentifier objeto para reemitir um token passando a identidade existente:
# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])
Revogar tokens de acesso
Talvez seja necessário revogar explicitamente um token de acesso. Por exemplo, quando os usuários do aplicativo alteram a senha que usam para se autenticar no seu serviço. O revoke_tokens método invalida todos os tokens de acesso ativos que foram emitidos para a identidade.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Excluir uma identidade
Ao excluir uma identidade, você revoga todos os tokens de acesso ativos e impede a emissão adicional de tokens de acesso para a identidade. Isso também remove todo o conteúdo persistente associado à identidade.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
Executar o código
Em um prompt do console, vá para o diretório que contém o issue-access-tokens.py arquivo e execute o seguinte python comando para executar o aplicativo.
python ./issue-access-tokens.py
A saída gerada descreve cada ação concluída:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Em uma janela de terminal ou prompt de comando, vá para o diretório onde você deseja criar seu aplicativo Java. Para gerar um projeto Java a partir do modelo maven-archetype-quickstart, execute o seguinte código:
Observe que a generate tarefa cria um diretório com o mesmo nome artifactIdde . Neste diretório, o src/main/java diretório contém o código-fonte do projeto, o src/test/java diretório contém a fonte de teste e o pom.xml arquivo é o Project Object Model ou POM do projeto. Este arquivo é usado para parâmetros de configuração do projeto.
Instalar os pacotes dos Serviços de Comunicação
Abra o arquivo no editor de pom.xml texto. Adicione o seguinte elemento de dependência ao grupo de dependências:
Você também pode inicializar o cliente com qualquer cliente HTTP personalizado que implemente a com.azure.core.http.HttpClient interface.
App.java No arquivo, adicione o seguinte código ao main método:
// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
String accessKey = "SECRET";
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(accessKey))
.buildClient();
Em vez de fornecer o ponto de extremidade e a chave de acesso, você pode fornecer toda a cadeia de conexão usando o connectionString() método.
// You can find your connection string from your Communication Services resource in the Azure portal
String connectionString = "<connection_string>";
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
Criar uma identidade
Para criar tokens de acesso, você precisa de uma identidade. Os Serviços de Comunicação do Azure mantêm um diretório de identidade leve para essa finalidade. Use o createUser método para criar uma nova entrada no diretório com um arquivo Id.
CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());
A identidade criada é necessária posteriormente para emitir tokens de acesso. Armazene a identidade recebida com mapeamento para os usuários do seu aplicativo (por exemplo, armazenando-a no banco de dados do servidor de aplicativos).
Emitir um token de acesso
Use o getToken método para emitir um token de acesso para sua identidade dos Serviços de Comunicação. O scopes parâmetro define um conjunto de permissões e funções de token de acesso. Para obter mais informações, consulte a lista de ações suportadas no Modelo de identidade.
No código a seguir, use a variável de usuário que você criou na etapa anterior para obter um token.
// Issue an access token with a validity of 24 hours and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes);
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'voip' scope that expires at: " + expiresAt + ": " + token);
Os tokens de acesso são credenciais de curta duração que precisam ser reemitidas. Não fazer isso pode causar uma interrupção da experiência do usuário do seu aplicativo. A expiresAt propriedade indica o tempo de vida do token de acesso.
Definir um tempo de expiração de token personalizado
O tempo de expiração do token padrão é de 24 horas, mas você pode configurá-lo fornecendo um valor entre uma hora e 24 horas para o parâmetro tokenExpiresInopcional. Ao solicitar um novo token, especifique a duração típica esperada de uma sessão de comunicação para o tempo de expiração do token.
// Issue an access token with a validity of an hour and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
Duration tokenExpiresIn = Duration.ofHours(1);
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes, tokenExpiresIn);
Criar uma identidade e emitir um token em uma solicitação
Como alternativa, você pode usar o método 'createUserAndToken' para criar uma nova entrada no diretório com um token exclusivo Id e emitir um token de acesso ao mesmo tempo.
//Create an identity and issue token with a validity of 24 hours in one call
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(scopes);
CommunicationUserIdentifier user = result.getUser();
System.out.println("\nCreated a user identity with ID: " + user.getId());
AccessToken accessToken = result.getUserToken();
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'chat' scope that expires at: " + expiresAt + ": " + token);
Atualizar um token de acesso
Para atualizar um token de acesso, use o CommunicationUserIdentifier objeto para reemiti-lo:
// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);
Revogar um token de acesso
Talvez seja necessário revogar explicitamente um token de acesso. Por exemplo, você faria isso quando os usuários do aplicativo alterassem a senha que usam para se autenticar no seu serviço. O revokeTokens método invalida todos os tokens de acesso ativos para um usuário específico. No código a seguir, você pode usar o usuário criado anteriormente.
communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());
Excluir uma identidade
Ao excluir uma identidade, você revoga todos os tokens de acesso ativos e impede a emissão adicional de tokens de acesso para a identidade. Isso também remove todo o conteúdo persistente associado à identidade.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
Executar o código
Vá para o diretório que contém o pom.xml arquivo.
Compile o projeto usando o seguinte mvn comando:
mvn compile
Crie o pacote:
mvn package
Execute o seguinte mvn comando para executar o aplicativo:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.902864800Z:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'chat' scope that expires at 2022-10-11T07:34:29.902864800Z:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Adicione uma nova etapa em seu fluxo de trabalho usando o conector de Identidade dos Serviços de Comunicação do Azure. Conclua estas etapas no Power Automate com o fluxo do Power Automate aberto no modo de edição .
Abra o designer. Na etapa em que você deseja adicionar a nova ação, selecione Nova etapa. Como alternativa, para adicionar a nova ação entre as etapas, passe o mouse sobre a seta entre essas etapas, selecione o sinal de adição (+) e selecione Adicionar uma ação.
Na caixa de pesquisa Escolha uma operação, insira Identidade dos Serviços de Comunicação. Na lista de ações, selecione Criar um usuário.
Forneça a cadeia de conexão. Você pode encontrá-lo no portal do Microsoft Azure, dentro do seu Recurso de Serviço de Comunicação do Azure. Selecione a opção Teclas no menu do painel esquerdo para visualizar a Cadeia de conexão.
Forneça um nome de conexão.
Clique em Criar
Essa ação gera um ID de usuário, que é uma identidade de usuário dos Serviços de Comunicação.
Além disso, se você clicar em Mostrar opções avançadas e selecionar Escopo do token, a ação também gerará um token de acesso e seu tempo de expiração com o escopo especificado.
Emitir um token de acesso de usuário
Depois de ter uma identidade dos Serviços de Comunicação, você pode emitir um token de acesso. Conclua os seguintes passos:
Adicione uma nova ação e insira Identidade dos Serviços de Comunicação na caixa de pesquisa. Na lista de ações, selecione Emitir um token de acesso de usuário.
Agora você pode usar a saída de ID de usuário da etapa anterior Criar um usuário .
O sistema gera um token de acesso e seu tempo de expiração com o escopo especificado.
Revogar tokens de acesso de usuário
Depois de ter uma identidade dos Serviços de Comunicação, você pode usar a ação Emitir um token de acesso de usuário para revogar um token de acesso. Conclua as seguintes etapas:
Adicione uma nova ação e insira Identidade dos Serviços de Comunicação na caixa de pesquisa. Na lista de ações, selecione Revogar tokens de acesso do usuário.
Especifique o ID do Utilizador.
O sistema revoga todos os tokens de acesso do usuário para o usuário especificado, não há saídas para essa ação.
Eliminar um utilizador
Depois de ter uma identidade dos Serviços de Comunicação, você pode usar a ação Emitir um token de acesso de usuário para excluir um token de acesso. Conclua os seguintes passos:
Adicione uma nova ação e insira Identidade dos Serviços de Comunicação na caixa de pesquisa. Na lista de ações, selecione Excluir um usuário.
Especifique o ID do Utilizador.
O sistema remove o usuário e revoga todos os tokens de acesso do usuário para o usuário especificado, não há saídas para esta ação.
Teste seu aplicativo lógico
Para iniciar manualmente o fluxo de trabalho, na barra de ferramentas do designer, selecione Executar. O fluxo de trabalho cria um usuário, emite um token de acesso para esse usuário, remove-o e exclui o usuário.
Para obter mais informações, consulte como executar seu fluxo de trabalho. Você pode verificar as saídas dessas ações depois que o fluxo de trabalho for executado com êxito.
Usar identidade para monitoramento e métricas
O ID de usuário atua como uma chave primária para logs e métricas coletadas por meio do Azure Monitor. Para exibir todas as chamadas de um usuário, por exemplo, você pode configurar sua autenticação para mapear uma identidade (ou identidades) específica dos Serviços de Comunicação do Azure para um único usuário.
Para limpar e remover uma assinatura dos Serviços de Comunicação, exclua o recurso ou grupo de recursos. A exclusão de um grupo de recursos também exclui quaisquer outros recursos associados a ele. Para obter mais informações, consulte Criar e gerenciar recursos > dos Serviços de Comunicação Limpar recursos.
Este artigo descreveu como criar um usuário e excluir um usuário. Ele também descreve como emitir um token de acesso para um usuário e remover um token de acesso de usuário usando o conector de Identidade dos Serviços de Comunicação do Azure. Para obter mais informações, consulte Azure Communication Services Identity Connector.
Para ver como os tokens são usados por outros conectores, confira como enviar uma mensagem de bate-papo do Power Automate usando os Serviços de Comunicação do Azure.
Demonstre os recursos do Microsoft Entra ID para modernizar soluções de identidade, implementar soluções híbridas e implementar governança de identidade.