Biblioteca cliente Azure Communication Identity para JavaScript - versão 2.0.0

A biblioteca de identidade é usada para gerenciar usuários e tokens para o Serviços de Comunicação do Azure.

Introdução

Prerequisites

  • Uma assinatura do Azure.
  • Um recurso existente dos Serviços de Comunicação. Se você precisar criar o recurso, poderá usar o Portal do Azure, o do Azure PowerShell ou a CLI do Azure .

Instalar

npm install @azure/communication-identity

Suporte ao navegador

Pacote JavaScript

Para usar essa biblioteca de clientes no navegador, primeiro você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento .

Conceitos principais

Clients

Ele CommunicationIdentityClient fornece métodos para gerenciar usuários e seus tokens.

Examples

Authentication

Você pode obter uma chave e/ou cadeia de conexão no seu recurso de Serviços de Comunicação no portal do Azure. Depois de ter uma chave, pode autenticá-la CommunicationIdentityClient com qualquer um dos seguintes métodos:

Crie KeyCredential com AzureKeyCredential antes de inicializar o 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);

Usando uma cadeia de conexão

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

Usando um 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);

Se você usar uma chave para inicializar o cliente, também precisará fornecer o ponto de extremidade apropriado. Você pode obter esse ponto de extremidade do recurso dos Serviços de Comunicação no portal do Azure.

Usage

Criando um novo usuário

Use o createUser método para criar um novo usuário.

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

Criação e atualização de um token de usuário

Use o getToken método para emitir ou atualizar um token para um usuário existente. O método também incorpora uma lista de escopos de token de comunicação. As opções de escopo incluem:

  • chat (Use este para acesso total às APIs de Chat)
  • voip (Use este para acesso total às APIs de Chamadas)
  • chat.join (Acesso às APIs de Chat, mas sem autorização para criar, excluir ou atualizar tópicos de chat)
  • chat.join.limited (Uma versão mais limitada do chat.join que não permite adicionar ou remover participantes)
  • voip.join (Acesso às APIs de Chamadas, mas sem autorização para iniciar novas chamadas)
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 atualizar o token de usuário, emita outro token com o mesmo usuário.

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

Criando um token de usuário com expiração personalizada

Também é possível criar um token de acesso de Identidade de Comunicação personalizando o tempo de expiração. O período de validade do token deve estar dentro de [60.1440] minutos. Se não fornecida, o valor padrão de 1440 minutos (24 horas) será usado.

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

Criando um usuário e um token em uma única solicitação

Para conveniência, use createUserAndToken para criar um novo usuário e emitir um token com uma chamada de função. Isso se traduz em uma única requisição web, em vez de criar um usuário primeiro e depois emitir um 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"]);

Criando um usuário e um token com expiração personalizada em uma única solicitação

Também é possível criar um token de acesso de Identidade de Comunicação personalizando o tempo de expiração. O período de validade do token deve estar dentro de [60.1440] minutos. Se não fornecida, o valor padrão de 1440 minutos (24 horas) será usado.

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

Revogação de tokens para um usuário

Use o revokeTokens método para revogar todos os tokens emitidos para um usuário.

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

Excluir um usuário

Use o deleteUser método para excluir um usuário.

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

Trocando token de acesso Azure AD de um usuário do Teams por um token de acesso de comunicação

Use getTokenForTeamsUser o método para trocar um token de acesso Azure AD de um usuário do Teams por um novo CommunicationAccessToken com tempo de expiração correspondente.

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 o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em runtime chamando setLogLevel no @azure/logger:

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

setLogLevel("info");

Próximas Etapas 

Examine os exemplos de diretório para obter exemplos detalhados sobre como usar essa biblioteca.

Contributing

Se você quiser contribuir para esta biblioteca, por favor leia o guia contribuição para saber mais sobre como construir e testar o código.