Compartir vía


Creación y administración de tokens de acceso

Los tokens de acceso permiten que los SDK de Azure Communication Services se autentiquen directamente en Azure Communication Services como una identidad determinada. Debe crear tokens de acceso si desea que los usuarios se unan a una llamada o un subproceso de chat dentro de la aplicación.

En este inicio rápido, aprenderá a usar los SDK de Azure Communication Services para crear identidades y administrar los tokens de acceso. Para los casos de uso de producción, se recomienda generar tokens de acceso en un servicio del lado servidor, tal como se describe en diseño de arquitectura móvil.

Requisitos previos

Configurar el entorno

Adición de la extensión

Agregue la extensión Azure Communication Services para la CLI de Azure mediante el comando az extension.

az extension add --name communication

Inicio de sesión en la CLI de Azure

Deberá iniciar sesión en la CLI de Azure. Puede iniciar sesión mediante la ejecución del az login comando desde el terminal y, a continuación, proporcionar sus credenciales.

(Opcional) Uso de operaciones de identidad de la CLI de Azure sin pasar una cadena de conexión

Puede configurar la variable de entorno AZURE_COMMUNICATION_CONNECTION_STRING para usar operaciones de identidad de la CLI de Azure sin tener que usar --connection_string para pasar la cadena de conexión. Para configurar una variable de entorno, abra una ventana de la consola y seleccione el sistema operativo en las pestañas siguientes. Reemplace <yourConnectionString> por la cadena de conexión real.

Abra una ventana de consola y escriba el siguiente comando:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

Después de agregar la variable de entorno, es posible que tenga que reiniciar los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de la consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Almacenamiento del token de acceso en una variable de entorno

Para configurar una variable de entorno, abra una ventana de consola y seleccione el sistema operativo en las pestañas siguientes. Reemplace <yourAccessToken> con su token de acceso real.

Abra una ventana de consola y escriba el siguiente comando:

setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"

Después de agregar la variable de entorno, es posible que tenga que reiniciar los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de la consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Operaciones

Creación de una identidad

Para crear tokens de acceso, necesita una identidad. Azure Communication Services mantiene un directorio de identidad ligero para este propósito. Use el comando user create para crear una nueva entrada en el directorio con un Id único. La identidad es necesaria más adelante para emitir tokens de acceso.

az communication identity user create --connection-string "<yourConnectionString>"
  • Reemplace <yourConnectionString> por la cadena de conexión.

Creación de una identidad y emisión de un token de acceso en la misma solicitud

Ejecute el siguiente comando para crear una identidad de Communication Services y, a la vez, emitir un token de acceso para ella. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, vea la lista de acciones admitidas en Autenticación para Azure Communication Services.

az communication identity token issue --scope chat --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.

Emitir tokens de acceso

Ejecute el siguiente comando para emitir un token de acceso para la identidad de Communication Services. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, vea la lista de acciones admitidas en Autenticación para Azure Communication Services.

az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.
  • Reemplace <userId> por su userId.

Los tokens de acceso son credenciales de corta duración que deben volver a emitirse. Si no lo hace, podría provocar una interrupción de la experiencia de los usuarios de la aplicación. La propiedad de respuesta expires_on indica la duración del token de acceso.

Emisión del token de acceso con varios ámbitos

Ejecute el siguiente comando para emitir un token de acceso con varios ámbitos para la identidad de Communication Services. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, consulte la lista de acciones admitidas en el modelo de identidad.

az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.
  • Reemplace <userId> por su userId.

Los tokens de acceso son credenciales de corta duración que deben volver a emitirse. Si no lo hace, podría provocar una interrupción de la experiencia de los usuarios de la aplicación. La propiedad de respuesta expires_on indica la duración del token de acceso.

Intercambio de un token de acceso de Microsoft Entra del usuario de Teams por un token de acceso de identidad comunicación

Use el comando token get-for-teams-user para emitir un token de acceso para el usuario de Teams que se puede usar con los SDK de Azure Communication Services.

az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.
  • Reemplace <yourAadUser> por su identificador de usuario de Microsoft Entra.
  • Reemplace <yourAadApplication> por el identificador de aplicación de Microsoft Entra.
  • Reemplace <yourAadToken> por su token de acceso de Microsoft Entra.

Revocación de los tokens de acceso

Es posible que tenga que revocar explícitamente un token de acceso. Por ejemplo, lo haría cuando los usuarios de la aplicación cambien la contraseña que usan para autenticarse en el servicio. El comando token revoke invalida todos los tokens de acceso activos emitidos para la identidad.

az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.
  • Reemplace <userId> por su userId.

Eliminación de una identidad

Cuando se elimina una identidad, se revocan todos los tokens de acceso activos y se impide la emisión adicional de tokens de acceso para la identidad. También quita todo el contenido conservado asociado a la identidad.

az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.
  • Reemplace <userId> por su userId.

Requisitos previos

Código final

Busque el código finalizado en GitHub.

Configurar el entorno

Creación de una aplicación de C#

  1. En una ventana del símbolo del sistema, como cmd, PowerShell o Bash, ejecute el comando dotnet new para crear una nueva aplicación de consola con el nombre AccessTokensQuickstart. Este comando crea un sencillo proyecto Hola mundo de C# con un solo archivo de origen, Program.cs.

    dotnet new console -o AccessTokensQuickstart
    
  2. Cambie el directorio a la carpeta de la aplicación recién creada y use el comando dotnet build para compilar la aplicación.

    cd AccessTokensQuickstart
    dotnet build
    

    Se muestra una salida de Hello World simple. Si se muestra correctamente, la instalación funciona y puede empezar a escribir el código Azure Communication Services.

Instalar el paquete

En el directorio de aplicaciones, instale el paquete de la biblioteca de identidades de Azure Communication Services para .NET usando el comando dotnet add package.

dotnet add package Azure.Communication.Identity

Instalación del marco de la aplicación

En el directorio del proyecto, complete los pasos siguientes:

  1. Abra el archivo Program.cs en un editor de texto.
  2. Agregue una directiva using para incluir el espacio de nombres Azure.Communication.Identity.
  3. Para admitir código asincrónico, actualice la declaración del método Main.

Para comenzar, ejecute el código siguiente:

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 el cliente

Inicialice CommunicationIdentityClient con la cadena de conexión. El código siguiente, que se agrega al método Main, recupera la cadena de conexión para el recurso de una variable de entorno denominada COMMUNICATION_SERVICES_CONNECTION_STRING.

Para obtener más información, consulte Creación y administración de recursos de Communication Services > Almacenar la cadena de conexión.

// 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, puede separar el punto de conexión y la clave de acceso mediante la ejecución del código siguiente:

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

Si ya ha configurado una aplicación de Microsoft Entra, puede autenticarse mediante Microsoft Entra ID.

TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);

Creación de una identidad

Para crear tokens de acceso, necesita una identidad. Azure Communication Services mantiene un directorio de identidad ligero para este propósito. Use el método createUser para crear una nueva entrada en el directorio con un Id único. Use la identidad más adelante para emitir tokens de acceso.

var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");

Almacene la identidad recibida con la asignación a los usuarios de la aplicación (por ejemplo, almacenándola en la base de datos del servidor de aplicaciones).

Emitir un token de acceso

Después de tener una identidad de Communication Services, use el método GetToken para emitir un token de acceso para ella. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, consulte la lista de acciones admitidas en el modelo de identidad. También puede construir una nueva instancia de communicationUser basada en una representación de cadena de una identidad de Azure Communication Service.

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

Los tokens de acceso son credenciales de corta duración que deben volver a emitirse. Si no lo hace, podría provocar una interrupción de la experiencia de los usuarios de la aplicación. La propiedad expiresOn indica la duración del token de acceso.

Establecimiento de un tiempo de expiración personalizado para el token

El tiempo de expiración del token predeterminado es de 24 horas, pero puede configurarlo proporcionando un valor entre una hora y 24 horas para el parámetro tokenExpiresInopcional. Al solicitar un nuevo token, especifique la longitud típica esperada de una sesión de comunicación para el tiempo de expiración del 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);

Creación de una identidad y emisión de un token en la misma solicitud

Use el método CreateUserAndTokenAsync para crear una identidad de Communication Services y, a la vez, emitir un token de acceso para ella. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, vea la lista de acciones admitidas en Autenticación para Azure Communication Services.

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

Actualización de un token de acceso

Para actualizar un token de acceso, pase una instancia del objeto CommunicationUserIdentifier en GetTokenAsync. Si ha almacenado este Id y necesita crear un objeto CommunicationUserIdentifier, puede hacerlo pasando el Id almacenado al constructor CommunicationUserIdentifier como se indica a continuación:

var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });

Revocación de los tokens de acceso

Es posible que tenga que revocar explícitamente un token de acceso. Por ejemplo, cuando los usuarios de la aplicación cambien la contraseña que usan para autenticarse en el servicio. El método RevokeTokensAsync invalida todos los tokens de acceso activos que fueron emitidos para la identidad.

await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");

Eliminación de una identidad

Cuando se elimina una identidad, se revocan todos los tokens de acceso activos y se impide el problema adicional de tokens de acceso para la identidad. También quita todo el contenido conservado asociado a la identidad.

await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");

Ejecución del código

Cuando termine de crear el token de acceso, puede ejecutar la aplicación desde el directorio de la aplicación mediante el comando dotnet run.

dotnet run

La salida de la aplicación describe cada acción completada:

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

Prerrequisitos

Código final

Busque el código finalizado en GitHub.

Configurar el entorno

Creación de una aplicación Node.js

  1. En una a terminal o una ventana del símbolo del sistema, cree un directorio para la aplicación y ábralo.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Ejecute npm init -y para crear un archivo package.json con la configuración predeterminada.

    npm init -y
    

Instalar el paquete

Use el comando npm install para instalar Identity SDK de Azure Communication Services para JavaScript.

npm install @azure/communication-identity@latest --save

La opción --save muestra la biblioteca como dependencia en el archivo package.json.

Instalación del marco de la aplicación

  1. Cree un archivo denominado issue-access-token.js en el directorio del proyecto y agregue el código siguiente:

    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 el cliente

Cree una instancia CommunicationIdentityClient de con la cadena de conexión. El código siguiente, que se agrega al método Main, recupera la cadena de conexión para el recurso de una variable de entorno denominada COMMUNICATION_SERVICES_CONNECTION_STRING.

Para obtener más información, consulte Creación y administración de recursos de Communication Services > Almacenar la cadena de conexión.

// 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, puede separar el punto de conexión y la clave de acceso mediante la ejecución del código siguiente:

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

Si ya ha configurado una aplicación de Microsoft Entra, puede autenticarse mediante Microsoft Entra ID.

const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);

Creación de una identidad

Para crear tokens de acceso, necesita una identidad. Azure Communication Services mantiene un directorio de identidad ligero para este propósito. Use el método createUser para crear una nueva entrada en el directorio con un Id único. Necesitará la identidad más adelante para emitir tokens de acceso.

let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);

Almacene la identidad recibida con la asignación a los usuarios de la aplicación (por ejemplo, almacenándola en la base de datos del servidor de aplicaciones).

Emitir un token de acceso

Use el método getToken para emitir un token de acceso para la identidad de Communication Services. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, consulte la lista de acciones admitidas en el modelo de identidad. También puede construir una nueva instancia de communicationUser basándose en una representación de cadena de la identidad de Azure Communication Service.

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

Los tokens de acceso son credenciales de corta duración que deben volver a emitirse. Si no lo hace, podría provocar una interrupción de la experiencia de los usuarios de la aplicación. La propiedad expiresOn indica la duración del token de acceso.

Establecimiento de un tiempo de expiración personalizado para el token

El tiempo de expiración del token predeterminado es de 24 horas (1440 minutos), pero puede configurarlo proporcionando un valor entre 60 minutos y 1440 minutos para el parámetro tokenExpiresInMinutesopcional. Al solicitar un nuevo token, especifique la longitud típica esperada de una sesión de comunicación para el tiempo de expiración del 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);

Creación de una identidad y emisión de un token en una llamada de método

Use el método createUserAndToken para crear una identidad de Communication Services y, a la vez, emitir un token de acceso para ella. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Créelo con el ámbito voip.

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

Actualización de un token de acceso

A medida que expiren los tokens, debe actualizarlos. Para actualizar los tokens, llame a getToken de nuevo con la misma identidad que se usa para emitir los tokens. También debe proporcionar los scopes de los tokens actualizados.

// 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"]);

Revocación de los tokens de acceso

Es posible que tenga que revocar un token de acceso. Por ejemplo, lo hace cuando los usuarios de la aplicación cambien la contraseña que usan para autenticarse en el servicio. El método revokeTokens invalida todos los tokens de acceso activos que fueron emitidos para la identidad.

await identityClient.revokeTokens(identityResponse);

console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);

Eliminación de una identidad

Cuando se elimina una identidad, se revocan todos los tokens de acceso activos y se impide el problema adicional de tokens de acceso para la identidad. También quita todo el contenido conservado asociado a la identidad.

await identityClient.deleteUser(identityResponse);

console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);

Ejecución del código

Desde un símbolo del sistema de la consola, vaya al directorio que contiene el archivoissue-access-token.jsy, a continuación, ejecute el siguiente comando node para ejecutar la aplicación:

node ./issue-access-token.js

La salida de la aplicación describe cada acción completada:

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

Requisitos previos

Código final

Busque el código finalizado en GitHub.

Configurar el entorno

Creación de una nueva aplicación de Python

  1. En una a terminal o una ventana del símbolo del sistema, cree un directorio para la aplicación y ábralo.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Use un editor de texto para crear un archivo denominado issue-access-tokens.py en el directorio raíz del proyecto. A continuación, agregue la estructura del programa, incluido un control de excepciones básico. Agregue todo el código fuente a este archivo.

    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 el paquete

En el directorio de aplicaciones, instale Identity SDK de Azure Communication Services para Python con el comando pip install.

pip install azure-communication-identity

Autenticar el cliente

Cree una instancia de un objeto CommunicationIdentityClient con su cadena de conexión. El código siguiente, que se agrega al bloque try, recupera la cadena de conexión para el recurso de una variable de entorno denominada COMMUNICATION_SERVICES_CONNECTION_STRING.

Para obtener más información, consulte Creación y administración de recursos de Communication Services > Almacenar la cadena de conexión.

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

Como alternativa, si ya ha configurado una aplicación de Microsoft Entra, puede autenticarse mediante Microsoft Entra ID.

endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())

Creación de una identidad

Para crear tokens de acceso, necesita una identidad. Azure Communication Services mantiene un directorio de identidad ligero para este propósito. Use el método create_user para crear una nueva entrada en el directorio con un Id único. La identidad es necesaria más adelante para emitir tokens de acceso.

identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])

Almacene la identidad recibida con la asignación a los usuarios de la aplicación (por ejemplo, almacenándola en la base de datos del servidor de aplicaciones).

Emitir un token de acceso

Use el método get_token para emitir un token de acceso para la identidad de Communication Services. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, consulte la lista de acciones admitidas en el modelo de identidad. También puede construir una nueva instancia de parámetro CommunicationUserIdentifier basada en una representación de cadena de la identidad de Azure Communication Service.

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

Los tokens de acceso son credenciales de corta duración que deben volver a emitirse. Si no lo hace, podría provocar una interrupción de la experiencia de los usuarios de la aplicación. La propiedad de respuesta expires_on indica la duración del token de acceso.

Establecimiento de un tiempo de expiración personalizado para el token

El tiempo de expiración del token predeterminado es de 24 horas, pero puede configurarlo proporcionando un valor entre una hora y 24 horas para el parámetro token_expires_inopcional. Al solicitar un nuevo token, especifique la longitud típica esperada de una sesión de comunicación para el tiempo de expiración del 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)

Creación de una identidad y emisión de un token de acceso en la misma solicitud

Use el método create_user_and_token para crear una identidad de Communication Services y, a la vez, emitir un token de acceso para ella. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, vea la lista de acciones admitidas en Autenticación para Azure Communication Services.

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

Actualización de un token de acceso

Para actualizar un token de acceso, use el objeto CommunicationUserIdentifier para volver a emitir un token pasando la identidad 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"])

Revocación de los tokens de acceso

Es posible que tenga que revocar explícitamente un token de acceso. Por ejemplo, cuando los usuarios de la aplicación cambien la contraseña que usan para autenticarse en el servicio. El método revoke_tokens invalida todos los tokens de acceso activos que fueron emitidos para la identidad.

client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])

Eliminación de una identidad

Cuando se elimina una identidad, se revocan todos los tokens de acceso activos y se impide la emisión adicional de tokens de acceso para la identidad. También quita todo el contenido conservado asociado a la identidad.

client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])

Ejecución del código

Desde un símbolo del sistema de la consola, vaya al directorio que contiene el issue-access-tokens.py, a continuación, ejecute el siguiente comando python para ejecutar la aplicación.

python ./issue-access-tokens.py

La salida generada describe cada acción completada:

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

Requisitos previos

Código final

Busque el código finalizado en GitHub.

Configurar el entorno

Creación de una aplicación Java

En una terminal o una ventana del símbolo del sistema, vaya al directorio donde desea crear la aplicación Java. Para generar un proyecto de Java a partir de la plantilla maven-archetype-quickstart, ejecute el código siguiente:

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Observe que la tarea generate crea un directorio con el mismo nombre que artifactId. En este directorio, el directorio src/main/java contiene el código fuente del proyecto, el directorio src/test/java contiene el origen de la prueba y el archivo pom.xml es el modelo de objetos del proyecto o POM. Este archivo se usa para los parámetros de configuración del proyecto.

Instalación de los paquetes de Communication Services

Abra el archivo pom.xml en el editor de texto. Agregue el siguiente elemento de dependencia al grupo de dependencias:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
    <version>[1.4.0,)</version>
</dependency>

Este código indica a Maven que instale el SDK de identidad de Communication Services, que debe usar más adelante.

Instalación del marco de la aplicación

En el directorio del proyecto, complete los pasos siguientes:

  1. Vaya al directorio /src/main/java/com/communication/quickstart.
  2. Abra el archivo App.java en un editor.
  3. Reemplace la instrucción System.out.println("Hello world!");.
  4. Agregue las directivas import.

Use el código siguiente para empezar:

package com.communication.quickstart;

import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.core.credential.*;

import java.io.IOException;
import java.time.*;
import java.util.*;

public class App
{
    public static void main( String[] args ) throws IOException
    {
        System.out.println("Azure Communication Services - Access Tokens Quickstart");
        // Quickstart code goes here
    }
}

Autenticar el cliente

Cree una instancia de CommunicationIdentityClient con la clave de acceso y el punto de conexión del recurso. Para obtener más información, consulte Creación y administración de recursos de Communication Services > Almacenar la cadena de conexión.

También puede iniciar el cliente con cualquier cliente HTTP personalizado que implemente la interfaz com.azure.core.http.HttpClient.

En el archivo App.java, agregue el código siguiente al método main:

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

En lugar de proporcionar el punto de conexión y la clave de acceso, puede proporcionar toda la cadena de conexión mediante el método connectionString().

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

Si ya ha configurado una aplicación de Microsoft Entra, puede autenticarse mediante Microsoft Entra ID.

String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
        .endpoint(endpoint)
        .credential(credential)
        .buildClient();

Creación de una identidad

Para crear tokens de acceso, necesita una identidad. Azure Communication Services mantiene un directorio de identidad ligero para este propósito. Use el método createUser para crear una nueva entrada en el directorio con un Id único.

CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());

La identidad creada es necesaria más adelante para emitir tokens de acceso. Almacene la identidad recibida con la asignación a los usuarios de la aplicación (por ejemplo, almacenándola en la base de datos del servidor de aplicaciones).

Emitir un token de acceso

Use el método getToken para emitir un token de acceso para la identidad de Communication Services. El parámetro scopes define un conjunto de roles y permisos de token de acceso. Para obtener más información, consulte la lista de acciones admitidas en el modelo de identidad.

En el código siguiente, use la variable de usuario que creó en el paso anterior para obtener un 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);

Los tokens de acceso son credenciales de corta duración que deben volver a emitirse. Si no lo hace, podría provocar una interrupción de la experiencia de los usuarios de la aplicación. La propiedad expiresAt indica la duración del token de acceso.

Establecimiento de un tiempo de expiración personalizado para el token

El tiempo de expiración del token predeterminado es de 24 horas, pero puede configurarlo proporcionando un valor entre una hora y 24 horas para el parámetro tokenExpiresInopcional. Al solicitar un nuevo token, especifique la longitud típica esperada de una sesión de comunicación para el tiempo de expiración del 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);

Creación de una identidad y emisión de un token en una solicitud

Como alternativa, puede usar el método "createUserAndToken" para crear una nueva entrada en el directorio con un único Id y emitir un token de acceso al mismo tiempo.

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

Actualización de un token de acceso

Para actualizar un token de acceso, use el objeto CommunicationUserIdentifier para volver a emitirlo:

// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);

Revocación de un token de acceso

Es posible que tenga que revocar explícitamente un token de acceso. Por ejemplo, lo haría cuando los usuarios de la aplicación cambien la contraseña que usan para autenticarse en el servicio. El método revokeTokens invalida todos los tokens de acceso activos para un usuario determinado. En el código siguiente, puede usar el usuario creado anteriormente.

communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());

Eliminación de una identidad

Cuando se elimina una identidad, se revocan todos los tokens de acceso activos y se impide la emisión adicional de tokens de acceso para la identidad. También quita todo el contenido conservado asociado a la identidad.

communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());

Ejecución del código

  1. Vaya al directorio que contiene el archivo pom.xml.

  2. Compile el proyecto utilizando el siguiente comando mvn:

    mvn compile
    
  3. compile el paquete:

    mvn package
    
  4. Ejecute el siguiente comando mvn para ejecutar la aplicación:

    mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
    

La salida describe cada acción completada:

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

Requisitos previos

Creación de los tokens de acceso

  1. En Azure Portal, vaya a la hoja Identidades y tokens de acceso de usuario en el recurso de Communication Services.

  2. Elija el ámbito de los tokens de acceso. Puede elegir ninguno, uno o varios servicios.

  3. Seleccione Generar.

    Recorte de pantalla que muestra los ámbitos de los tokens de identidad y acceso donde se selecciona Generar.

    El sistema genera una identidad y el token de acceso de usuario correspondiente.

  4. Copie estas cadenas y úselas en las aplicaciones de ejemplo y otros escenarios de prueba.

    Recorte de pantalla que muestra la identidad y los tokens de acceso con fecha de expiración

Requisitos previos

Crear usuario

Agregue un nuevo paso en el flujo de trabajo mediante el conector de identidad de Azure Communication Services. Complete estos pasos en Power Automate con el flujo de Power Automate abierto en modo de edición.

  1. Abra el diseñador. En el paso en el que quiera agregar la nueva acción, seleccione Nuevo paso. Como alternativa, para agregar la nueva acción entre pasos, mantenga el puntero sobre la flecha entre esos pasos, seleccione el signo más (+) y seleccione Agregar una acción.

  2. En la casilla Seleccionar búsqueda de operaciones, introduzca Identidad de Communication Services. En la lista de acciones, seleccione Crear un usuario.

    Captura de pantalla que muestra la acción Crear usuario del conector de identidad de Azure Communication Services.

  3. Proporcionar la cadena de conexión. Puede encontrarlo en Microsoft Azure Portal, en el recurso de Azure Communication Service. Seleccione la opción Claves en el menú del panel izquierdo para ver la cadena de conexión.

    Captura de pantalla que muestra la página Claves en el recurso de Azure Communication Services.

  4. Proporcione un nombre de conexión.

  5. Haga clic en Crear

    Esta acción genera un identificador de usuario, que es una identidad de usuario de Communication Services. Además, si hace clic en Mostrar opciones avanzadas y selecciona Ámbito de token, la acción también genera un token de acceso y su hora de expiración con el ámbito especificado.

    Captura de pantalla que muestra la acción Crear usuario del conector de Azure Communication Services.

    Captura de pantalla que muestra las opciones avanzadas de la acción Crear usuario del conector de Azure Communication Services.

Emisión de un token de acceso de usuario

Después de tener una identidad de Communication Services, puede emitir un token de acceso. Complete los pasos siguientes:

  1. Agregar una acción nueva e ingresar la identidad de Communication Services en el cuadro de búsqueda. En la lista de acciones, seleccione Emitir un token de acceso de usuario.

    Captura de pantalla que muestra la acción Emitir token de acceso del conector de identidad de Azure Communication Services.

  2. Ahora puede usar la salida del id. de usuario del paso anterior Crear un usuario.

  3. Especifique el ámbito del token: VoIP o chat. Obtenga más información sobre los tokens y la autenticación.

    Captura de pantalla que muestra la acción Emitir token de acceso del conector de identidad de Azure Communication Services, que especifica el token de acceso.

El sistema genera un token de acceso y su tiempo de expiración con el ámbito especificado.

Revocación de tokens de acceso de usuario

Después de tener una identidad de Communication Services, puede usar la acción Emitir un token de acceso de usuario para revocar un token de acceso. Complete los pasos siguientes:

  1. Agregar una acción nueva e ingresar la identidad de Communication Services en el cuadro de búsqueda. En la lista de acciones, seleccione Revocar tokens de acceso de usuario.

    Captura de pantalla que muestra la acción Revocar token de acceso del conector de identidad de Azure Communication Services.

  2. Especificar el id. de usuario.

    Captura de pantalla que muestra la entrada de la acción Revocar token de acceso del conector de identidad de Azure Communication Services.

El sistema revoca todos los tokens de acceso del usuario especificado, no hay salidas para esta acción.

Eliminar un usuario

Después de tener una identidad de Communication Services, puede usar la acción Emitir un token de acceso de usuario para eliminar un token de acceso. Complete los pasos siguientes:

  1. Agregar una acción nueva e ingresar la identidad de Communication Services en el cuadro de búsqueda. En la lista de acciones, seleccione Eliminar un usuario.

    Captura de pantalla que muestra la acción Eliminar usuario del conector de identidad de Azure Communication Services.

  2. Especificar el id. de usuario.

    Captura de pantalla que muestra la entrada de la acción Eliminar usuario del conector de identidad de Azure Communication Services.

El sistema quita el usuario y revoca todos los tokens de acceso del usuario especificado, no hay salidas para esta acción.

Comprobación de la aplicación lógica

Para iniciar manualmente el flujo de trabajo, seleccione Ejecutar en la barra de herramientas del diseñador. El flujo de trabajo crea un usuario, emite un token de acceso para ese usuario y, a continuación, lo quita y elimina al usuario.

Para obtener más información, consulte Cómo ejecutar el flujo de trabajo. Puede comprobar las salidas de estas acciones después de que el flujo de trabajo se ejecute correctamente.

Uso de la identidad para la supervisión y las métricas

El id. de usuario actúa como una clave principal para los registros y las métricas recopilados a través de Azure Monitor. Para ver todas las llamadas de un usuario, por ejemplo, puede configurar la autenticación para asignar una identidad específica de Azure Communication Services (o identidades) a un único usuario.

Para más información, vea:

Limpieza de recursos

Si quiere limpiar y quitar una suscripción de Communication Services, elimine el recurso o el grupo de recursos. Al eliminar un grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él. Para más información, consulte Inicio rápido: Creación y administración de recursos de Communication Services > Limpieza de recursos.

Para limpiar el flujo de trabajo de la aplicación lógica y los recursos relacionados, consulte Creación de un flujo de trabajo de aplicación lógica de consumo de ejemplo mediante Azure Portal > Limpieza de recursos.

Pasos siguientes

En este artículo se describe cómo crear un usuario y eliminar un usuario. También se describe cómo emitir un token de acceso a un usuario y quitar un token de acceso de usuario mediante el conector de identidad de Azure Communication Services. Para más información, consulte Conector de identidad de Azure Communication Services.

Para ver cómo otros conectores usan los tokens, consulte cómo enviar un mensaje de chat desde Power Automate mediante Azure Communication Services.

Para más información sobre cómo enviar un correo electrónico mediante el conector de correo electrónico de Azure Communication Services, consulte Envío de mensajes de correo electrónico en Power Automate con Azure Communication Services.