Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Identitätsbibliothek wird zur Verwaltung von Benutzern und Token für Azure Communication Services verwendet.
Erste Schritte
Prerequisites
- Ein Azure-Abonnement.
- Eine vorhandene Kommunikationsdiensteressource. Wenn Sie die Ressource erstellen müssen, können Sie das Azure-Portal, die Azure PowerShell-oder die Azure CLI-verwenden.
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.
Verwandte Projekte
Azure SDK for JavaScript