Erstellen und Verwalten von Zugriffstoken
Zugriffstoken ermöglichen es Azure Communication Services-SDKs, sich bei Azure Communication Services als bestimmte Identität zu authentifizieren. Sie müssen Zugriffstoken erstellen, wenn Sie möchten, dass Ihre Benutzer an einem Anruf oder einem Chat-Thread in Ihrer Anwendung teilnehmen können.
Dieser Artikel beschreibt, wie Azure Communication Services-SDKs verwendet werden, um Identitäten zu erstellen und Ihre Zugriffstoken zu verwalten. Für Produktionsanwendungsfälle empfehlen wir, Zugriffstoken auf einem serverseitigen Dienst zu generieren, wie im Entwurf der mobilen Architektur beschrieben.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
- Installieren Sie die Azure-Befehlszeilenschnittstelle.
Erstellen Ihrer Umgebung
Hinzufügen der Erweiterung
Fügen Sie die Azure Communication Services-Erweiterung für Azure CLI mithilfe des Befehls az extension
hinzu.
az extension add --name communication
Anmelden bei der Azure-Befehlszeilenschnittstelle
Sie müssen sich bei der Azure-Befehlszeilenschnittstelle anmelden. Sie können sich anmelden, indem Sie den Befehl az login
am Terminal ausführen und dann Ihre Anmeldeinformationen angeben.
(Optional) Verwenden von Azure CLI-Identitätsvorgängen ohne Übergeben einer Verbindungszeichenfolge
Sie können die Umgebungsvariable AZURE_COMMUNICATION_CONNECTION_STRING
so konfigurieren, dass Azure CLI-Identitätsvorgänge verwendet werden, ohne dass Sie --connection_string
zum Übergeben der Verbindungszeichenfolge verwenden müssen. Öffnen Sie zum Konfigurieren einer Umgebungsvariablen ein Konsolenfenster, und wählen Sie über die folgenden Registerkarten Ihr Betriebssystem aus. Ersetzen Sie <yourConnectionString>
durch Ihre Verbindungszeichenfolge.
Öffnen Sie ein Konsolenfenster, und geben Sie den folgenden Befehl ein:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Nachdem Sie die Umgebungsvariable hinzugefügt haben, müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen müssen, einschließlich des Konsolenfensters. Wenn Sie beispielsweise Visual Studio als Editor verwenden, müssen Sie Visual Studio neu starten, bevor Sie das Beispiel ausführen.
Speichern des Zugriffstokens in einer Umgebungsvariable
Öffnen Sie zum Konfigurieren einer Umgebungsvariablen ein Konsolenfenster, und wählen Sie über die folgenden Registerkarten Ihr Betriebssystem aus. Ersetzen Sie <yourAccessToken>
durch Ihr eigentliches Zugriffstoken.
Öffnen Sie ein Konsolenfenster, und geben Sie den folgenden Befehl ein:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Nachdem Sie die Umgebungsvariable hinzugefügt haben, müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen müssen, einschließlich des Konsolenfensters. Wenn Sie beispielsweise Visual Studio als Editor verwenden, müssen Sie Visual Studio neu starten, bevor Sie das Beispiel ausführen.
Vorgänge
Erstellen einer Identität
Zum Erstellen von Zugriffstoken benötigen Sie eine Identität. Von Azure Communication Services wird zu diesem Zweck ein einfaches Identitätsverzeichnis gepflegt. Verwenden Sie den Befehl user create
, um im Verzeichnis einen neuen Eintrag mit einem eindeutigen Id
zu erstellen. Die Identität ist später erforderlich, um Zugriffstoken auszustellen.
az communication identity user create --connection-string "<yourConnectionString>"
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge.
Erstellen einer Identität und Ausstellen eines Zugriffstokens in derselben Anforderung
Führen Sie den folgenden Befehl aus, um eine Communication Services-Identität zu erstellen und zugleich ein Zugriffstoken dafür auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen unter Authentifizieren bei Azure Communication Services.
az communication identity token issue --scope chat --connection-string "<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge.
Ausstellen von Zugriffstoken
Führen Sie den folgenden Befehl aus, um ein Zugriffstoken für Ihre Communication Services-Identität auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen unter Authentifizieren bei Azure Communication Services.
az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge. - Ersetzen Sie
<userId>
durch Ihre Benutzer-ID.
Zugriffstoken sind kurzlebige Anmeldeinformationen, die erneut ausgestellt werden müssen. Wenn dies nicht der Fall ist, kann die Benutzerumgebung Ihrer Anwendung unterbrochen werden. Die Antworteigenschaft expires_on
gibt die Lebensdauer des Zugriffstokens an.
Ausstellen eines Zugriffstokens mit mehreren Bereichen
Führen Sie den folgenden Befehl aus, um ein Zugriffstoken mit mehreren Bereichen für Ihre Communication Services-Identität auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen im Identitätsmodell.
az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge. - Ersetzen Sie
<userId>
durch Ihre Benutzer-ID.
Zugriffstoken sind kurzlebige Anmeldeinformationen, die erneut ausgestellt werden müssen. Wenn dies nicht der Fall ist, kann die Benutzerumgebung Ihrer Anwendung unterbrochen werden. Die Antworteigenschaft expires_on
gibt die Lebensdauer des Zugriffstokens an.
Austauschen eines Microsoft Entra-Zugriffstokens des Teams-Benutzers gegen ein Zugriffstoken für die Kommunikationsidentität
Verwenden Sie den Befehl token get-for-teams-user
, um ein Zugriffstoken für den Teams-Benutzer auszustellen, das mit den Azure Communication Services SDKs verwendet werden kann.
az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge. - Ersetzen Sie
<yourAadUser>
mit Ihrer Microsoft Entra-Mandanten-ID. - Ersetzen Sie
<yourAadApplication>
mit Ihrer Microsoft Entra-Anwendungs-ID. - Ersetzen Sie
<yourAadToken>
es durch Ihr Microsoft Entra-Zugriffstoken.
Widerrufen von Zugriffstoken
Möglicherweise müssen Sie ein Zugriffstoken explizit widerrufen. Sie würden dies beispielsweise tun, wenn Anwendungsbenutzer das Kennwort ändern, das sie für die Authentifizierung bei Ihrem Dienst verwenden. Der Befehl token revoke
erklärt alle aktiven Zugriffstoken für ungültig, die für die Identität ausgestellt wurden.
az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge. - Ersetzen Sie
<userId>
durch Ihre Benutzer-ID.
Löschen einer Identität
Wenn Sie eine Identität löschen, widerrufen Sie alle aktiven Zugriffstoken und verhindern die weitere Ausstellung von Zugriffstoken für die Identität. Dies entfernt auch alle gespeicherten Inhalte, die der Identität zugeordnet sind.
az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
- Ersetzen Sie
<yourConnectionString>
durch Ihre Verbindungszeichenfolge. - Ersetzen Sie
<userId>
durch Ihre Benutzer-ID.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Die aktuelle Version des .NET Core SDK für Ihr Betriebssystem.
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
Endgültiger Code
Suchen Sie den fertiggestellten Code auf GitHub.
Erstellen Ihrer Umgebung
Erstellen einer neuen C#-Anwendung
Führen Sie in einem Eingabeaufforderungsfenster (z. B. cmd, PowerShell oder Bash) den Befehl
dotnet new
aus, um eine neue Konsolen-App mit dem NamenAccessTokensQuickstart
zu erstellen. Dieser Befehl erstellt ein einfaches „Hallo Welt“-C#-Projekt mit einer einzigen Quelldatei,Program.cs
.dotnet new console -o AccessTokensQuickstart
Wechseln Sie zum neu erstellten App-Ordner, und verwenden Sie den Befehl
dotnet build
, um Ihre Anwendung zu kompilieren.cd AccessTokensQuickstart dotnet build
Eine einfache
Hello World
-Ausgabe wird angezeigt. Wenn dies korrekt angezeigt wird, dann funktioniert Ihr Setup ordnungsgemäß, und Sie können mit dem Schreiben Ihres Azure Communication Services-Codes beginnen.
Installieren des Pakets
Installieren Sie im Anwendungsverzeichnis mithilfe des Befehls dotnet add package
die Azure Communication Services-Identitätsbibliothek für das .NET-Paket.
dotnet add package Azure.Communication.Identity
Einrichten des App-Frameworks
Führen Sie im Projektverzeichnis die folgenden Schritte aus:
- Öffnen Sie die
Program.cs
-Datei in einem Text-Editor. - Fügen Sie eine Anweisung vom Typ
using
hinzu, um den NamespaceAzure.Communication.Identity
einzuschließen. - Um den asynchronen Code zu unterstützen, aktualisieren Sie die Deklaration der
Main
-Methode.
Führen Sie zum Einstieg den folgenden Code aus:
using System;
using Azure;
using Azure.Core;
using Azure.Communication.Identity;
namespace AccessTokensQuickstart
{
class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine("Azure Communication Services - Access Tokens Quickstart");
// Quickstart code goes here
}
}
}
Authentifizieren des Clients
Initialisieren Sie einen CommunicationIdentityClient
mit Ihrer Verbindungszeichenfolge. Der folgende Code, den Sie der Main
-Methode hinzufügen, ruft die Verbindungszeichenfolge für die Ressource aus einer Umgebungsvariablen mit dem Namen COMMUNICATION_SERVICES_CONNECTION_STRING
ab.
Weitere Informationen finden Sie unter Erstellen und Verwalten von Communication Services-Ressourcen > Speichern Ihrer Verbindungszeichenfolge.
// This code demonstrates how to retrieve your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
var client = new CommunicationIdentityClient(connectionString);
Alternativ können Sie den Endpunkt und den Zugriffsschlüssel trennen, indem Sie den folgenden Code ausführen:
// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
string endpoint = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ENDPOINT");
string accessKey = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ACCESSKEY");
var client = new CommunicationIdentityClient(new Uri(endpoint), new AzureKeyCredential(accessKey));
Wenn Sie bereits eine Microsoft Entra-Anwendung eingerichtet haben, können Sie sich mithilfe der Microsoft Entra-ID authentifizieren.
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);
Erstellen einer Identität
Zum Erstellen von Zugriffstoken benötigen Sie eine Identität. Von Azure Communication Services wird zu diesem Zweck ein einfaches Identitätsverzeichnis gepflegt. Verwenden Sie die Methode createUser
, um in dem Verzeichnis einen neuen Eintrag mit einer eindeutigen Id
zu erstellen. Verwenden Sie die Identität später, um Zugriffstoken auszugeben.
var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Speichern Sie die empfangene Identität mit Zuordnung zu Ihren Anwendungsbenutzern (z. B. durch Speichern in Ihrer Anwendungsserverdatenbank).
Ausgeben eines Zugriffstokens
Verwenden Sie die GetToken
-Methode, nachdem Sie eine Communication Services-Identität haben, um ein Zugriffstoken dafür auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen im Identitätsmodell. Sie können auch eine neue Instanz von communicationUser
basierend auf der Zeichenfolgendarstellung der Azure Communication Service-Identität generieren.
// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
var tokenResponse = await client.GetTokenAsync(identity, scopes: new [] { CommunicationTokenScope.VoIP });
// Get the token from the response
var token = tokenResponse.Value.Token;
var expiresOn = tokenResponse.Value.ExpiresOn;
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Zugriffstoken sind kurzlebige Anmeldeinformationen, die erneut ausgestellt werden müssen. Wenn Sie dies nicht tun, kann dies zu einer Störung des Benutzererlebnisses Ihrer Anwendung führen. Die expiresOn
-Eigenschaft gibt die Lebensdauer des Zugriffstokens an.
Festlegen einer benutzerdefinierten Tokenablaufzeit
Die Standardablaufzeit für Token beträgt 24 Stunden, sie kann jedoch konfiguriert werden, indem Sie einen Wert zwischen einer Stunde und 24 Stunden für den optionalen Parameter tokenExpiresIn
angeben. Wenn Sie ein neues Token anfordern, geben Sie für die Tokenablaufzeit die erwartete typische Länge einer Kommunikationssitzung an.
// Issue an access token with a validity of an hour and the "voip" scope for an identity
TimeSpan tokenExpiresIn = TimeSpan.FromHours(1);
CommunicationTokenScope[] scopes = new[] { CommunicationTokenScope.VoIP };
var tokenResponse = await client.GetTokenAsync(identity, scopes, tokenExpiresIn);
Erstellen einer Identität und Ausstellen eines Tokens in derselben Anforderung
Mit der CreateUserAndTokenAsync
-Methode können Sie eine Communication Services-Identität erstellen und gleichzeitig ein Zugriffstoken dafür ausstellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen unter Authentifizieren bei Azure Communication Services.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
var identityAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Aktualisieren eines Zugriffstokens
Um ein Zugriffstoken zu aktualisieren, übergeben Sie eine Instanz des CommunicationUserIdentifier
-Objekts an GetTokenAsync
. Wenn Sie diese Id
gespeichert haben und einen neuen CommunicationUserIdentifier
erstellen müssen, können Sie zu diesem Zweck die gespeicherte Id
wie folgt an den CommunicationUserIdentifier
-Konstruktor übergeben:
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Widerrufen von Zugriffstoken
Möglicherweise müssen Sie ein Zugriffstoken explizit widerrufen. Beispiel: Wenn Anwendungsbenutzer das Kennwort ändern, das sie für die Authentifizierung bei Ihrem Dienst verwenden. Die RevokeTokensAsync
-Methode erklärt alle aktiven Zugriffstoken für ungültig, die für die Identität ausgestellt wurden.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Löschen einer Identität
Wenn Sie eine Identität löschen, widerrufen Sie alle aktiven Zugriffstoken und verhindern die weitere Ausstellung von Zugriffstoken für die Identität. Dies entfernt auch alle gespeicherten Inhalte, die der Identität zugeordnet sind.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
Ausführen des Codes
Wenn Sie die Erstellung des Zugriffstokens abgeschlossen haben, können Sie die Anwendung mithilfe des dotnet run
-Befehls über Ihr Anwendungsverzeichnis ausführen.
dotnet run
In der Ausgabe der App wird jede abgeschlossene Aktion beschrieben:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 10/11/2022 7:34:29 AM +00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 10/11/2022 7:34:29 AM +00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Node.js: Active LTS- und Maintenance LTS-Versionen (8.11.1 und 10.14.1 empfohlen).
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
Endgültiger Code
Suchen Sie den fertiggestellten Code auf GitHub.
Erstellen Ihrer Umgebung
Erstellen einer neuen Node.js-Anwendung
Erstellen Sie in einem Terminal- oder Eingabeaufforderungsfenster ein neues Verzeichnis für Ihre App, und öffnen Sie es dann.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Führen Sie
npm init -y
aus, um eine Dateipackage.json
mit den Standardeinstellungen zu erstellen.npm init -y
Installieren des Pakets
Verwenden Sie den Befehl npm install
, um das Azure Communication Services Identity SDK für JavaScript zu installieren.
npm install @azure/communication-identity@latest --save
Die Option --save
listet die Bibliothek als Abhängigkeit in Ihrer Datei package.json
auf.
Einrichten des App-Frameworks
Erstellen Sie im Projektverzeichnis eine Datei mit dem Namen
issue-access-token.js
, und fügen Sie den folgenden Code hinzu:const { CommunicationIdentityClient } = require('@azure/communication-identity'); const main = async () => { console.log("Azure Communication Services - Access Tokens Quickstart") // Quickstart code goes here }; main().catch((error) => { console.log("Encountered an error"); console.log(error); })
Authentifizieren des Clients
Instanziieren Sie CommunicationIdentityClient
mit Ihrer Verbindungszeichenfolge. Der folgende Code, den Sie der Main
-Methode hinzufügen, ruft die Verbindungszeichenfolge für die Ressource aus einer Umgebungsvariablen mit dem Namen COMMUNICATION_SERVICES_CONNECTION_STRING
ab.
Weitere Informationen finden Sie unter Erstellen und Verwalten von Communication Services-Ressourcen > Speichern Ihrer Verbindungszeichenfolge.
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(connectionString);
Alternativ können Sie den Endpunkt und den Zugriffsschlüssel trennen, indem Sie den folgenden Code ausführen:
// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const accessKey = process.env["COMMUNICATION_SERVICES_ACCESSKEY"];
// Create the credential
const tokenCredential = new AzureKeyCredential(accessKey);
// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential)
Wenn Sie bereits eine Microsoft Entra-Anwendung eingerichtet haben, können Sie sich mithilfe der Microsoft Entra-ID authentifizieren.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);
Erstellen einer Identität
Zum Erstellen von Zugriffstoken benötigen Sie eine Identität. Von Azure Communication Services wird zu diesem Zweck ein einfaches Identitätsverzeichnis gepflegt. Verwenden Sie die Methode createUser
, um in dem Verzeichnis einen neuen Eintrag mit einer eindeutigen Id
zu erstellen. Sie benötigen die Identität später, um Zugriffstoken auszugeben.
let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);
Speichern Sie die empfangene Identität mit Zuordnung zu den Benutzern Ihrer Anwendung (z. B. durch Speichern in Ihrer Anwendungsserver-Datenbank).
Ausgeben eines Zugriffstokens
Verwenden Sie die Methode getToken
, um ein Zugriffstoken für Ihre Communication Services-Identität auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen im Identitätsmodell. Sie können auch eine neue Instanz von communicationUser
basierend auf der Zeichenfolgendarstellung einer Azure Communication Service-Identität generieren.
// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
let tokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
// Get the token and its expiration date from the response
const { token, expiresOn } = tokenResponse;
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Zugriffstoken sind kurzlebige Anmeldeinformationen, die erneut ausgestellt werden müssen. Wenn Sie dies nicht tun, kann dies zu einer Störung des Benutzererlebnisses Ihrer Anwendung führen. Die expiresOn
-Eigenschaft gibt die Lebensdauer des Zugriffstokens an.
Festlegen einer benutzerdefinierten Tokenablaufzeit
Die Standardablaufzeit für Token beträgt 24 Stunden (1.440 Minuten), sie kann jedoch konfiguriert werden, indem Sie einen Wert zwischen 60 Minuten und 1440 Minuten für den optionalen Parameter tokenExpiresInMinutes
angeben. Wenn Sie ein neues Token anfordern, geben Sie für die Tokenablaufzeit die erwartete typische Länge einer Kommunikationssitzung an.
// Issue an access token with a validity of an hour and the "voip" scope for an identity
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let tokenResponse = await identityClient.getToken
(identityResponse, ["voip"], tokenOptions);
Erstellen einer Identität und Ausgeben eines Tokens in einem Methodenaufruf
Mit der createUserAndToken
-Methode können Sie eine Communication Services-Identität erstellen und gleichzeitig ein Zugriffstoken dafür ausstellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Erstellen Sie es mit dem Bereich voip
.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
let identityTokenResponse = await identityClient.createUserAndToken(["voip"]);
// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Aktualisieren eines Zugriffstokens
Wenn Token ablaufen, müssen Sie diese aktualisieren. Um Token zu aktualisieren, rufen Sie getToken
erneut mit der gleichen Identität auf, die zum Ausgeben der Token verwendet wurde. Außerdem müssen Sie die scopes
-Elemente der aktualisierten Token angeben.
// Value of identityResponse represents the Azure Communication Services identity stored during identity creation and then used to issue the tokens being refreshed
let refreshedTokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
Widerrufen von Zugriffstoken
Möglicherweise müssen Sie ein Zugriffstoken widerrufen. Beispiel: Sie tun dies, wenn Anwendungsbenutzer das Kennwort ändern, das sie für die Authentifizierung bei Ihrem Dienst verwenden. Die revokeTokens
-Methode erklärt alle aktiven Zugriffstoken für ungültig, die für die Identität ausgestellt wurden.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Löschen einer Identität
Wenn Sie eine Identität löschen, widerrufen Sie alle aktiven Zugriffstoken und verhindern die weitere Ausstellung von Zugriffstoken für die Identität. Dies entfernt auch alle gespeicherten Inhalte, die der Identität zugeordnet sind.
await identityClient.deleteUser(identityResponse);
console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);
Ausführen des Codes
Gehen Sie an einer Konsoleneingabeaufforderung zum Verzeichnis mit der Datei issue-access-token.js, und führen Sie anschließend den folgenden Befehl vom Typ node
aus, um die App auszuführen:
node ./issue-access-token.js
Die App-Ausgabe beschreibt jede abgeschlossene Aktion:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Python 3.8+.
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
Endgültiger Code
Suchen Sie den fertiggestellten Code auf GitHub.
Erstellen Ihrer Umgebung
Erstellen einer neuen Python-Anwendung
Erstellen Sie in einem Terminal- oder Eingabeaufforderungsfenster ein neues Verzeichnis für Ihre App, und öffnen Sie es dann.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Verwenden Sie einen Text-Editor, um im Stammverzeichnis des Projekts eine Datei mit Namen
issue-access-tokens.py
zu erstellen. Fügen Sie dann die Struktur für das Programm hinzu, einschließlich der einfachen Ausnahmebehandlung. Sie fügen dieser Datei den gesamten Quellcode hinzu.import os from datetime import timedelta from azure.communication.identity import CommunicationIdentityClient, CommunicationUserIdentifier try: print("Azure Communication Services - Access Tokens Quickstart") # Quickstart code goes here except Exception as ex: print("Exception:") print(ex)
Installieren des Pakets
Installieren Sie im Anwendungsverzeichnis mithilfe des Befehls pip install
das Paket „Azure Communication Services-Identitäts-SDK für Python“.
pip install azure-communication-identity
Authentifizieren des Clients
Instanziieren Sie einen Kommunikationsidentitätsclient (CommunicationIdentityClient
) mit Ihrer Verbindungszeichenfolge. Der folgende Code, den Sie dem try
-Block hinzufügen, ruft die Verbindungszeichenfolge für die Ressource aus einer Umgebungsvariablen mit dem Namen COMMUNICATION_SERVICES_CONNECTION_STRING
ab.
Weitere Informationen finden Sie unter Erstellen und Verwalten von Communication Services-Ressourcen > Speichern Ihrer Verbindungszeichenfolge.
# This code demonstrates how to retrieve your connection string
# from an environment variable.
connection_string = os.environ["COMMUNICATION_SERVICES_CONNECTION_STRING"]
# Instantiate the identity client
client = CommunicationIdentityClient.from_connection_string(connection_string)
Wenn Sie bereits eine Microsoft Entra-Anwendung eingerichtet haben, können Sie sich auch mithilfe der Microsoft Entra-ID authentifizieren.
endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())
Erstellen einer Identität
Zum Erstellen von Zugriffstoken benötigen Sie eine Identität. Von Azure Communication Services wird zu diesem Zweck ein einfaches Identitätsverzeichnis gepflegt. Verwenden Sie die Methode create_user
, um in dem Verzeichnis einen neuen Eintrag mit einer eindeutigen Id
zu erstellen. Die Identität ist später erforderlich, um Zugriffstoken auszustellen.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
Speichern Sie die empfangene Identität mit Zuordnung zu Ihren Anwendungsbenutzern (z. B. durch Speichern in Ihrer Anwendungsserverdatenbank).
Ausgeben eines Zugriffstokens
Verwenden Sie die Methode get_token
, um ein Zugriffstoken für Ihre Communication Services-Identität auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen im Identitätsmodell. Sie können auch eine neue Instanz des Parameters CommunicationUserIdentifier
basierend auf der Zeichenfolgendarstellung der Azure Communication Service-Identität generieren.
# Issue an access token with a validity of 24 hours and the "voip" scope for an identity
token_result = client.get_token(identity, ["voip"])
print("\nIssued an access token with 'voip' scope that expires at " + token_result.expires_on + ":")
print(token_result.token)
Zugriffstoken sind kurzlebige Anmeldeinformationen, die erneut ausgestellt werden müssen. Wenn Sie dies nicht tun, kann dies zu einer Störung des Benutzererlebnisses Ihrer Anwendung führen. Die Antworteigenschaft expires_on
gibt die Lebensdauer des Zugriffstokens an.
Festlegen einer benutzerdefinierten Tokenablaufzeit
Die Standardablaufzeit für Token beträgt 24 Stunden, sie kann jedoch konfiguriert werden, indem Sie einen Wert zwischen einer Stunde und 24 Stunden für den optionalen Parameter token_expires_in
angeben. Wenn Sie ein neues Token anfordern, geben Sie für die Tokenablaufzeit die erwartete typische Länge einer Kommunikationssitzung an.
# Issue an access token with a validity of an hour and the "voip" scope for an identity
token_expires_in = timedelta(hours=1)
token_result = client.get_token(identity, ["voip"], token_expires_in=token_expires_in)
Erstellen einer Identität und Ausstellen eines Zugriffstokens in derselben Anforderung
Mit der create_user_and_token
-Methode können Sie eine Communication Services-Identität erstellen und gleichzeitig ein Zugriffstoken dafür ausstellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen unter Authentifizieren bei Azure Communication Services.
# Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
identity_token_result = client.create_user_and_token(["voip"])
# Get the token details from the response
identity = identity_token_result[0]
token = identity_token_result[1].token
expires_on = identity_token_result[1].expires_on
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)
Aktualisieren eines Zugriffstokens
Verwenden Sie zum Aktualisieren eines Zugriffstokens das CommunicationUserIdentifier
-Objekt, um ein Token erneut auszugeben, indem Sie die vorhandene Identität übergeben:
# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])
Widerrufen von Zugriffstoken
Möglicherweise müssen Sie ein Zugriffstoken explizit widerrufen. Beispiel: Wenn Anwendungsbenutzer das Kennwort ändern, das sie für die Authentifizierung bei Ihrem Dienst verwenden. Die revoke_tokens
-Methode erklärt alle aktiven Zugriffstoken für ungültig, die für die Identität ausgestellt wurden.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Löschen einer Identität
Wenn Sie eine Identität löschen, widerrufen Sie alle aktiven Zugriffstoken und verhindern die weitere Ausstellung von Zugriffstoken für die Identität. Dies entfernt auch alle gespeicherten Inhalte, die der Identität zugeordnet sind.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
Ausführen des Codes
Wechseln Sie von einer Konsoleneingabeaufforderung zum Verzeichnis, das die Datei issue-access-tokens.py
enthält, und führen Sie anschließend den folgenden python
-Befehl aus, um die App auszuführen.
python ./issue-access-tokens.py
Die generierte Ausgabe beschreibt jede abgeschlossene Aktion:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.9028648+00:00:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Java Development Kit (JDK) Version 8 oder höher.
- Apache Maven.
- Eine aktive Communication Services-Ressource und eine Verbindungszeichenfolge. Erstellen Sie eine Communication Services-Ressource.
Endgültiger Code
Suchen Sie den fertiggestellten Code auf GitHub.
Erstellen Ihrer Umgebung
Erstellen einer neuen Java-Anwendung
Wechseln Sie in einem Terminal- oder Eingabeaufforderungsfenster zu dem Verzeichnis, in dem Sie Ihre Java-Anwendung erstellen möchten. Führen Sie den folgenden Code aus, um das Java-Projekt aus der Vorlage „maven-archetype-quickstart“ zu generieren:
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Beachten Sie, dass die Aufgabe generate
ein Verzeichnis mit dem gleichen Namen wie artifactId
erstellt. In diesem Verzeichnis enthält das Verzeichnis src/main/java
den Quellcode des Projekts, das Verzeichnis src/test/java
enthält die Testquelle, und die Datei pom.xml
ist Projektobjektmodell (POM) des Projekts. Diese Datei wird für die Parameter der Projektkonfiguration verwendet.
Installieren der Communication Services-Pakete
Öffnen Sie die Datei pom.xml
in Ihrem Text-Editor. Fügen Sie der Gruppe „dependencies“ das folgende Abhängigkeitselement hinzu:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
<version>[1.4.0,)</version>
</dependency>
Dieser Code weist Maven an, das Communication Services-Identitäts-SDK zu installieren, das Sie später verwenden müssen.
Einrichten des App-Frameworks
Führen Sie im Projektverzeichnis die folgenden Schritte aus:
- Wechseln Sie zum Verzeichnis
/src/main/java/com/communication/quickstart
. - Öffnen Sie die Datei
App.java
in Ihrem Editor. - Ersetzen Sie die Anweisung
System.out.println("Hello world!");
. - Fügen Sie Anweisungen des Typs
import
hinzu.
Verwenden Sie zum Einstieg den folgenden Code:
package com.communication.quickstart;
import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.core.credential.*;
import java.io.IOException;
import java.time.*;
import java.util.*;
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println("Azure Communication Services - Access Tokens Quickstart");
// Quickstart code goes here
}
}
Authentifizieren des Clients
Instanziieren Sie einen Kommunikationsidentitätsclient (CommunicationIdentityClient
) mit dem Zugriffsschlüssel und dem Endpunkt Ihrer Ressource. Weitere Informationen finden Sie unter Erstellen und Verwalten von Communication Services-Ressourcen > Speichern Ihrer Verbindungszeichenfolge.
Sie können den Client auch mit einem beliebigen benutzerdefinierten HTTP-Client initialisieren, der die com.azure.core.http.HttpClient
-Schnittstelle implementiert.
Fügen Sie in der Datei App.java
der Methode main
den folgenden Code hinzu:
// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
String accessKey = "SECRET";
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(new AzureKeyCredential(accessKey))
.buildClient();
Anstelle des Endpunkts und des Zugriffsschlüssels können Sie mithilfe der connectionString()
-Methode auch die gesamte Verbindungszeichenfolge bereitstellen.
// You can find your connection string from your Communication Services resource in the Azure portal
String connectionString = "<connection_string>";
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.connectionString(connectionString)
.buildClient();
Wenn Sie bereits eine Microsoft Entra-Anwendung eingerichtet haben, können Sie sich mithilfe der Microsoft Entra-ID authentifizieren.
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
Erstellen einer Identität
Zum Erstellen von Zugriffstoken benötigen Sie eine Identität. Von Azure Communication Services wird zu diesem Zweck ein einfaches Identitätsverzeichnis gepflegt. Verwenden Sie die Methode createUser
, um in dem Verzeichnis einen neuen Eintrag mit einer eindeutigen Id
zu erstellen.
CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());
Die erstellte Identität ist später erforderlich, um Zugriffstoken auszustellen. Speichern Sie die empfangene Identität mit Zuordnung zu den Benutzern Ihrer Anwendung (z. B. durch Speichern in Ihrer Anwendungsserver-Datenbank).
Ausgeben eines Zugriffstokens
Verwenden Sie die Methode getToken
, um ein Zugriffstoken für Ihre Communication Services-Identität auszustellen. Der scopes
-Parameter definiert einen Satz von Zugriffstokenberechtigungen und -rollen. Weitere Informationen finden Sie in der Liste der unterstützten Aktionen im Identitätsmodell.
Verwenden Sie im folgenden Code die Benutzervariable, die Sie im vorherigen Schritt erstellt haben, um ein Token abzurufen.
// Issue an access token with a validity of 24 hours and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes);
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'voip' scope that expires at: " + expiresAt + ": " + token);
Zugriffstoken sind kurzlebige Anmeldeinformationen, die erneut ausgestellt werden müssen. Wenn Sie dies nicht tun, kann dies zu einer Störung des Benutzererlebnisses Ihrer Anwendung führen. Die expiresAt
-Eigenschaft gibt die Lebensdauer des Zugriffstokens an.
Festlegen einer benutzerdefinierten Tokenablaufzeit
Die Standardablaufzeit für Token beträgt 24 Stunden, sie kann jedoch konfiguriert werden, indem Sie einen Wert zwischen einer Stunde und 24 Stunden für den optionalen Parameter tokenExpiresIn
angeben. Wenn Sie ein neues Token anfordern, geben Sie für die Tokenablaufzeit die erwartete typische Länge einer Kommunikationssitzung an.
// Issue an access token with a validity of an hour and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
Duration tokenExpiresIn = Duration.ofHours(1);
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes, tokenExpiresIn);
Erstellen einer Identität und Ausstellen eines Tokens in einer einzigen Anforderung
Alternativ können Sie die createUserAndToken-Methode verwenden, um im Verzeichnis einen neuen Eintrag mit einer eindeutigen Id
zu erstellen und gleichzeitig ein Zugriffstoken auszustellen.
//Create an identity and issue token with a validity of 24 hours in one call
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(scopes);
CommunicationUserIdentifier user = result.getUser();
System.out.println("\nCreated a user identity with ID: " + user.getId());
AccessToken accessToken = result.getUserToken();
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'chat' scope that expires at: " + expiresAt + ": " + token);
Aktualisieren eines Zugriffstokens
Verwenden Sie zum Aktualisieren eines Zugriffstokens das CommunicationUserIdentifier
-Objekt für die erneute Ausstellung:
// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);
Widerrufen eines Zugriffstokens
Möglicherweise müssen Sie ein Zugriffstoken explizit widerrufen. Sie würden dies beispielsweise tun, wenn Anwendungsbenutzer das Kennwort ändern, das sie für die Authentifizierung bei Ihrem Dienst verwenden. Die revokeTokens
-Methode erklärt alle aktiven Zugriffstoken für einen bestimmten Benutzer für ungültig. Im folgenden Code können Sie den zuvor erstellten Benutzer verwenden.
communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());
Löschen einer Identität
Wenn Sie eine Identität löschen, widerrufen Sie alle aktiven Zugriffstoken und verhindern die weitere Ausstellung von Zugriffstoken für die Identität. Dies entfernt auch alle gespeicherten Inhalte, die der Identität zugeordnet sind.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
Ausführen des Codes
Wechseln Sie zum Verzeichnis mit der Datei
pom.xml
.Kompilieren Sie das Projekt mithilfe des folgenden
mvn
-Befehls:mvn compile
erstellen des Pakets:
mvn package
Führen Sie die App mit dem folgenden
mvn
-Befehl aus.mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Die Ausgabe beschreibt jede abgeschlossene Aktion:
Azure Communication Services - Access Tokens Quickstart
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Issued an access token with 'voip' scope that expires at 2022-10-11T07:34:29.902864800Z:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Created an identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-1ce9-31b4-54b7-a43a0d006a52
Issued an access token with 'chat' scope that expires at 2022-10-11T07:34:29.902864800Z:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMF8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJzY3AiOjE3OTIsImNzaSI6IjE2NjUzODcyNjkiLCJleHAiOjE2NjUzOTA4NjksImFjc1Njb3BlIjoidm9pcCIsInJlc291cmNlSWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY1Mzg3MjY5fQ.kTXpQQtY7w6O82kByljZXrKtBvNNOleDE5m06LapzLeoWfRZCCpJQcDzBoLRA146mOhNzLZ0b5WMNTa5tD-0hWCiicDwgKLMASEGY9g0EvNQOidPff47g2hh6yqi9PKiDPp-t5siBMYqA6Nh6CQ-Oeh-35vcRW09VfcqFN38IgSSzJ7QkqBiY_QtfXz-iaj81Td0287KO4U1y2LJIGiyJLWC567F7A_p1sl6NmPKUmvmwM47tyCcQ1r_lfkRdeyDmcrGgY6yyI3XJZQbpxyt2DZqOTSVPB4PuRl7iyXxvppEa4Uo_y_BdMOOWFe6YTRB5O5lhI8m7Tf0LifisxX2sw
Successfully revoked all access tokens for identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Deleted the identity with ID: 8:acs:4ccc92c8-9815-4422-bddc-ceea181dc774_00000006-19e0-2727-80f5-8b3a0d003502
Voraussetzungen
Erstellen der Zugriffstoken
Navigieren Sie im Azure-Portal zum Blatt Identitäten und Benutzerzugriffstoken in Ihrer Communication Services-Ressource.
Wählen Sie den Umfang der Zugriffstoken aus. Sie können keinen, einen oder mehrere Dienste auswählen.
Wählen Sie Generieren aus.
Das System generiert eine Identität und ein entsprechendes Benutzerzugriffstoken.
Kopieren Sie diese Zeichenfolgen und verwenden sie in den Beispiel-Apps und anderen Testszenarien.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie kostenlos ein Azure-Konto.
Eine aktive Azure Communication Services-Ressource Erstellen Sie eine Communication Services-Ressource.
Eine aktive Azure Logic Apps-Ressource (Logik-App). Erstellen Sie einen Verbrauchs-Logik-App-Workflow mit dem Auslöser, den Sie verwenden möchten. Zurzeit bietet der Azure Communication Services Identity-Connector nur Aktionen, sodass Ihre Logik-App mindestens einen Trigger erfordert.
Benutzer erstellen
Fügen Sie ihrem Workflow mithilfe des Azure Communication Services-Identitäts-Connectors einen neuen Schritt hinzu. Führen Sie diese Schritte in Power Automate durch, während Ihr Power Automate-Flow im Modus Bearbeiten geöffnet ist.
Öffnen Sie den Designer. Wählen Sie im Schritt, in dem Sie die neue Aktion hinzufügen möchten, die Option Neuer Schritt aus. Alternativ können Sie die neue Aktion zwischen den Schritten hinzufügen, indem Sie mit dem Mauszeiger auf den Pfeil zwischen diesen Schritten zeigen, das Pluszeichen (+) und dann die Option Aktion hinzufügen auswählen.
Geben Sie im Suchfeld „Vorgang auswählen“ den Suchbegriff „Communication Services Identity“ ein. Wählen Sie in der Aktionsliste Benutzer erstellen aus.
Geben Sie die Verbindungszeichenfolge an. Sie finden sie im Microsoft Azure-Portal in Ihrer Azure Communication Services-Ressource. Wählen Sie im linken Bereichsmenü die Option „Schlüssel“ aus, um die Verbindungszeichenfolge anzuzeigen.
Geben Sie einen Verbindungsnamen an.
Klicken Sie auf Erstellen
Diese Aktion generiert eine Benutzer-ID, die eine Communication Services-Benutzeridentität ist. Wenn Sie auf Erweiterte Optionen anzeigen klicken und Tokenbereich auswählen, generiert die Aktion zusätzlich ein Zugriffstoken und dessen Ablaufzeit mit dem angegebenen Bereich.
Ausgeben eines Benutzerzugriffstokens
Nachdem Sie über eine Communication Services-Identität verfügen, können Sie ein Zugriffstoken ausstellen. Führen Sie die folgenden Schritte aus:
Fügen Sie eine neue Aktion hinzu, und geben Communication Services-Identität in das Suchfeld ein. Wählen Sie in der Aktionsliste Benutzerzugriffstoken ausgeben aus.
Jetzt können Sie die Benutzer-ID-Ausgabe aus dem vorhergehenden Schritt Benutzer erstellen verwenden.
Geben Sie den Tokenbereich an: VoIP oder Chat. Erfahren Sie mehr über Token und Authentifizierung.
Das System generiert ein Zugriffstoken und dessen Ablaufzeit mit dem angegebenen Bereich.
Widerrufen von Benutzerzugriffstoken
Nachdem Sie eine Communication Services-Identität haben, können Sie mithilfe der Aktion „Benutzerzugriffstoken ausgeben“ ein Zugriffstoken widerrufen. Führen Sie die folgenden Schritte aus:
Fügen Sie eine neue Aktion hinzu, und geben Communication Services-Identität in das Suchfeld ein. Wählen Sie in der Aktionsliste Benutzerzugriffstoken widerrufen aus.
Geben Sei die Benutzer-ID an.
Das System widerruft alle Benutzerzugriffstoken für den angegebenen Benutzer, es gibt keine Ausgaben für diese Aktion.
Löschen eines Benutzers
Nachdem Sie eine Communication Services-Identität haben, können Sie mithilfe der Aktion „Benutzerzugriffstoken ausgeben“ ein Zugriffstoken löschen. Führen Sie die folgenden Schritte aus:
Fügen Sie eine neue Aktion hinzu, und geben Communication Services-Identität in das Suchfeld ein. Wählen Sie in der Aktionsliste Benutzer löschen aus.
Geben Sei die Benutzer-ID an.
Das System entfernt den Benutzer und widerruft alle Benutzerzugriffstoken für den angegebenen Benutzer, es gibt keine Ausgaben für diese Aktion.
Testen Ihrer Logik-App
Wählen Sie auf der Designer-Symbolleiste die Option Ausführen aus, um Ihren Workflow manuell zu starten. Der Workflow erstellt einen Benutzer, gibt ein Zugriffstoken für diesen Benutzer aus und entfernt es dann und löscht den Benutzer.
Weitere Informationen finden Sie unter So führen Sie Ihren Workflow aus. Sie können die Ausgaben dieser Aktionen überprüfen, nachdem der Workflow erfolgreich ausgeführt wurde.
Verwenden der Identität für Überwachung und Metriken
Die Benutzer-ID dient als Primärschlüssel für Protokolle und Metriken, die mithilfe von Azure Monitor gesammelt werden. Um alle Anrufe eines Benutzers anzuzeigen, können Sie Ihre Authentifizierung so einrichten, dass eine bestimmte Azure Communication Services-Identität (oder mehrere dieser Identitäten) einem einzelnen Benutzer zugeordnet wird.
Weitere Informationen finden Sie unter:
Bereinigen von Ressourcen
Wenn Sie ein Communication Services-Abonnement bereinigen und entfernen möchten, löschen Sie die Ressource oder Ressourcengruppe. Wenn Sie eine Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Weitere Informationen finden Sie unter Erstellen und Verwalten von Communication Services-Ressourcen > Bereinigen von Ressourcen.
Informationen zum Bereinigen Ihres Logik-App-Workflows und zugehöriger Ressourcen finden Sie unter Erstellen eines Beispielworkflows für die Verbrauchs-Logik-App mithilfe des Azure-Portals > Bereinigen von Ressourcen.
Nächste Schritte
Dieser Artikel beschreibt, wie Sie einen Benutzer erstellen und einen Benutzer löschen. Er beschreibt auch, wie Sie ein Zugriffstoken für einen Benutzer ausstellen und ein Benutzerzugriffstoken mithilfe des Azure Communication Services-Identitäts-Connectors entfernen. Weitere Informationen finden Sie unter Azure Communication Services-Identitäts-Connector.
Wenn Sie sehen möchten, wie Token von anderen Connectors verwendet werden, lesen Sie Senden einer Chatnachricht von Power Automate mithilfe von Azure Communication Services.
Weitere Informationen zum Senden einer E-Mail mithilfe des Azure Communication Services Email-Connectors finden Sie unter Senden einer E-Mail-Nachricht in Power Automate mit Azure Communication Services.