Azure Communication Identity Client-Bibliothek für JavaScript - Version 2.0.0

Die Identitätsbibliothek wird zur Verwaltung von Benutzern und Token für Azure Communication Services verwendet.

Erste Schritte

Prerequisites

Installieren von

npm install @azure/communication-identity

Browserunterstützung

JavaScript-Bündel

Um diese Clientbibliothek im Browser zu verwenden, müssen Sie zuerst einen Bundler verwenden. Ausführliche Informationen dazu finden Sie in unserer Bündelungsdokumentation.

Wichtige Konzepte

Clients

Sie CommunicationIdentityClient bietet Methoden zur Verwaltung von Nutzern und ihren Tokens.

Examples

Authentication

Sie können einen Schlüssel und/oder eine Verbindungszeichenfolge aus Ihrer Communication Services-Ressource im Azure-Portal erhalten. Sobald Sie einen Schlüssel haben, können Sie ihn CommunicationIdentityClient mit einer der folgenden Methoden authentifizieren:

Erstellen KeyCredential Sie mit AzureKeyCredential vor der Initialisierung des Clients

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

Verwenden einer Verbindungszeichenfolge

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

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

Wenn Sie einen Schlüssel zum Initialisieren des Clients verwenden, müssen Sie auch den entsprechenden Endpunkt bereitstellen. Sie können diesen Endpunkt aus Ihrer Kommunikationsdienste-Ressource in Azure-Portalabrufen.

Usage

Erstellung eines neuen Benutzers

Nutzen Sie die Methode createUser , um einen neuen Benutzer zu erstellen.

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

Erstellung und Aktualisierung eines Benutzertokens

Verwenden Sie die Methode getToken , um ein Token für einen bestehenden Benutzer auszugeben oder zu aktualisieren. Die Methode berücksichtigt außerdem eine Liste von Kommunikationstoken-Scopes. Zu den Bereichsoptionen gehören:

  • chat (Nutzen Sie dies für vollen Zugriff auf Chat-APIs)
  • voip (Nutzen Sie dies für den vollen Zugriff auf Calling-APIs)
  • chat.join (Zugriff auf Chat-APIs, jedoch ohne die Autorisierung zum Erstellen, Löschen oder Aktualisieren von Chat-Threads)
  • chat.join.limited (Eine eingeschränktere Version von chat.join, die kein Hinzufügen oder Entfernen von Teilnehmern erlaubt)
  • voip.join (Zugriff auf Calling-APIs, jedoch ohne die Autorisierung, neue Aufrufe zu starten)
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"]);

Um das Benutzertoken zu aktualisieren, geben Sie mit demselben Benutzer ein weiteres Token aus.

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

Erstellung eines Benutzertokens mit benutzerdefiniertem Ablaufdatum

Es ist auch möglich, ein Communication Identity Access Token zu erstellen, indem man die Ablaufzeit anpasst. Die Gültigkeitsdauer des Tokens muss im Bereich von [60,1440] Minuten liegen. Wird nicht angegeben, wird der Standardwert von 1440 Minuten (24 Stunden) verwendet.

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

Erstellung eines Benutzers und eines Tokens in einer einzigen Anfrage

Zur Bequemlichkeit erstellen createUserAndToken Sie einen neuen Benutzer und geben Sie ein Token mit einem Funktionsaufruf aus. Das bedeutet eine einzelne Webanfrage, anstatt zuerst einen Benutzer zu erstellen und dann ein Token auszugeben.

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

Erstellung eines Benutzers und eines Tokens mit benutzerdefiniertem Ablaufdatum in einer einzigen Anfrage

Es ist auch möglich, ein Communication Identity Access Token zu erstellen, indem man die Ablaufzeit anpasst. Die Gültigkeitsdauer des Tokens muss im Bereich von [60,1440] Minuten liegen. Wird nicht angegeben, wird der Standardwert von 1440 Minuten (24 Stunden) verwendet.

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

Widerruf von Token für einen Benutzer

Verwenden Sie die revokeTokens Methode, um alle ausgegebenen Token für einen Nutzer zu widerrufen.

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

Löschen eines Benutzers

Verwenden Sie die Methode deleteUser , um einen Benutzer zu löschen.

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

Austausch des Azure AD Zugriffstokens eines Teams-Benutzers gegen einen Kommunikationszugangstoken

Verwenden Sie getTokenForTeamsUser die Methode, um ein Azure-AD-Zugriffstoken eines Teams-Nutzers gegen ein neues CommunicationAccessToken mit entsprechender Ablaufzeit auszutauschen.

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

Protokollierung

Das Aktivieren der Protokollierung kann hilfreiche Informationen zu Fehlern aufdecken. Um ein Protokoll von HTTP-Anforderungen und -Antworten anzuzeigen, legen Sie die AZURE_LOG_LEVEL Umgebungsvariable auf infofest. Alternativ kann die Protokollierung zur Laufzeit durch Aufrufen von setLogLevel im @azure/loggeraktiviert werden:

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

setLogLevel("info");

Nächste Schritte

Ausführliche Beispiele zur Verwendung dieser Bibliothek finden Sie in den Beispielen Verzeichnis.

Contributing

Wenn Sie zu dieser Bibliothek beitragen möchten, lesen Sie bitte den beitragenden Leitfaden, um mehr darüber zu erfahren, wie man den Code erstellt und testet.