Azure Communication Identity client library for JavaScript - versión 2.0.0

La biblioteca de identidad se utiliza para gestionar usuarios y tokens para Azure Communication Services.

Cómo empezar

Prerequisites

Instalar

npm install @azure/communication-identity

Compatibilidad con navegadores

Paquete de JavaScript

Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para obtener más información sobre cómo hacerlo, consulte nuestra documentación de agrupación de .

Conceptos clave

Clients

Proporciona CommunicationIdentityClient métodos para gestionar a los usuarios y sus tokens.

Examples

Authentication

Puedes obtener una clave y/o cadena de conexión desde tu recurso de Servicios de Comunicación en Azure Portal. Una vez que tienes una clave, puedes autenticar la CommunicationIdentityClient con cualquiera de los siguientes métodos:

Crear KeyCredential con AzureKeyCredential antes de inicializar el cliente

import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const key = "<some-key>";
const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new AzureKeyCredential(key);
const client = new CommunicationIdentityClient(endpoint, credential);

Uso de una cadena de conexión

import { CommunicationIdentityClient } from "@azure/communication-identity";

// Example connection string
const connectionString =
  "endpoint=https://contoso.eastus.communications.azure.net/;accesskey=secret";

const client = new CommunicationIdentityClient(connectionString);

Uso de un TokenCredential

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

Si usa una clave para inicializar el cliente, también deberá proporcionar el punto de conexión adecuado. Puede obtener este punto de conexión del recurso de Communication Services en Azure Portal.

Usage

Creando un nuevo usuario

Utiliza el createUser método para crear un nuevo usuario.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

Creación y actualización de un token de usuario

Utiliza el getToken método para emitir o actualizar un token para un usuario existente. El método también incluye una lista de ámbitos de token de comunicación. Las opciones de ámbito incluyen:

  • chat (Usa esto para acceso completo a las APIs de chat)
  • voip (Úsalo para acceso completo a las APIs de llamadas)
  • chat.join (Acceso a las APIs de chat pero sin autorización para crear, eliminar o actualizar hilos de chat)
  • chat.join.limited (Una versión más limitada de chat.join que no permite añadir ni eliminar participantes)
  • voip.join (Acceso a APIs de llamadas pero sin autorización para iniciar nuevas llamadas)
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

const { token } = await client.getToken(user, ["chat"]);

Para actualizar el token de usuario, emite otro token con el mismo usuario.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

let { token } = await client.getToken(user, ["chat"]);

// Refresh the token again
({ token } = await client.getToken(user, ["chat"]));

Creación de un token de usuario con caducidad personalizada

También es posible crear un token de acceso de Identidad de Comunicación personalizando el tiempo de caducidad. El periodo de validez del token debe estar dentro del rango de [60,1440] minutos. Si no se proporciona, se utilizará el valor por defecto de 1440 minutos (24 horas).

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

const tokenOptions = { tokenExpiresInMinutes: 60 };
const { token } = await client.getToken(user, ["chat"], tokenOptions);

Crear un usuario y un token en una sola solicitud

Por comodidad, usa createUserAndToken para crear un nuevo usuario y emitir un token con una sola llamada a una función. Esto se traduce en una única solicitud web en lugar de crear primero un usuario y luego emitir un token.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const { user, token } = await client.createUserAndToken(["chat"]);

Crear un usuario y un token con caducidad personalizada en una sola solicitud

También es posible crear un token de acceso de Identidad de Comunicación personalizando el tiempo de caducidad. El periodo de validez del token debe estar dentro del rango de [60,1440] minutos. Si no se proporciona, se utilizará el valor por defecto de 1440 minutos (24 horas).

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const userAndTokenOptions = { tokenExpiresInMinutes: 60 };
const { user, token } = await client.createUserAndToken(["chat"], userAndTokenOptions);

Revocación de tokens para un usuario

Utiliza el revokeTokens método para revocar todos los tokens emitidos para un usuario.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

// Create user
const user = await client.createUser();

// Later when you want to revoke the user's tokens
await client.revokeTokens(user);

Eliminar un usuario

Utiliza el deleteUser método para eliminar a un usuario.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

// Create user
const user = await client.createUser();

// Later when you want to delete the user
await client.deleteUser(user);

Intercambio del token de acceso de Azure AD de un usuario de Teams por un token de acceso de Comunicación

Usa getTokenForTeamsUser el método para intercambiar un token de acceso a Azure AD de un usuario de Teams por uno nuevo CommunicationAccessToken con un tiempo de caducidad coincidente.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const { token, expiresOn } = await client.getTokenForTeamsUser({
  teamsUserAadToken: "<aad-access-token-of-a-teams-user>",
  clientId: "<cliend-id-of-an-aad-application>",
  userObjectId: "<aad-object-id-of-a-teams-user>",
});

Troubleshooting

Logging

Habilitar el registro puede ayudar a descubrir información útil sobre errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en el @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Pasos siguientes

Eche un vistazo al directorio de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.

Contributing

Si quieres contribuir a esta biblioteca, por favor lee la guía contribución para aprender más sobre cómo construir y probar el código.