Rychlý start: Vytváření a správa přístupových tokenů

Přístupové tokeny umožňují Azure Communication Services sadám SDK ověřit se přímo proti Azure Communication Services jako konkrétní identitě. Pokud chcete, aby se uživatelé připojili k vláknu volání nebo chatu v rámci vaší aplikace, budete muset vytvořit přístupové tokeny.

V tomto rychlém startu se dozvíte, jak používat sady SDK Azure Communication Services k vytváření identit a správě přístupových tokenů. Pro případy použití v produkčním prostředí doporučujeme generovat přístupové tokeny ve službě na straně serveru.

Požadavky

Nastavení

Přidání rozšíření

Přidejte rozšíření Azure Communication Services pro Azure CLI pomocí az extension příkazu .

az extension add --name communication

Přihlášení k Azure CLI

Budete se muset přihlásit k Azure CLI. Můžete se přihlásit spuštěním az login příkazu z terminálu a zadáním přihlašovacích údajů.

(Volitelné) Použití operací identit Azure CLI bez předání připojovacího řetězce

Proměnnou prostředí můžete nakonfigurovat tak AZURE_COMMUNICATION_CONNECTION_STRING , aby používala operace identity Azure CLI, aniž byste museli předávat --connection_string připojovací řetězec. Pokud chcete nakonfigurovat proměnnou prostředí, otevřete okno konzoly a na následujících kartách vyberte svůj operační systém. Nahraďte <yourConnectionString> skutečným připojovacím řetězcem.

Otevřete okno konzoly a zadejte následující příkaz:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

Po přidání proměnné prostředí možná bude nutné restartovat všechny spuštěné programy, které budou potřebovat číst tuto proměnnou prostředí, a to včetně okna konzoly. Pokud například jako editor používáte Visual Studio, před spuštěním příkladu restartujte Sadu Visual Studio.

Uložení přístupového tokenu do proměnné prostředí

Pokud chcete nakonfigurovat proměnnou prostředí, otevřete okno konzoly a na následujících kartách vyberte svůj operační systém. Nahraďte <yourAccessToken> skutečným přístupovým tokenem.

Otevřete okno konzoly a zadejte následující příkaz:

setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"

Po přidání proměnné prostředí možná bude nutné restartovat všechny spuštěné programy, které budou potřebovat číst tuto proměnnou prostředí, a to včetně okna konzoly. Pokud například jako editor používáte Visual Studio, před spuštěním příkladu restartujte Sadu Visual Studio.

Operace

Vytvoření identity

K vytvoření přístupových tokenů potřebujete identitu. Azure Communication Services pro tento účel udržuje adresář zjednodušené identity. Pomocí příkazu user create vytvořte novou položku v adresáři s jedinečným Idobjektem . Identita se vyžaduje později pro vydávání přístupových tokenů.

az communication identity user create --connection-string "<yourConnectionString>"
  • Nahraďte <yourConnectionString> připojovacím řetězcem.

Vytvoření identity a vystavení přístupového tokenu ve stejném požadavku

Spuštěním následujícího příkazu vytvořte identitu komunikačních služeb a současně pro ni vygenerujte přístupový token. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v tématu Ověřování pro Azure Communication Services.

az communication identity token issue --scope chat --connection-string "<yourConnectionString>"

Proveďte v kódu toto nahrazení:

  • Nahraďte <yourConnectionString> připojovacím řetězcem.

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

Spuštěním následujícího příkazu vygenerujte přístupový token pro vaši identitu komunikačních služeb. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v tématu Ověřování pro Azure Communication Services.

az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"

Proveďte v kódu toto nahrazení:

  • Nahraďte <yourConnectionString> připojovacím řetězcem.
  • Nahraďte <userId> uživatelem userId.

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vysunout. Pokud to neuděláte, může dojít k narušení uživatelského prostředí vaší aplikace. Vlastnost expires_on response označuje životnost přístupového tokenu.

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

Spuštěním následujícího příkazu vygenerujte přístupový token s více obory pro vaši identitu komunikačních služeb. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v modelu identit.

az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"

Proveďte v kódu toto nahrazení:

  • Nahraďte <yourConnectionString> připojovacím řetězcem.
  • Nahraďte <userId> uživatelem userId.

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vysunout. Pokud to neuděláte, může dojít k narušení uživatelského prostředí vaší aplikace. Vlastnost expires_on response označuje životnost přístupového tokenu.

Výměna přístupového tokenu Azure AD uživatele Teams za přístupový token komunikační identity

Pomocí příkazu vygenerujte token get-for-teams-user přístupový token pro uživatele Teams, který se dá použít s sadami SDK Azure Communication Services.

az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"

Proveďte v kódu toto nahrazení:

  • Nahraďte <yourConnectionString> připojovacím řetězcem.
  • Nahraďte <yourAadUser> uživatelem Azure Active Directory.
  • Nahraďte <yourAadApplication> id vaší aplikace Azure Active Directory.
  • Nahraďte <yourAadToken> přístupovým tokenem Azure Active Directory.

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

Někdy může být potřeba explicitně odvolat přístupový token. Uděláte to například v případě, že uživatelé aplikace změní heslo, které používají k ověření ve vaší službě. Příkaz token revoke zruší platnost všech aktivních přístupových tokenů, které byly identitě vystaveny.

az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"

Proveďte v kódu toto nahrazení:

  • Nahraďte <yourConnectionString> připojovacím řetězcem.
  • Nahraďte <userId> uživatelem userId.

Odstranění identity

Když odstraníte identitu, odvoláte všechny aktivní přístupové tokeny a zabráníte dalšímu vystavování přístupových tokenů pro identitu. Tím se také odebere veškerý trvalý obsah, který je přidružený k identitě.

az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"

Proveďte v kódu toto nahrazení:

  • Nahraďte <yourConnectionString> připojovacím řetězcem.
  • Nahraďte <userId> uživatelem userId.

Požadavky

Konečný kód

Na GitHubu najdete dokončený kód pro tento rychlý start.

Nastavení prostředí

Vytvoření nové aplikace v jazyce C#

V okně příkazového řádku, jako je například cmd, PowerShell nebo Bash, spusťte dotnet new příkaz k vytvoření nové konzolové aplikace s názvem AccessTokensQuickstart. Tento příkaz vytvoří jednoduchý "Hello World" projekt 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 ano, vaše nastavení funguje správně a můžete začít psát kód specifický pro Azure Communication Services.

Instalace balíčku

Dokud jste stále 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

Nastavení architektury aplikace

V adresáři projektu postupujte takto:

  1. Otevřete soubor Program.cs v textovém editoru.
  2. Přidejte direktivu using , která zahrne Azure.Communication.Identity obor názvů.
  3. Main Aktualizujte deklaraci metody tak, aby podporovala asynchronní kód.

Začněte spuštěním následujícího kódu:

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

Inicializujte CommunicationIdentityClient pomocí připojovacího řetězce. Následující kód, který přidáte do Main metody, načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING.

Další informace najdete v části "Uložení připojovacího řetězce" v tématu Vytvoření a správa prostředků komunikačních služeb.

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

Případně můžete koncový bod a přístupový klíč oddělit spuštěním následujícího kódu:

// 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 jste už nastavili aplikaci Azure Active Directory (Azure AD), můžete provést ověření pomocí Azure AD.

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

Vytvoření identity

K vytvoření přístupových tokenů potřebujete identitu. Azure Communication Services pro tento účel udržuje adresář zjednodušené identity. createUser Pomocí metody vytvořte novou položku v adresáři s jedinečným Idobjektem . Identita se vyžaduje později pro vydávání přístupových tokenů.

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

Uložte přijatou identitu s mapováním na uživatele vaší aplikace (například jejím uložením do databáze aplikačního serveru).

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

Jakmile budete mít identitu komunikačních služeb, pomocí GetToken metody pro ni vygenerujte přístupový token. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v modelu identit. Můžete také vytvořit novou instanci na communicationUser základě řetězcové reprezentace identity služby Azure Communication Service.

// Issue an access token with a validity of 24 hours and the "voip" scope for an identity
var tokenResponse = await client.GetTokenAsync(identity, scopes: new [] { CommunicationTokenScope.VoIP });

// Get the token from the response
var token =  tokenResponse.Value.Token;
var expiresOn = tokenResponse.Value.ExpiresOn;
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vysunout. Pokud to neuděláte, může dojít k narušení uživatelského prostředí vaší aplikace. Vlastnost expiresOn označuje životnost přístupového tokenu.

Nastavení času vypršení platnosti vlastního tokenu

Výchozí doba vypršení platnosti tokenu je 24 hodin, ale můžete ji nakonfigurovat zadáním hodnoty mezi hodinou a 24 hodinou volitelného parametru tokenExpiresIn. Při žádosti o nový token doporučujeme zadat očekávanou typickou délku komunikační relace pro dobu vypršení platnosti tokenu.

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

Vytvoření identity a vystavení tokenu ve stejném požadavku

Pomocí metody můžete CreateUserAndTokenAsync vytvořit identitu komunikačních služeb a současně pro ni vydat přístupový token. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v tématu Ověřování pro Azure Communication Services.

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

// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);

Obnovení přístupových tokenů

Pokud chcete aktualizovat přístupový token, předejte instanci objektu CommunicationUserIdentifier do GetTokenAsync. Pokud jste si to Id uložili a potřebujete vytvořit nový CommunicationUserIdentifier, můžete to udělat tak, že svoje uložené předáte Id do konstruktoru CommunicationUserIdentifier následujícím způsobem:

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

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

Někdy může být potřeba explicitně odvolat přístupový token. Uděláte to například v případě, že uživatelé aplikace změní heslo, které používají k ověření ve vaší službě. Metoda RevokeTokensAsync zneplatní všechny aktivní přístupové tokeny, které byly identitě vystaveny.

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

Odstranění identity

Když odstraníte identitu, odvoláte všechny aktivní přístupové tokeny a zabráníte dalšímu vystavování přístupových tokenů pro identitu. Tím se také odebere veškerý trvalý obsah, který je přidružený k identitě.

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

Spuštění kódu

Po vytvoření přístupového tokenu můžete aplikaci spustit z adresáře aplikace pomocí dotnet run příkazu .

dotnet run

Výstup aplikace popisuje každou dokončenou akci:

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

Požadavky

Konečný kód

Na GitHubu najdete dokončený kód pro tento rychlý start.

Nastavení prostředí

Vytvoření nové aplikace Node.js

V terminálu nebo okně příkazového řádku vytvořte pro aplikaci nový adresář a pak ho otevřete.

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

Spuštěním příkazu npm init -y vytvořte soubor package.json s výchozím 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@latest --save

Možnost --save zobrazí seznam knihovny jako závislosti v souboru package.json .

Nastavení architektury aplikace

  1. Vytvořte soubor s názvem issue-access-token.js v adresáři projektu a přidejte následující kód:

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

Ověření klienta

CommunicationIdentityClient Vytvořte instanci s připojovacím řetězcem. Následující kód, který přidáte do Main metody, načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING.

Další informace najdete v části "Uložení připojovacího řetězce" v tématu Vytvoření a správa prostředků komunikačních služeb.

// 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 spuštěním následujícího kódu:

// 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 jste už nastavili aplikaci Azure Active Directory (Azure AD), můžete provést ověření pomocí 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ů potřebujete identitu. Azure Communication Services pro tento účel udržuje adresář zjednodušené identity. createUser Pomocí metody vytvořte novou položku v adresáři s jedinečným Idobjektem . Identita se vyžaduje později pro vydávání přístupových tokenů.

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

Uložte přijatou identitu s mapováním na uživatele vaší aplikace (například jejím uložením do databáze aplikačního serveru).

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

Použijte metodu getToken k vydání přístupového tokenu pro vaši identitu komunikačních služeb. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v modelu identit. Můžete také vytvořit novou instanci objektu communicationUser na základě řetězcové reprezentace identity služby Azure Communication Service.

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

// Get the token and its expiration date from the response
const { token, expiresOn } = tokenResponse;
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);

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

Nastavení času vypršení platnosti vlastního tokenu

Výchozí doba vypršení platnosti tokenu je 24 hodin (1440 minut), ale můžete ji nakonfigurovat zadáním hodnoty mezi 60 a 1440 minut pro volitelný parametr tokenExpiresInMinutes. Při žádosti o nový token se doporučuje zadat očekávanou typickou délku komunikační relace pro dobu vypršení platnosti tokenu.

// Issue an access token with a validity of an hour and the "voip" scope for an identity
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let tokenResponse = await identityClient.getToken
(identityResponse, ["voip"], tokenOptions);

Vytvoření identity a vystavení tokenu při volání jedné metody

Pomocí metody můžete createUserAndToken vytvořit identitu služby Communication Services a současně pro ni vystavit přístupový token. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Znovu ho vytvoříte s oborem voip .

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

// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);

Obnovení přístupových tokenů

Jakmile vyprší platnost tokenů, budete je pravidelně muset aktualizovat. Aktualizace je snadná, stačí znovu zavolat getToken se stejnou identitou, která se použila k vydání tokenů. Budete také muset zadat scopes aktualizované tokeny.

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

Někdy může být potřeba odvolat přístupový token. Uděláte to například v případě, že uživatelé aplikace změní heslo, které používají k ověření ve vaší službě. Metoda revokeTokens zruší platnost všech aktivních přístupových tokenů, které byly vydány identitě.

await identityClient.revokeTokens(identityResponse);

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

Odstranění identity

Když odstraníte identitu, odvoláte všechny aktivní přístupové tokeny a zabráníte dalšímu vystavování přístupových tokenů pro identitu. Tím se také odebere veškerý trvalý obsah, který je přidružený k identitě.

await identityClient.deleteUser(identityResponse);

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

Spuštění kódu

V příkazovém řádku konzoly přejděte do adresáře, který obsahuje souborissue-access-token.js , a spuštěním následujícího node příkazu spusťte aplikaci:

node ./issue-access-token.js

Výstup aplikace popisuje každou dokončenou akci:

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

Požadavky

Konečný kód

Najděte hotový kód pro tento rychlý start na GitHubu.

Nastavení prostředí

Vytvoření nové aplikace v Pythonu

  1. V terminálu nebo v okně příkazového řádku vytvořte nový adresář pro aplikaci a pak ho otevřete.

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

    import os
    from datetime import timedelta
    from azure.communication.identity import CommunicationIdentityClient, CommunicationUserIdentifier
    
    try:
       print("Azure Communication Services - Access Tokens Quickstart")
       # Quickstart code goes here
    except Exception as ex:
       print("Exception:")
       print(ex)
    

Instalace balíčku

Dokud jste stále v adresáři aplikace, nainstalujte balíček Azure Communication Services Identity SDK pro Python pomocí pip install příkazu .

pip install azure-communication-identity

Ověření klienta

Vytvořte instanci s použitím připojovacího CommunicationIdentityClient řetězce. Následující kód, který přidáte do try bloku, načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING.

Další informace najdete v části Uložení připojovacího řetězce v tématu Vytvoření a správa prostředků komunikačních služeb.

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

Případně pokud jste už nastavili aplikaci Azure Active Directory (Azure AD), můžete provést ověření pomocí Azure AD.

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

Vytvoření identity

K vytvoření přístupových tokenů potřebujete identitu. Azure Communication Services pro tento účel udržuje adresář zjednodušené identity. create_user Pomocí metody vytvořte novou položku v adresáři s jedinečným Idobjektem . Identita se později vyžaduje pro vydávání přístupových tokenů.

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

Uložte přijatou identitu s mapováním na uživatele vaší aplikace (například jejím uložením do databáze aplikačního serveru).

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

Použijte metodu get_token k vydání přístupového tokenu pro vaši identitu služby Communication Services. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v modelu identit. Můžete také vytvořit novou instanci parametru CommunicationUserIdentifier na základě řetězcové reprezentace identity služby Azure Communication Service.

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

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vysunout. Pokud to neuděláte, může to způsobit přerušení uživatelského prostředí vaší aplikace. Vlastnost expires_on response označuje životnost přístupového tokenu.

Nastavení času vypršení platnosti vlastního tokenu

Výchozí doba vypršení platnosti tokenu je 24 hodin, ale můžete ji nakonfigurovat zadáním hodnoty mezi hodinou a 24 hodinou volitelného parametru token_expires_in. Při žádosti o nový token se doporučuje zadat očekávanou typickou délku komunikační relace pro dobu vypršení platnosti tokenu.

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

Vytvoření identity a vystavení přístupového tokenu ve stejném požadavku

Pomocí metody můžete create_user_and_token vytvořit identitu služby Communication Services a současně pro ni vystavit přístupový token. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v tématu Ověření Azure Communication Services.

# Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
identity_token_result = client.create_user_and_token(["voip"])

# Get the token details from the response
identity = identity_token_result[0]
token = identity_token_result[1].token
expires_on = identity_token_result[1].expires_on
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)

Obnovení přístupových tokenů

Pokud chcete aktualizovat přístupový token, použijte CommunicationUserIdentifier objekt k opětovnému odeslání tokenu předáním existující identity:

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

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

Někdy může být potřeba přístupový token explicitně odvolat. Uděláte to například v případě, že uživatelé aplikace změní heslo, které používají k ověření ve vaší službě. Metoda revoke_tokens 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

Když odstraníte identitu, odvoláte všechny aktivní přístupové tokeny a zabráníte dalšímu vystavování přístupových tokenů pro identitu. Tím se také odebere veškerý trvalý obsah, který je 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, který obsahuje soubor issue-access-tokens.py , a spuštěním následujícího python příkazu spusťte aplikaci.

python ./issue-access-tokens.py

Výstup aplikace popisuje každou dokončenou akci:

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

Požadavky

Konečný kód

Najděte hotový kód pro tento rychlý start na GitHubu.

Nastavení prostředí

Vytvoření nové aplikace v Javě

V okně terminálu nebo příkazového řádku přejděte do adresáře, ve kterém chcete vytvořit aplikaci v Javě. Pokud chcete vygenerovat projekt Java ze šablony maven-archetype-quickstart, spusťte následující kód:

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

Všimněte si, že generate úloha vytvoří adresář se stejným názvem jako artifactId. Adresář src/main/java v tomto adresáři obsahuje zdrojový kód projektu, adresář src/test/java obsahuje zdroj testů a souborpom.xml je objektový model projektu neboli POM projektu. Tento soubor se používá pro parametry konfigurace projektu.

Instalace balíčků komunikačních služeb

Otevřete souborpom.xml v textovém editoru. Do skupiny závislostí přidejte následující element závislosti:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
    <version>[1.4.0,)</version>
</dependency>

Tento kód dává Mavenu pokyn k instalaci sady SDK identity služby Communication Services, kterou použijete později.

Nastavení architektury aplikace

V adresáři projektu udělejte toto:

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

Začněte pomocí následujícího kódu:

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 s přístupovým CommunicationIdentityClient klíčem a koncovým bodem vašeho prostředku. Další informace najdete v části Uložení připojovacího řetězce v tématu Vytvoření a správa prostředků komunikačních služeb.

Kromě toho můžete inicializovat klienta pomocí libovolného vlastního klienta HTTP, který implementuje rozhraní com.azure.core.http.HttpClient .

Do souboru App.java přidejte do main metody následující kód:

// 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ísto zadání koncového bodu a přístupového klíče můžete zadat celý připojovací řetězec pomocí connectionString() metody .

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

Pokud jste už nastavili aplikaci Azure Active Directory (Azure AD), můžete provést ověření pomocí 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ů potřebujete identitu. Azure Communication Services pro tento účel udržuje adresář zjednodušené identity. createUser Pomocí metody vytvořte novou položku v adresáři s jedinečným Idobjektem .

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ů. Uložte přijatou identitu s mapováním na uživatele vaší aplikace (například jejím uložením do databáze aplikačního serveru).

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

Použijte metodu getToken k vydání přístupového tokenu pro vaši identitu služby Communication Services. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v modelu identit.

V následujícím kódu použijte k získání tokenu proměnnou uživatele, kterou jste vytvořili v předchozím kroku.

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

Přístupové tokeny jsou krátkodobé přihlašovací údaje, které je potřeba znovu vysunout. Pokud to neuděláte, může to způsobit přerušení uživatelského prostředí vaší aplikace. Vlastnost expiresAt označuje životnost přístupového tokenu.

Nastavení času vypršení platnosti vlastního tokenu

Výchozí doba vypršení platnosti tokenu je 24 hodin, ale můžete ji nakonfigurovat zadáním hodnoty mezi hodinou a 24 hodinou volitelného parametru tokenExpiresIn. Při žádosti o nový token se doporučuje zadat očekávanou typickou délku komunikační relace pro dobu vypršení platnosti tokenu.

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

Vytvoření identity a vystavení tokenu v jednom požadavku

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

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

Obnovení přístupových tokenů

Pokud chcete aktualizovat přístupový token, pomocí objektu CommunicationUserIdentifier ho znovu vygenerujte:

// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);

Odvolání přístupového tokenu

Někdy může být potřeba přístupový token explicitně odvolat. Uděláte to například v případě, že uživatelé aplikace změní heslo, které používají k ověření ve vaší službě. Metoda revokeTokens zruší platnost všech aktivních přístupových tokenů pro konkrétního uživatele. V následujícím kódu můžete použít 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

Když odstraníte identitu, odvoláte všechny aktivní přístupové tokeny a zabráníte dalšímu vystavování přístupových tokenů pro identitu. Tím se také odebere veškerý trvalý obsah, který je 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, který obsahuje souborpom.xml , a zkompilujte projekt pomocí následujícího mvn příkazu:

mvn compile

Pak sestavte balíček:

mvn package

Spuštěním následujícího mvn příkazu spusťte aplikaci:

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

Výstup aplikace popisuje každou dokončenou akci:

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

Použití identity pro monitorování a metriky

ID uživatele slouží jako primární klíč pro protokoly a metriky shromažďované prostřednictvím služby Azure Monitor. Pokud chcete například zobrazit všechna volání uživatele, můžete nastavit ověřování způsobem, který mapuje konkrétní Azure Communication Services identitu (neboli identity) na jednoho uživatele.

Přečtěte si další informace o konceptech ověřování, diagnostice volání prostřednictvím log Analytics a metrikách , které máte k dispozici.

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

Pokud chcete vyčistit a odebrat předplatné komunikačních služeb, odstraňte prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Další informace najdete v části Vyčištění prostředků v tématu Vytváření a správa prostředků komunikačních služeb.

Další kroky

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

  • Správa identit
  • Vydávání přístupových tokenů
  • Použití sady SDK identity služby Communication Services

Můžete také chtít: