Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
Projetos relacionados
Azure SDK for JavaScript