Rychlý Start: vytváření a Správa přístupových tokenů

Přístupové tokeny umožňují, aby se sady ACS SDK ověřovaly přímo proti komunikačním službám Azure jako konkrétní identita. Pokud chcete, aby se uživatelé připojili k volání nebo konverzačnímu vláknu v rámci vaší aplikace, budete muset vytvořit nějaké.

Sady SDK ACS můžete použít také k vytvoření identit a správě přístupových tokenů a v tomto rychlém startu se naučíme, jak to udělat. Pro případy použití v produkčním prostředí doporučujeme, abyste pro službu na straně serveruvygenerovali přístupové tokeny.

Všechny ceny zobrazené v rámci tohoto kurzu jsou pouze pro demonstrační účely.

Požadavky

Konečný kód

Finalizovaný kód pro tento rychlý start najdete na GitHub.

Nastavení

Vytvoření nové aplikace v jazyce C#

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí příkazu vytvořte novou konzolovou aplikaci s dotnet new názvem AccessTokensQuickstart . Tento příkaz vytvoří jednoduchý projekt "Hello World" jazyka C# s jedním zdrojovým souborem: Program.cs .

dotnet new console -o AccessTokensQuickstart

Změňte adresář na nově vytvořenou složku aplikace a pomocí dotnet build příkazu zkompilujte aplikaci.

cd AccessTokensQuickstart
dotnet build

Měl by se zobrazit jednoduchý výstup "Hello World". Pokud všechno funguje, znamená to, že vaše nastavení funguje správně a že můžeme začít psát kód specifický pro ACS.

Instalace balíčku

V adresáři aplikace nainstalujte knihovnu Azure Communication Services Identity pro balíček .NET pomocí dotnet add package příkazu .

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

Nastavení architektury aplikace

Z adresáře projektu:

  1. Otevření Program.cs souboru v textovém editoru
  2. Přidání using direktivy pro zahrnutí oboru Azure.Communication.Identity názvů
  3. Aktualizace deklarace Main metody pro podporu asynchronního kódu

Začněte následujícím kódem:

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

Ověření klienta

Teď inicializujeme s CommunicationIdentityClient vaším připojovacím řetězcem . Následující kód načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING . Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.

Do metody Main přidejte následující kód:

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

Alternativně můžete oddělit koncový bod a přístupový klíč.

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

Pokud máte nastavenou Azure Active Directory (AD), podívejte se na použití objektů služby ,můžete se také ověřit ve službě AD.

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

Vytvoření identity

K vytvoření přístupových tokenů budete potřebovat identitu. Azure Communication Services tento účel udržuje jednoduchý adresář identit. Pomocí createUser metody vytvořte novou položku v adresáři s jedinečným objektem Id . Identita se vyžaduje později k vydání přístupových tokenů.

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

Přijatou identitu byste měli uložit s mapováním na uživatele vaší aplikace. Například jejich uložením do databáze aplikačního serveru.

Vydávání přístupových tokenů identit

Jakmile máte identitu, použijte metodu GetToken k vystavení přístupového tokenu pro identitu. Parametr scopes definuje sadu oprávnění/schopností, které může tento přístupový token provést. Podívejte se na seznam podporovaných akcí. Novou instanci objektu je také možné vytvořit na communicationUser základě řetězcové reprezentace identity služby Azure Communication Service.

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

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu zadat. Pokud to neuměníte, může to způsobit přerušení činnosti uživatelů vaší aplikace. Vlastnost expiresOn odpovědi označuje životnost přístupového tokenu.

Vytvoření identity a vydání přístupového tokenu v rámci stejné žádosti

Pomocí metody můžete vytvořit identitu Communication Services a současně pro něj vydat CreateUserAndTokenAsync přístupový token. Parametr scopes definuje sadu oprávnění/schopností, které může tento přístupový token provést. Podívejte se na seznam podporovaných akcí.

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

Aktualizace přístupového tokenu

Pokud chcete aktualizovat přístupový token, předejte instanci CommunicationUserIdentifier objektu do GetTokenAsync . Pokud jste tento soubor uložili a potřebujete vytvořit nový , můžete to provést předáním uloženého objektu Id CommunicationUserIdentifier do Id CommunicationUserIdentifier konstruktoru následujícím způsobem:

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

Odvolání přístupových tokenů

V některých případech možná budete muset přístupové tokeny explicitně odvolat. Například když uživatel aplikace změní heslo, které používá k ověření ve vaší službě. Metoda RevokeTokensAsync zruší platnost všech aktivních přístupových tokenů vystavených identitě.

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

Odstranění identity

Odstranění identity odvolá všechny aktivní přístupové tokeny a zabrání vám ve vydávání přístupových tokenů pro identity. Odebere také veškerý trvalý obsah přidružený k identitě.

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

Spuštění kódu

Po dokončení můžete aplikaci spustit z adresáře aplikace pomocí dotnet run příkazu .

dotnet run

Požadavky

Konečný kód

Finalizovaný kód pro tento rychlý start najdete na GitHub.

Nastavení

Vytvoření nové Node.js aplikace

Otevřete terminál nebo příkazové okno a vytvořte nový adresář pro vaši aplikaci a přejděte do něj.

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

Spuštěním npm init -y vytvořte soubor s výchozím package.json nastavením.

npm init -y

Instalace balíčku

Pomocí příkazu npm install nainstalujte sadu Azure Communication Services Identity SDK pro JavaScript.

npm install @azure/communication-identity --save

Možnost --save vypíše knihovnu jako závislost v package.json souboru.

Nastavení architektury aplikace

V adresáři projektu začněte následujícím kódem:

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

Po dokončení uložte nový soubor jako issue-access-token.js do adresáře projektu.

Ověření klienta

Vytvořte instanci s CommunicationIdentityClient vaším připojovacím řetězcem. Následující kód načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING . Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.

Do metody main přidejte následující kód:

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

Případně můžete koncový bod a přístupový klíč oddělit.

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

Pokud máte aplikaci azure Azure Active Directory (Azure AD), podívejte se na použití objektů služby ,můžete se také ověřit v Azure AD.

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

Vytvoření identity

K vytvoření přístupových tokenů budete potřebovat identitu. Azure Communication Services udržuje jednoduchý adresář identit. Pomocí createUser metody vytvořte novou položku v adresáři s jedinečným objektem Id . K vydání přístupových tokenů se později vyžaduje vytvořená identita.

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

Měli byste ukládat přijaté identity s mapováním na uživatele vaší aplikace. Například v databázi aplikačního serveru.

Vydávání přístupových tokenů

Pomocí metody můžete vydat přístupový token pro již existující getToken identitu Communication Services identity. Parametr scopes definuje seznam oprávnění/rolí, které může tento token provést nebo použít. Podívejte se na seznam podporovaných akcí. Novou instanci parametru communicationUser je možné vytvořit na základě řetězcové reprezentace identity služby Azure Communication Service.

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

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu zadat. Pokud to neuměníte, může to způsobit přerušení činnosti uživatelů vaší aplikace. Vlastnost expiresOn označuje životnost přístupového tokenu.

Vytvoření identity a vydání přístupového tokenu v rámci jednoho volání metody

Pomocí metody můžete vytvořit identitu Communication Services a vydat pro něj createUserAndToken přístupový token v jednom případě. Parametr scopes je stejný jako výše. Znovu vytvoříme aplikaci s voip oborem .

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

Obnovení přístupových tokenů

S vypršením platnosti tokenů je budete muset pravidelně aktualizovat. Aktualizace se snadno volá getToken znovu se stejnou identitou, která se použila k vydávání tokenů. Budete také muset zadat z scopes obnovených tokenů.

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

Odvolání přístupových tokenů

V některých případech můžete chtít odvolat přístupové tokeny. Například když uživatel aplikace změní heslo, které používá k ověření ve vaší službě. Metoda revokeTokens zruší platnost všech aktivních přístupových tokenů vystavených identitě.

await identityClient.revokeTokens(identityResponse);

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

Odstranění identity

Odstranění identity odvolá všechny aktivní přístupové tokeny a zabrání vám ve vydávání přístupových tokenů pro identitu. Odebere také veškerý trvalý obsah přidružený k identitě.

await identityClient.deleteUser(identityResponse);

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

Spuštění kódu

Z příkazového řádku konzoly přejděte do adresáře, který obsahuje soubor, a spusťte následující příkaz issue-access-token.js node pro spuštění aplikace.

node ./issue-access-token.js

Požadavky

Konečný kód

Vyhledejte finální kód pro tento rychlý Start v GitHub.

Nastavení

Vytvoření nové aplikace v Pythonu

  1. Otevřete okno terminálu nebo příkazového řádku pro svoji aplikaci vytvořte nový adresář a přejděte do něj.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Pomocí textového editoru vytvořte soubor s názvem issue-access-tokens.py v kořenovém adresáři projektu a přidejte strukturu pro program, včetně základního zpracování výjimek. Do tohoto souboru přidáte veškerý zdrojový kód pro tento rychlý Start v následujících oddílech.

    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)
    

Instalace balíčku

Ještě pořád v adresáři aplikace nainstalujte sadu Azure Communication Services identity SDK pro Python pomocí pip install příkazu.

pip install azure-communication-identity

Ověření klienta

V dalším kroku vytvoříme CommunicationIdentityClient připojení k vašemu připojovacímu řetězci. Následující kód načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING . Naučte se Spravovat připojovací řetězec prostředku.

Přidejte tento kód do try bloku:

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

případně, pokud máte nastavenou aplikaci Azure Active Directory (Azure AD), přečtěte si téma použití instančních objektů, můžete se také ověřit pomocí služby Azure AD.

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

Vytvoření identity

K vytvoření přístupových tokenů budete potřebovat identitu. Komunikační služby Azure udržují zjednodušený adresář identit. Použijte create_user metodu k vytvoření nové položky v adresáři s jedinečným objektem Id . Identita se vyžaduje později pro vydávání přístupových tokenů.

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

Obdrženou identitu byste měli uložit s mapováním na uživatele vaší aplikace. Například uložením do databáze aplikačního serveru.

Vystavení přístupových tokenů

Použijte get_token metodu pro vydání přístupového tokenu pro již existující identitu komunikačních služeb. scopesParametr definuje sadu oprávnění/schopností, které tento přístupový token může provádět. Podívejte se na seznam podporovaných akcí. Nová instance parametru CommunicationUserIdentifier se dá sestavit taky na základě řetězcové reprezentace identity komunikační služby Azure.

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

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vydat. V takovém případě může dojít k přerušení činnosti uživatelů vaší aplikace. expires_onVlastnost Response označuje dobu života přístupového tokenu.

Vytvoření identity a vydání přístupového tokenu v rámci stejné žádosti

Tuto metodu můžete použít create_user_and_token k vytvoření identity komunikačních služeb a k vydání přístupového tokenu. scopesParametr definuje sadu oprávnění/schopností, které může tento přístupový token provádět.. Podívejte se na seznam podporovaných akcí.

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

Obnovení přístupových tokenů

K aktualizaci přístupového tokenu použijte CommunicationUserIdentifier objekt k vystavení tokenu předáním existující identity:

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

Odvolat přístupové tokeny

V některých případech možná budete chtít explicitně odvolat přístupové tokeny. Například když uživatel aplikace změní heslo, které používá k ověření vaší služby. revoke_tokensMetoda zruší platnost všech aktivních přístupových tokenů, které byly vydány identitě.

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

Odstranění identity

Odstranění identity odvolá všechny aktivní přístupové tokeny a zabrání vám v vystavování přístupových tokenů pro danou identitu. Zároveň se tím odebere veškerý trvalý obsah přidružený k identitě.

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

Spuštění kódu

V příkazovém řádku konzoly přejděte do adresáře obsahujícího issue-access-tokens.py soubor a potom python Spusťte následující příkaz, který spustí aplikaci.

python ./issue-access-tokens.py

Požadavky

Konečný kód

Vyhledejte finální kód pro tento rychlý Start v GitHub.

Nastavení

Vytvoření nové aplikace Java

Otevřete okno terminálu nebo příkazového řádku. Přejděte do adresáře, do kterého chcete vytvořit aplikaci Java. Spuštěním následujícího příkazu vygenerujte projekt Java ze šablony Maven-Archetype-Starter.

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

Všimněte si, že úloha generovat vytvořila adresář se stejným názvem, jako má artifactId . v tomto adresáři obsahuje src/main/java adresář zdrojového kódu projektu, src/test/java directory obsahuje zdroj testu a pom.xml soubor je Project objektový Model projektu nebo POM. Tento soubor se používá pro parametry konfigurace projektu.

Instalace balíčků ACS

Otevřete pom.xml soubor v textovém editoru. Přidejte následující prvek závislosti do skupiny závislostí.

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

Tím se dá pokyn Maven instalovat sadu SDK identity ACS, když ji použijeme později.

Nastavení aplikační architektury

Z adresáře projektu:

  1. Přejděte k adresáři /src/main/java/com/communication/quickstart.
  2. Otevřete App.java soubor v editoru.
  3. Nahradit System.out.println("Hello world!"); příkaz
  4. Přidat import direktivy

Pro začátek použijte následující kód:

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

Ověření klienta

Vytvořte instanci a CommunicationIdentityClient pomocí přístupového klíče prostředku a koncového bodu. Naučte se Spravovat připojovací řetězec prostředku. Kromě toho můžete klienta inicializovat pomocí libovolného vlastního klienta HTTP, který implementuje com.azure.core.http.HttpClient rozhraní.

Do metody přidejte následující kód main 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();

Můžete také zadat celý připojovací řetězec pomocí connectionString() metody místo poskytnutí koncového bodu a přístupového klíče.

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

pokud máte nastavenou aplikaci Azure Active Directory (Azure AD), přečtěte si téma použití instančních objektů, můžete se také ověřit pomocí služby Azure AD.

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

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

Vytvoření identity

K vytvoření přístupových tokenů budete potřebovat identitu. Komunikační služby Azure udržují zjednodušený adresář identit. Použijte createUser metodu k vytvoření nové položky v adresáři s jedinečným objektem Id .

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

Vytvořená identita se později vyžaduje pro vydávání přístupových tokenů. Proto byste měli uložit všechny přijaté identity s mapováním na uživatele aplikace. Například uložením do databáze aplikačního serveru.

Vystavení přístupových tokenů

Použijte getToken metodu pro vydání přístupového tokenu pro již existující identitu komunikačních služeb. scopesParametr definuje sadu oprávnění a schopností, které bude tento token moci provádět. Platné hodnoty najdete v seznamu podporovaných akcí . V tomto případě použijeme naši uživatelskou proměnnou vytvořenou v předchozím kroku k získání tokenu.

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

Vytvoření tokenu identity a problému v jednom požadavku

Alternativně můžeme použít metodu createUserAndToken k vytvoření nové položky v adresáři s jedinečným Id a vydáním přístupového tokenu.

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

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vydat. V takovém případě může dojít k přerušení činnosti uživatelů vaší aplikace. expiresAtVlastnost označuje dobu života přístupového tokenu.

Obnovení přístupových tokenů

K aktualizaci přístupového tokenu použijte CommunicationUserIdentifier objekt, který se má znovu vystavit:

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

Odvolání přístupového tokenu

V některých případech je možné explicitně odvolat přístupové tokeny. Například když uživatel aplikace změní heslo, které používá k ověření vaší služby. revokeTokensMetoda zruší platnost všech aktivních přístupových tokenů pro konkrétního uživatele. V tomto případě znovu použijeme dříve vytvořeného uživatele.

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

Odstranění identity

Odstranění identity odvolá všechny aktivní přístupové tokeny a zabrání vám v vystavování přístupových tokenů pro danou identitu. Zároveň se tím odebere veškerý trvalý obsah přidružený k identitě.

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

Spuštění kódu

Přejděte do adresáře obsahujícího pom.xml soubor a zkompilujte projekt pomocí následujícího mvn příkazu.

mvn compile

Pak Sestavte balíček.

mvn package

Spusťte následující mvn příkaz, který aplikaci spustí.

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

Výstup aplikace popisuje každou akci, která je dokončena:

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

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služby Communications Services, můžete prostředek nebo skupinu prostředků odstranit. Odstraněním skupiny prostředků se odstraní také všechny další prostředky, které jsou k ní přidružené. Přečtěte si další informace o vyčištění prostředků.

Další kroky

V tomto rychlém startu jste se naučili:

  • Správa identit
  • Vystavení přístupových tokenů
  • Použití sady SDK identity komunikačních služeb

Můžete také chtít: