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 unter Client- und Serverarchitektur beschrieben.
(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.
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.
Bearbeiten Sie .zshrc, und fügen Sie die Umgebungsvariable hinzu:
Führen Sie nach dem Hinzufügen der Umgebungsvariablen im Konsolenfenster source ~/.zshrc aus, damit die Änderungen wirksam werden. Wenn Sie die Umgebungsvariable bei geöffneter IDE erstellt haben, müssen Sie den Editor, die IDE oder die Shell unter Umständen schließen und erneut öffnen, um auf die Variable zuzugreifen.
Bearbeiten Sie .bash_profile, und fügen Sie die Umgebungsvariable hinzu:
Führen Sie nach dem Hinzufügen der Umgebungsvariablen im Konsolenfenster source ~/.bash_profile aus, damit die Änderungen wirksam werden. Wenn Sie die Umgebungsvariable bei geöffneter IDE erstellt haben, müssen Sie den Editor, die IDE oder die Shell unter Umständen schließen und erneut öffnen, um auf die Variable zuzugreifen.
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.
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.
Bearbeiten Sie .zshrc, und fügen Sie die Umgebungsvariable hinzu:
Führen Sie nach dem Hinzufügen der Umgebungsvariablen im Konsolenfenster source ~/.zshrc aus, damit die Änderungen wirksam werden. Wenn Sie die Umgebungsvariable bei geöffneter IDE erstellt haben, müssen Sie den Editor, die IDE oder die Shell unter Umständen schließen und erneut öffnen, um auf die Variable zuzugreifen.
Bearbeiten Sie .bash_profile, und fügen Sie die Umgebungsvariable hinzu:
Führen Sie nach dem Hinzufügen der Umgebungsvariablen im Konsolenfenster source ~/.bash_profile aus, damit die Änderungen wirksam werden. Wenn Sie die Umgebungsvariable bei geöffneter IDE erstellt haben, müssen Sie den Editor, die IDE oder die Shell unter Umständen schließen und erneut öffnen, um auf die Variable zuzugreifen.
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.
Azure CLI
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.
Azure CLI
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.
Azure CLI
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.
Azure CLI
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.
Azure CLI
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.
Azure CLI
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.
Azure CLI
az communication identity user delete --user"<userId>"--connection-string"<yourConnectionString>"
Nehmen Sie im Code diese Ersetzung vor:
Ersetzen Sie <yourConnectionString> durch Ihre Verbindungszeichenfolge.
Führen Sie in einem Eingabeaufforderungsfenster (z. B. cmd, PowerShell oder Bash) den Befehl dotnet newaus, um eine neue Konsolen-App mit dem Namen AccessTokensQuickstart zu erstellen. Dieser Befehl erstellt ein einfaches „Hallo Welt“-C#-Projekt mit einer einzigen Quelldatei, Program.cs.
Konsole
dotnet new console -o AccessTokensQuickstart
Wechseln Sie zum neu erstellten App-Ordner, und verwenden Sie den Befehl dotnet build, um Ihre Anwendung zu kompilieren.
Konsole
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.
Konsole
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 Namespace Azure.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:
C#
using System;
using Azure;
using Azure.Core;
using Azure.Communication.Identity;
namespaceAccessTokensQuickstart
{
classProgram
{
staticasync 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.
// 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:
C#
// 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));
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.
C#
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.
C#
// Issue an access token with a validity of 24 hours and the "voip" scope for an identityvar tokenResponse = await client.GetTokenAsync(identity, scopes: new [] { CommunicationTokenScope.VoIP });
// Get the token from the responsevar 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.
C#
// 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.
C#
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identityvar identityAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the responsevar 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:
C#
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.
C#
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.
C#
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.
Konsole
dotnet run
In der Ausgabe der App wird jede abgeschlossene Aktion beschrieben:
Konsole
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
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:
JavaScript
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.
// This code demonstrates how to fetch your connection string// from an environment variable.const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
// Instantiate the identity clientconst identityClient = new CommunicationIdentityClient(connectionString);
Alternativ können Sie den Endpunkt und den Zugriffsschlüssel trennen, indem Sie den folgenden Code ausführen:
JavaScript
// 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 credentialconst tokenCredential = new AzureKeyCredential(accessKey);
// Instantiate the identity clientconst identityClient = new CommunicationIdentityClient(endpoint, tokenCredential)
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.
JavaScript
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.
JavaScript
// Issue an access token with a validity of 24 hours and the "voip" scope for an identitylet tokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
// Get the token and its expiration date from the responseconst { 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.
JavaScript
// Issue an access token with a validity of an hour and the "voip" scope for an identityconst 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.
JavaScript
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identitylet identityTokenResponse = await identityClient.createUserAndToken(["voip"]);
// Get the token, its expiration date, and the user from the responseconst { 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.
JavaScript
// Value of identityResponse represents the Azure Communication Services identity stored during identity creation and then used to issue the tokens being refreshedlet 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.
JavaScript
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.
JavaScript
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:
Konsole
node ./issue-access-token.js
Die App-Ausgabe beschreibt jede abgeschlossene Aktion:
Konsole
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
Erstellen Sie in einem Terminal- oder Eingabeaufforderungsfenster ein neues Verzeichnis für Ihre App, und öffnen Sie es dann.
Konsole
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.
Python
import os
from datetime import timedelta
from azure.communication.identity import CommunicationIdentityClient, CommunicationUserIdentifier
try:
print("Azure Communication Services - Access Tokens Quickstart")
# Quickstart code goes hereexcept 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“.
Konsole
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.
# 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)
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.
Python
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.
Python
# 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.
Python
# 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.
Python
# 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:
Python
# 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.
Python
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.
Python
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.
Konsole
python ./issue-access-tokens.py
Die generierte Ausgabe beschreibt jede abgeschlossene Aktion:
Konsole
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
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:
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:
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:
Java
// 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.
Java
// 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();
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.
Java
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.
Java
// 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.
Java
// 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.
Java
//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:
Java
// 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.
Java
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.
Java
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:
Konsole
mvn compile
erstellen des Pakets:
Konsole
mvn package
Führen Sie die App mit dem folgenden mvn-Befehl aus.
Die Ausgabe beschreibt jede abgeschlossene Aktion:
Konsole
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
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.
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.
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.
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.
Veranschaulichen der Features von Microsoft Entra ID, um Identitätslösungen zu modernisieren sowie Hybridlösungen und Identitätsgovernance zu implementieren
Mithilfe von Microsoft Entra ID können Sie den Zugriff auf Azure Communication Services aus Anwendungen autorisieren, die auf Azure-VMs, in Funktions-Apps und in anderen Ressourcen ausgeführt werden.