Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Projetos relacionados
Azure SDK for JavaScript