Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La biblioteca de identidad se utiliza para gestionar usuarios y tokens para Azure Communication Services.
Cómo empezar
Prerequisites
- Una suscripción de Azure.
- Un recurso de Communication Services existente. Si necesita crear el recurso, puede usar el de Azure Portal de, el azure PowerShello la CLI de Azure .
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.
Proyectos relacionados
Azure SDK for JavaScript