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

A biblioteca de identidade é usada para gerir utilizadores e tokens para o Azure Communication Services.

Introdução

Prerequisites

  • Uma assinatura do Azure.
  • Um recurso de Serviços de Comunicação existente. Se precisar criar o recurso, você pode usar o do Portal doAzure, o doAzure PowerShell ou o da CLI doAzure.

Instalação

npm install @azure/communication-identity

Suporte de navegador

Pacote JavaScript

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

Conceitos-chave

Clients

Fornece CommunicationIdentityClient métodos para gerir utilizadores e os seus tokens.

Examples

Authentication

Pode obter uma chave e/ou cadeia de ligação do seu recurso de Serviços de Comunicação no portal do Azure. Depois de ter uma chave, pode autenticá-lo 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 string 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 seu recurso de Serviços de Comunicação em Portal do Azure.

Usage

Criação de um novo utilizador

Use o createUser método para criar um novo utilizador.

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 utilizador

Use o getToken método para emitir ou atualizar um token para um utilizador existente. O método também inclui uma lista de escopos de tokens de comunicação. As opções de âmbito incluem:

  • chat (Use isto para acesso total às APIs de Chat)
  • voip (Use isto para acesso total às APIs de Chamadas)
  • chat.join (Acesso a APIs de Chat mas sem autorização para criar, eliminar 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 utilizador, emita outro token com o mesmo utilizador.

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

Criação de um token de utilizador 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 um intervalo de [60,1440] minutos. Se não for fornecido, será utilizado o valor padrão 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);

Criar um utilizador e um token num único pedido

Para conveniência, use createUserAndToken para criar um novo utilizador e emitir um token com uma chamada de função. Isto traduz-se num único pedido web, em vez de criar primeiro um utilizador 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"]);

Criar um utilizador e um token com expiração personalizada num único pedido

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 um intervalo de [60,1440] minutos. Se não for fornecido, será utilizado o valor padrão 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);

Revogação de tokens para um utilizador

Use o revokeTokens método para revogar todos os tokens emitidos para um utilizador.

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 um utilizador

Use o deleteUser método para eliminar um utilizador.

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

Trocar token de acesso Azure AD de um utilizador Teams por um token de acesso de Comunicação

Use getTokenForTeamsUser o método para trocar um token de acesso Azure AD de um utilizador 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 tempo de execução chamando setLogLevel no @azure/logger:

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

setLogLevel("info");

Passos seguintes

Por favor, dê uma olhada no exemplos diretório para obter exemplos detalhados sobre como usar esta biblioteca.

Contributing

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