Quickstart: Toegangstokens maken en beheren

Met toegangstokens kunnen ACS-SDK's rechtstreeks Azure Communication Services als een bepaalde identiteit. U moet een aantal maken als u wilt dat uw gebruikers deelnemen aan een gesprek of chatgesprek in uw toepassing.

U kunt ook de ACS SDK's gebruiken om identiteiten te maken en uw toegangstokens te beheren. In deze quickstart leert u hoe u dit doet. Voor gebruiksgevallen voor productie wordt u aangeraden toegangstokens te genereren op een service aan de serverzijde.

Prijzen die in de afbeeldingen in deze zelfstudie worden getoond, zijn alleen bedoeld voor demonstratiedoeleinden.

Vereisten

Definitieve code

Zoek de uiteindelijke code voor deze quickstart op GitHub.

Instellen

Een nieuwe C#-toepassing maken

Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de opdracht dotnet new om een nieuwe console-app te maken met de naam AccessTokensQuickstart. Met deze opdracht maakt u een eenvoudig Hallo wereld-C#-project met één bronbestand: Program.cs.

dotnet new console -o AccessTokensQuickstart

Wijzig uw map in de zojuist gemaakte app-map en gebruik de opdracht dotnet build om uw toepassing te compileren.

cd AccessTokensQuickstart
dotnet build

Als het goed is, ziet u een Hallo wereld uitvoer. Als alles werkt, betekent dit dat uw installatie correct werkt en dat we onze ACS-specifieke code kunnen gaan schrijven.

Het pakket installeren

Terwijl u zich nog in de toepassingsmap blijft, installeert u de Azure Communication Services Identity-bibliotheek voor het .NET-pakket met behulp van de dotnet add package opdracht .

dotnet add package Azure.Communication.Identity --version 1.0.0

Het app-framework instellen

Ga als volgt te werk vanuit de projectmap:

  1. Bestand Program.cs openen in een teksteditor
  2. Voeg een using-instructie toe voor het insluiten van de Azure.Communication.Identity naamruimte
  3. De declaratie van de Main-methode bijwerken ter ondersteuning van async-code

Gebruik de volgende code om te beginnen:

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
        }
    }
}

De client verifiëren

Nu initialiseren we een met CommunicationIdentityClient uw connection string. Met de onderstaande code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING. Meer informatie over het beheren van de connection string.

Voeg de volgende code aan de Main methode toe:

// This code demonstrates how to fetch your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
var client = new CommunicationIdentityClient(connectionString);

U kunt ook het eindpunt en de toegangssleutel scheiden.

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

Als u een Azure Active Directory (AD) hebt ingesteld, zie Service-principalsgebruiken, kunt u zich ook verifiëren met AD.

TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);

Een identiteit maken

Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt hiervoor een lichtgewicht identiteitsmap. Gebruik de methode createUser om een nieuwe vermelding in de map te maken met een unieke Id. De identiteit is later vereist voor het uitgeven van toegangstokens.

var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");

Sla de ontvangen identiteit op met een toewijzing aan de gebruikers van uw toepassing. U kunt dit bijvoorbeeld doen door ze op te slaan in de database van uw toepassingsserver.

Toegangstokens voor de identiteit verlenen

Zodra u een identiteit hebt, gebruikt u de GetToken methode om een toegangs token voor de identiteit uit te geven. De scopes parameter definieert een set machtigingen/mogelijkheden die met dit toegangsken kunnen worden gebruikt. Raadpleeg de lijst met ondersteunde acties. Een nieuw exemplaar van een kan ook worden samengesteld op communicationUser basis van tekenreeksweergave van een Azure Communication Service-identiteit.

// Issue an access token with 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;

// Write the token details to the screen
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);

Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Als u dit niet doet, kan dit leiden tot onderbrekingen van de gebruikerservaring van uw toepassing. De antwoordeigenschap expiresOn geeft de levensduur van het toegangstoken aan.

Een identiteit maken en een toegangs token uitgeven binnen dezelfde aanvraag

U kunt de methode gebruiken om een Communication Services te maken en er tegelijkertijd een CreateUserAndTokenAsync toegang token voor uit te geven. De scopes parameter definieert een set machtigingen/mogelijkheden die met dit toegangsken kunnen worden gebruikt. Raadpleeg de lijst met ondersteunde acties.

// Issue an identity and an access token with the "voip" scope for the new identity
var identityAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.VoIP });

// Retrieve the identity, token and expiry date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;

// Print these details to the screen
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);

Een toegangs token vernieuwen

Als u een toegangstoken wilt vernieuwen, geeft u een exemplaar van het CommunicationUserIdentifier-object door aan GetTokenAsync. Als u deze Id hebt opgeslagen en een nieuwe CommunicationUserIdentifier wilt maken, kunt u dit doen door uw opgeslagen Id als volgt door te geven aan de CommunicationUserIdentifier-constructor:

var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });

Toegangstokens intrekken

In sommige gevallen moet u toegangstokens mogelijk expliciet intrekken. Wanneer de gebruiker van een toepassing bijvoorbeeld het wachtwoord wijzigt dat wordt gebruikt voor verificatie bij uw service. Met RevokeTokensAsync de methode worden alle actieve toegangstokens ongeldig die zijn uitgegeven aan de identiteit.

await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");

Een identiteit verwijderen

Als u een identiteit verwijdert, worden alle actieve toegangstokens ingetrokken en wordt voorkomen dat er toegangstokens voor de identiteiten worden uitgegeven. Ook wordt alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.

await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");

De code uitvoeren

Als u klaar bent, kunt u de toepassing uitvoeren vanuit uw toepassingsmap met de dotnet run opdracht .

dotnet run

Vereisten

Definitieve code

Zoek de uiteindelijke code voor deze quickstart op GitHub.

Instellen

Een nieuwe Node.js-toepassing maken

Open uw terminal of opdrachtvenster, maak een nieuwe map voor uw app en navigeer daar naartoe.

mkdir access-tokens-quickstart && cd access-tokens-quickstart

Voer npm init -y uit om een bestand met package.json standaardinstellingen te maken.

npm init -y

Het pakket installeren

Gebruik de npm install opdracht om de Azure Communication Services Identity SDK voor JavaScript te installeren.

npm install @azure/communication-identity --save

Met --save de optie wordt de bibliotheek als een afhankelijkheid in uw bestand package.json vermeld.

Het app-framework instellen

Gebruik in de projectmap de volgende code om te beginnen:

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

Sla het nieuwe bestand op zoals issue-access-token.js in de projectmap.

De client verifiëren

Breng een CommunicationIdentityClient tot stand met uw verbindingsreeks. Met de onderstaande code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING. Meer informatie over het beheren van de connection string.

Voeg de volgende code aan de main methode toe:

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

U kunt ook het eindpunt en de toegangssleutel scheiden.

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

Als u een azure ad Azure Active Directory toepassing hebt ingesteld, zie Service-principalsgebruiken, kunt u zich ook verifiëren met Azure AD.

const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);

Een identiteit maken

Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt een lichte identiteitsmap. Gebruik de methode createUser om een nieuwe vermelding in de map te maken met een unieke Id. De gemaakte identiteit is later vereist om toegangstokens uit te geven.

let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);

U moet ontvangen identiteiten opslaan met een toewijzing aan de gebruikers van uw toepassing. Bijvoorbeeld in de database van uw toepassingsserver.

Toegangstokens uitgeven

Gebruik de methode getToken om een toegangstoken voor een al bestaande Communication Services-identiteit uit te geven. De scopes parameter definieert een lijst met machtigingen/rollen die dit token kan uitvoeren/gebruiken. Raadpleeg de lijst met ondersteunde acties. Een nieuw exemplaar van de parameter communicationUser kan worden samengesteld op basis van tekenreeksweergave van een Azure Communication Service-identiteit.

// Issue an access token with the "voip" scope for an identity
let tokenResponse = await identityClient.getToken(identityResponse, ["voip"]);

// retrieve the token and its expiry date from the response
const { token, expiresOn } = tokenResponse;

// Print the expiry date and token to the screen
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);

Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Als u dit niet doet, kan dit leiden tot onderbrekingen van de gebruikerservaring van uw toepassing. De expiresOn eigenschap geeft de levensduur van het toegangs token aan.

Een identiteit maken en een toegangs token uitgeven binnen één methode-aanroep

U kunt de methode gebruiken om een Communication Services te maken en er in één keer een createUserAndToken toegangs token voor uit te geven. De scopes parameter is hetzelfde als hierboven. We maken er opnieuw een met het voip bereik.

// Issue an identity and an access token with the "voip" scope for the new identity
let identityTokenResponse = await identityClient.createUserAndToken(["voip"]);

// retrieve the token, its expiry date and user from the response
const { token, expiresOn, user } = identityTokenResponse;

// print these details to the screen
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);

Toegangstokens vernieuwen

Als tokens verlopen, moet u deze periodiek vernieuwen. Vernieuwen is eenvoudig om opnieuw getToken aan te roepen met dezelfde identiteit die is gebruikt om de tokens uit te geven. U moet ook de van de scopes vernieuwde tokens verstrekken.

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

Toegangstokens intrekken

In sommige gevallen wilt u mogelijk toegangstokens intrekken. Wanneer de gebruiker van een toepassing bijvoorbeeld het wachtwoord wijzigt dat wordt gebruikt voor verificatie bij uw service. Met revokeTokens de methode worden alle actieve toegangstokens ongeldig die zijn uitgegeven aan de identiteit.

await identityClient.revokeTokens(identityResponse);

console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);

Een identiteit verwijderen

Als u een identiteit verwijdert, worden alle actieve toegangstokens ingetrokken en wordt voorkomen dat er toegangstokens voor de identiteit worden uitgegeven. Ook wordt alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.

await identityClient.deleteUser(identityResponse);

console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);

De code uitvoeren

Navigeer vanuit een consoleprompt naar de map met het bestand issue-access-token.js en voer vervolgens de volgende opdracht uit om de app uit te node voeren.

node ./issue-access-token.js

Vereisten

Definitieve code

Zoek de uiteindelijke code voor deze quickstart op GitHub.

Instellen

Een nieuwe Python-toepassing maken

  1. Open uw terminal of opdrachtvenster, maak een nieuwe map voor uw app en navigeer daar naartoe.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Gebruik een teksteditor om een bestand met de naam te maken in de hoofdmap van het project en voeg de structuur voor het programma toe, inclusief de issue-access-tokens.py verwerking van eenvoudige uitzonderingen. In de volgende secties voegt u alle broncode voor deze quickstart toe aan dit bestand.

    import os
    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)
    

Het pakket installeren

Terwijl u zich nog steeds in de toepassingsmap blijft, installeert u Azure Communication Services Identity SDK voor Python-pakket met behulp van de pip install opdracht .

pip install azure-communication-identity

De client verifiëren

Vervolgens instantieren we een CommunicationIdentityClient met uw connection string. Met de onderstaande code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING. Meer informatie over het beheren van de connection string.

Voeg deze code toe in het try-blok:

# This code demonstrates how to fetch 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)

Als u een toepassing Azure Active Directory (Azure AD) hebt ingesteld, zie Service-principalsgebruiken, kunt u ook verifiëren met Azure AD.

endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())

Een identiteit maken

Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt een lichte identiteitsmap. Gebruik de methode create_user om een nieuwe vermelding in de map te maken met een unieke Id. De identiteit is later vereist voor het uitgeven van toegangstokens.

identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])

Sla de ontvangen identiteit op met een toewijzing aan de gebruikers van uw toepassing. U kunt dit bijvoorbeeld doen door ze op te slaan in de database van uw toepassingsserver.

Toegangstokens uitgeven

Gebruik de methode get_token om een toegangstoken voor de al bestaande Communication Services-identiteit uit te geven. De scopes parameter definieert een set machtigingen/mogelijkheden die met dit toegangsken kunnen worden gebruikt. Raadpleeg de lijst met ondersteunde acties. Er kan ook een nieuw exemplaar van de parameter worden samengesteld op CommunicationUserIdentifier basis van tekenreeksweergave van de Azure Communication Service-identiteit.

# Issue an access token with the "voip" scope for an identity
token_result = client.get_token(identity, ["voip"])
expires_on = token_result.expires_on.strftime("%d/%m/%y %I:%M %S %p")

# Print these details to the screen
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token_result.token)

Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Als u dit niet doet, kan dit leiden tot onderbrekingen van de gebruikerservaring van uw toepassing. De antwoordeigenschap expires_on geeft de levensduur van het toegangstoken aan.

Een identiteit maken en een toegangs token uitgeven binnen dezelfde aanvraag

U kunt de methode create_user_and_token gebruiken om een Communication Services te maken en er een toegang token voor uit te geven. De scopes parameter definieert een set machtigingen/mogelijkheden die met dit toegangsken kunnen worden gebruikt. Raadpleeg de lijst met ondersteunde acties.

# Issue an identity and an access token with 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.strftime("%d/%m/%y %I:%M %S %p")

# Print these to the screen
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)

Toegangstokens vernieuwen

Als u een toegangs token wilt vernieuwen, gebruikt u het -object om een token opnieuw uit te geven CommunicationUserIdentifier door de bestaande identiteit door te geven:

# The existingIdentity value represents identity of Azure Communication Services stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])

Toegangstokens intrekken

In sommige gevallen wilt u toegangstokens mogelijk expliciet intrekken. Wanneer de gebruiker van een toepassing bijvoorbeeld het wachtwoord wijzigt dat wordt gebruikt voor verificatie bij uw service. Met revoke_tokens de methode worden alle actieve toegangstokens ongeldig die zijn uitgegeven aan de identiteit.

client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])

Een identiteit verwijderen

Als u een identiteit verwijdert, worden alle actieve toegangstokens ingetrokken en wordt voorkomen dat er toegangstokens voor de identiteit worden uitgegeven. Ook wordt alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.

client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])

De code uitvoeren

Navigeer vanuit een consoleprompt naar de map met het bestand issue-access-tokens.py en voer vervolgens de volgende opdracht uit om de app uit te python voeren.

python ./issue-access-tokens.py

Vereisten

Definitieve code

Zoek de uiteindelijke code voor deze quickstart op GitHub.

Instellen

Een nieuwe Java-toepassing maken

Open uw terminal-of opdrachtvenster. Navigeer naar de map waarin u uw Java-toepassing wilt maken. Voer de onderstaande opdracht uit om het Java-project te genereren op basis van de maven-archetype-snelstart-sjabloon.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

U ziet dat de taak ' genereren ' een map heeft gemaakt met dezelfde naam als de artifactId. In deze map bevat de map src/main/Java de broncode van het project, de src/test/java directory bevat de testbron en het bestand pom.xml het projectobjectmodel van het project of POM. Dit bestand wordt gebruikt voor projectconfiguratieparameters.

De ACS-pakketten installeren

Open het bestand pom.xml in uw teksteditor. Voeg het volgende afhankelijkheidselement toe aan de groep met afhankelijkheden.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
    <version>1.0.0</version>
</dependency>

Hiermee krijgt Maven de instructie om de ACS Identity SDK te installeren wanneer we deze later gebruiken.

Het app-framework instellen

Ga als volgt te werk vanuit de projectmap:

  1. Ga naar de map /src/main/java/com/communication/quickstart
  2. Open het bestand App.java in de editor
  3. De System.out.println("Hello world!");-instructie vervangen
  4. Voeg import-instructies toe

Gebruik de volgende code om te beginnen:

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
    }
}

De client verifiëren

Instanteer een CommunicationIdentityClient met de toegangssleutel en het eindpunt van uw resource. Meer informatie over het beheren van de connection string. Bovendien kunt u de client initialiseren met elke aangepaste HTTP-client die de com.azure.core.http.HttpClient interface implementeert.

Voeg de volgende code toe aan de main methode in App.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();

U kunt ook de volledige connection string met behulp van de methode in plaats van het eindpunt en de connectionString() toegangssleutel op te geven.

// Your can find your connection string from your ACS resource in the Azure portal
String connectionString = "<connection_string>";

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Als u een Azure Active Directory (Azure AD) hebt ingesteld, zie Service-principalsgebruiken, kunt u zich ook verifiëren met Azure AD.

String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
        .endpoint(endpoint)
        .credential(credential)
        .buildClient();

Een identiteit maken

Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt een lichte identiteitsmap. Gebruik de methode createUser om een nieuwe vermelding in de map te maken met een unieke Id.

CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());

De gemaakte identiteit is later vereist om toegangstokens uit te geven. Daarom moet u ontvangen identiteiten opslaan met een toewijzing aan de gebruiker van uw toepassing. U kunt dit bijvoorbeeld doen door ze op te slaan in de database van uw toepassingsserver.

Toegangstokens uitgeven

Gebruik de methode getToken om een toegangstoken voor de al bestaande Communication Services-identiteit uit te geven. De parameter definieert een set machtigingen en mogelijkheden die scopes dit token kan uitvoeren. Zie de lijst met ondersteunde acties voor geldige waarden. In dit geval gebruiken we de gebruikersvariabele die in de vorige stap is gemaakt om een token op te halen.

// Issue an access token with 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);

Een identiteit maken en een token uitgeven in één aanvraag

U kunt ook de methode createUserAndToken gebruiken om een nieuwe vermelding in de map te maken met een uniek item en een toegangstoken Id uit te geven.

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

Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Als u dit niet doet, kan dit leiden tot onderbrekingen van de gebruikerservaring van uw toepassing. De expiresAt eigenschap geeft de levensduur van het toegangs token aan.

Toegangstokens vernieuwen

Als u een toegangstoken wilt vernieuwen, gebruikt u het CommunicationUserIdentifier-object om het opnieuw uit te geven:

// existingIdentity represents identity of Azure Communication Services stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);

Een toegangs token intrekken

In sommige gevallen kunt u toegangstokens expliciet intrekken. Wanneer de gebruiker van een toepassing bijvoorbeeld het wachtwoord wijzigt dat wordt gebruikt voor verificatie bij uw service. Met revokeTokens de methode worden alle actieve toegangstokens voor een bepaalde gebruiker ongeldig. In dit geval gebruiken we opnieuw de eerder gemaakte gebruiker.

communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());

Een identiteit verwijderen

Als u een identiteit verwijdert, worden alle actieve toegangstokens ingetrokken en wordt voorkomen dat er toegangstokens voor de identiteit worden uitgegeven. Ook wordt alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.

communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());

De code uitvoeren

Navigeer naar de map met het pom.xml bestand en compileer het project met behulp van de volgende mvn opdracht.

mvn compile

Bouw vervolgens het pakket.

mvn package

Voer de volgende mvn-opdracht uit om de app uit te voeren.

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

De uitvoer van de app beschrijft elke actie die is voltooid:

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 30/03/21 08:09 09 AM:
<token signature here>

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 30/03/21 08:09 09 AM:
<token signature here>

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

Resources opschonen

Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van resources.

Volgende stappen

In deze snelstart hebt u de volgende zaken geleerd:

  • Identiteiten beheren
  • Toegangstokens uitgeven
  • De Communication Services Identity SDK gebruiken

U kunt ook het volgende doen: