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

Přístupové tokeny umožňují, aby se sady SDK azure Communication Services ověřovaly přímo ve službě Azure Communication Services jako konkrétní identita. Pokud chcete, aby se uživatelé připojili ke vláknu hovoru nebo chatu ve vaší aplikaci, budete muset vytvořit přístupové tokeny.

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

Požadavky

Nastavení

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

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

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 zadat své přihlašovací údaje.

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

Proměnnou AZURE_COMMUNICATION_CONNECTION_STRING prostředí můžete nakonfigurovat tak, 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 operační systém. Nahraďte <yourConnectionString> skutečnými připojovací řetězec.

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 Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

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 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 Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.

Operace

Vytvoření identity

K vytvoření přístupových tokenů potřebujete identitu. Služba Azure Communication Services pro tento účel udržuje jednoduchý adresář identit. user create Pomocí příkazu vytvořte novou položku v adresáři s jedinečným Id. 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í řetězec.

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í služby a zároveň pro ni vydáte 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 rámci ověřování ve službě Azure Communication Services.

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

Proveďte tuto náhradu v kódu:

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

Vystavení přístupového tokenu

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

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

Proveďte tuto náhradu v kódu:

  • Nahraďte <yourConnectionString> připojovací řetězec.
  • Nahraďte <userId> id uživatele.

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

Vydání přístupového tokenu s několika obory

Spuštěním následujícího příkazu vydáte přístupový token s více obory pro vaši identitu komunikační služby. 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 tuto náhradu v kódu:

  • Nahraďte <yourConnectionString> připojovací řetězec.
  • Nahraďte <userId> id uživatele.

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

Výměna přístupového tokenu Microsoft Entra uživatele Teams pro přístupový token komunikační identity

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

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

Proveďte tuto náhradu v kódu:

  • Nahraďte <yourConnectionString> připojovací řetězec.
  • Nahraďte <yourAadUser> id uživatele Microsoft Entra.
  • Nahraďte <yourAadApplication> ID vaší aplikace Microsoft Entra.
  • Nahraďte <yourAadToken> přístupovým tokenem Microsoft Entra.

Odvolá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 zneplatní všechny aktivní přístupové tokeny vydané identitě.

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

Proveďte tuto náhradu v kódu:

  • Nahraďte <yourConnectionString> připojovací řetězec.
  • Nahraďte <userId> id uživatele.

Odstranění identity

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

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

Proveďte tuto náhradu v kódu:

  • Nahraďte <yourConnectionString> připojovací řetězec.
  • Nahraďte <userId> id uživatele.

Požadavky

Konečný kód

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

Nastavení prostředí

Vytvoření nové aplikace jazyka C#

V okně příkazového řádku, například cmd, PowerShell nebo Bash, spusťte dotnet new příkaz a vytvořte novou konzolovou aplikaci s názvem AccessTokensQuickstart. Tento příkaz vytvoří jednoduchý projekt "Hello World" 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 službu Azure Communication Services.

Nainstalujte balíček .

I když jste stále v adresáři aplikace, pomocí příkazu nainstalujte knihovnu dotnet add package identit služby Azure Communication Services pro balíček .NET.

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 Azure.Communication.Identity pro zahrnutí oboru 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

Inicializace CommunicationIdentityClient pomocí připojovací řetězec 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í řetězec" v části 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 Microsoft Entra, můžete ji ověřit pomocí ID Microsoft Entra.

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. Služba Azure Communication Services pro tento účel udržuje jednoduchý adresář identit. createUser Pomocí metody vytvořte novou položku v adresáři s jedinečným Id. 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 uložením do databáze aplikačního serveru).

Vydání přístupového tokenu

Jakmile budete mít identitu komunikační služby, použijte GetToken metodu k vydání přístupového tokenu. 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 communicationUser založenou na řetězcové reprezentaci 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 vytvořit. 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í vlastního času vypršení platnosti tokenu

Výchozí doba vypršení platnosti tokenu je 24 hodin, ale můžete ji nakonfigurovat zadáním hodnoty mezi hodinou a 24 hodinami volitelného parametru tokenExpiresIn. Při vyžádání nového tokenu 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 
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

Tuto metodu CreateUserAndTokenAsync můžete použít k vytvoření identity komunikační služby a k vydání přístupového tokenu pro ni současně. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v rámci ověřování ve službě 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);

Aktualizace přístupového tokenu

Chcete-li aktualizovat přístupový token, předejte instanci objektu CommunicationUserIdentifier do GetTokenAsync. Pokud jste tento Id soubor uložili a potřebujete vytvořit nový CommunicationUserIdentifier, můžete to udělat tak, že ho 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á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 vydané identitě.

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 vystavení přístupových tokenů pro identitu. Tím se odebere také 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

  • Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
  • Node.js verze LTS active LTS a maintenance LTS (doporučuje se verze 8.11.1 a 10.14.1).
  • Aktivní prostředek služby Communication Services a připojovací řetězec. Vytvořte prostředek komunikační služby.

Konečný kód

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

Nastavení prostředí

Vytvoření nové aplikace Node.js

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

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

Nainstalujte balíček .

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

npm install @azure/communication-identity@latest --save

Tato --save možnost vypíše knihovnu jako závislost 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í řetězec. 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í řetězec" v části 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 Microsoft Entra, můžete ji ověřit pomocí ID Microsoft Entra.

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. Služba Azure Communication Services pro tento účel udržuje jednoduchý adresář identit. createUser Pomocí metody vytvořte novou položku v adresáři s jedinečným Id. 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 uložením do databáze aplikačního serveru).

Vydání přístupového tokenu

Použijte metodu getToken k vydání přístupového tokenu pro vaši identitu komunikační služby. 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 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 vytvořit. 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í vlastního času vypršení platnosti tokenu

Výchozí čas vypršení platnosti tokenu je 24 hodin (1440 minut), ale můžete ho nakonfigurovat zadáním hodnoty mezi 60 minut a 1440 minutami volitelného parametru tokenExpiresInMinutes. Při vyžádání nového tokenu 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 v jednom volání metody

Tuto metodu createUserAndToken můžete použít k vytvoření identity komunikační služby a k vydání přístupového tokenu pro ni současně. 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);

Aktualizace přístupového tokenu

Když vyprší platnost tokenů, budete je pravidelně muset aktualizovat. Aktualizace je snadné znovu zavolat getToken se stejnou identitou, která se použila k vydává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 zneplatní všechny aktivní přístupové tokeny vydané 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 vystavení přístupových tokenů pro identitu. Tím se odebere také 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

Z příkazového řádku konzoly přejděte do adresáře, který obsahuje soubor issue-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 finalizovaný kód pro tento rychlý start na GitHubu.

Nastavení prostředí

Vytvoření nové aplikace v Pythonu

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

    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 programu, 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 čá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)
    

Nainstalujte balíček .

I když jste stále v adresáři aplikace, pomocí příkazu nainstalujte sadu pip install SDK identity služby Azure Communication Services pro Python.

pip install azure-communication-identity

Ověření klienta

CommunicationIdentityClient Vytvořte instanci s připojovací řetězec. 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í řetězec" v části 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)

Pokud jste už nastavili aplikaci Microsoft Entra, můžete ji ověřit pomocí ID Microsoft Entra.

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

Vytvoření identity

K vytvoření přístupových tokenů potřebujete identitu. Služba Azure Communication Services pro tento účel udržuje jednoduchý adresář identit. create_user Pomocí metody vytvořte novou položku v adresáři s jedinečným 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'])

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

Vydání přístupového tokenu

Použijte metodu get_token k vydání přístupového tokenu pro vaši identitu komunikační služby. 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 vytvořit. Pokud to neuděláte, může to způsobit přerušení uživatelského prostředí vaší aplikace. Vlastnost expires_on odpovědi označuje životnost přístupového tokenu.

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

Výchozí doba vypršení platnosti tokenu je 24 hodin, ale můžete ji nakonfigurovat zadáním hodnoty mezi hodinou a 24 hodinami volitelného parametru token_expires_in. Při vyžádání nového tokenu 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

Tuto metodu create_user_and_token můžete použít k vytvoření identity komunikační služby a k vydání přístupového tokenu pro ni současně. Parametr scopes definuje sadu oprávnění a rolí přístupového tokenu. Další informace najdete v seznamu podporovaných akcí v rámci ověřování ve službě 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)

Aktualizace přístupového tokenu

Pokud chcete aktualizovat přístupový token, použijte CommunicationUserIdentifier objekt k opětovnému vytvoření 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 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 revoke_tokens zneplatní všechny aktivní přístupové tokeny vydané 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 vystavení přístupových tokenů pro identitu. Tím se odebere také 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

Z příkazového řá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 finalizovaný 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, do kterého 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 úloha generate vytvoří adresář se stejným názvem jako artifactId. V tomto adresáři obsahuje adresář src/main/java zdrojový kód projektu, adresář src/test/java obsahuje zdroj testů a soubor pom.xml je projektový objektový model nebo POM. Tento soubor se používá pro parametry konfigurace projektu.

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

Otevřete soubor pom.xml v textovém editoru. Do skupiny závislostí přidejte následující prvek 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 komunikačních služeb, kterou použijete později.

Nastavení architektury aplikace

V adresáři projektu postupujte takto:

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

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

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

CommunicationIdentityClient Vytvořte instanci pomocí přístupového klíče a koncového bodu vašeho prostředku. Další informace najdete v části "Uložení připojovací řetězec" v části Vytvoření a správa prostředků komunikačních služeb.

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

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

// 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 Microsoft Entra, můžete ji ověřit pomocí ID Microsoft Entra.

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. Služba Azure Communication Services pro tento účel udržuje jednoduchý adresář identit. createUser Pomocí metody vytvořte novou položku v adresáři s jedinečným Id.

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

Vytvořená identita se vyžaduje později pro vydávání přístupových tokenů. Uložte přijatou identitu s mapováním na uživatele vaší aplikace (například uložením do databáze aplikačního serveru).

Vydání přístupového tokenu

Použijte metodu getToken k vydání přístupového tokenu pro vaši identitu komunikační služby. 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 proměnnou uživatele, kterou jste vytvořili v předchozím kroku, a získejte token.

// 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 vytvořit. 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í vlastního času vypršení platnosti tokenu

Výchozí doba vypršení platnosti tokenu je 24 hodin, ale můžete ji nakonfigurovat zadáním hodnoty mezi hodinou a 24 hodinami volitelného parametru tokenExpiresIn. Při vyžádání nového tokenu 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 přístupovým tokenem 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);

Aktualizace přístupového tokenu

Pokud chcete aktualizovat přístupový token, použijte ho CommunicationUserIdentifier k opětovnému vytvoření objektu:

// 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 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 revokeTokens zneplatní všechny aktivní přístupové tokeny 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 vystavení přístupových tokenů pro identitu. Tím se odebere také 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 soubor pom.xml , a pak projekt zkompilujte 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

Požadavky

Vytvoření přístupových tokenů

Na webu Azure Portal přejděte do okna Identities & User Access Tokens v rámci prostředku služby Communication Services.

Zvolte rozsah přístupových tokenů. Můžete vybrat žádný, jeden nebo více. Klikněte na Vygenerovat.

Vyberte obory identity a přístupových tokenů.

Zobrazí se identita a vygenerovaný odpovídající přístupový token uživatele. Tyto řetězce můžete zkopírovat a použít je v ukázkových aplikacích a dalších testovacích scénářích.

Vygenerují se identity a přístupové tokeny a zobrazí datum vypršení platnosti.

Požadavky

Vytvořit uživatele

Přidejte do pracovního postupu nový krok pomocí konektoru identit služby Azure Communication Services. Postupujte podle těchto kroků v Power Automate s tokem Power Automate otevřeným v režimu úprav.

  1. V návrháři v kroku, do kterého chcete přidat novou akci, vyberte Nový krok. Pokud chcete přidat novou akci mezi kroky, přesuňte ukazatel myši na šipku mezi těmito kroky, vyberte znaménko plus (+) a vyberte Přidat akci.

  2. Do vyhledávacího pole Zvolit operaci zadejte identitu komunikační služby. V seznamu akcí vyberte Vytvořit uživatele.

    Snímek obrazovky znázorňující akci Vytvoření uživatelského konektoru identity služby Azure Communication Services

  3. Zadejte řetězec Připojení ion. Najdete ho v Microsoft Azure v rámci prostředku služby Azure Communication Service v možnosti Klíče v levé nabídce > Připojení ion String.

    Snímek obrazovky znázorňující stránku Klíče v rámci prostředku Azure Communication Services

  4. Zadejte název Připojení ionu.

  5. Klikněte na Vytvořit.

    Tato akce vypíše ID uživatele, což je identita uživatele komunikační služby. Pokud navíc kliknete na Zobrazit pokročilé možnosti a vyberete obor tokenu, akce také vypíše přístupový token a čas vypršení platnosti se zadaným oborem.

    Snímek obrazovky znázorňující akci Vytvoření uživatele konektoru Azure Communication Services

    Snímek obrazovky s rozšířenými možnostmi vytvoření akce uživatele konektoru Azure Communication Services

Vydání přístupového tokenu uživatele

Jakmile budete mít identitu komunikační služby, můžete k vydání přístupového tokenu použít akci Vystavení přístupového tokenu uživatele. Následující kroky vám ukážou, jak na to:

  1. Přidejte novou akci a do vyhledávacího pole zadejte identitu komunikační služby. V seznamu akcí vyberte Vydat přístupový token uživatele.

    Snímek obrazovky znázorňující akci přístupového tokenu konektoru Identita služby Azure Communication Services

  2. Pak můžete použít výstup ID uživatele z předchozího kroku Vytvořit uživatele .

  3. Zadejte obor tokenu: VoIP nebo chat. Přečtěte si další informace o tokenech a ověřování.

    Snímek obrazovky znázorňující akci konektoru Identita služby Azure Communication Services – Problém s přístupovým tokenem a určením oboru tokenu

Tím se vypíše přístupový token a čas vypršení platnosti se zadaným oborem.

Odvolání přístupových tokenů uživatele

Jakmile budete mít identitu komunikační služby, můžete k odvolání přístupového tokenu použít akci Vydat přístupový token uživatele. Následující kroky vám ukážou, jak na to:

  1. Přidejte novou akci a do vyhledávacího pole zadejte identitu komunikační služby. V seznamu akcí vyberte Odvolat přístupové tokeny uživatele.

    Snímek obrazovky znázorňující akci odvolání přístupového tokenu konektoru identity služby Azure Communication Services

  2. Zadejte ID uživatele.

    Snímek obrazovky znázorňující vstup akce přístupového tokenu pro konektor Identity služby Azure Communication Services

Tím se odvolají všechny přístupové tokeny uživatele pro zadaného uživatele, pro tuto akci nejsou žádné výstupy.

Odstranění uživatele

Jakmile máte identitu komunikační služby, můžete k odstranění přístupového tokenu použít akci Vydat přístupový token uživatele . Následující kroky vám ukážou, jak na to:

  1. Přidejte novou akci a do vyhledávacího pole zadejte identitu komunikační služby. V seznamu akcí vyberte Odstranit uživatele.

    Snímek obrazovky znázorňující akci odstranění uživatelského konektoru identity služby Azure Communication Services

  2. Zadejte ID uživatele.

    Snímek obrazovky znázorňující vstup akce Uživatele odstranění konektoru identity služby Azure Communication Services

    Tím odeberete uživatele a odvoláte všechny přístupové tokeny uživatele pro zadaného uživatele. Pro tuto akci nejsou žádné výstupy.

Testování aplikace logiky

Pokud chcete pracovní postup spustit ručně, vyberte na panelu nástrojů návrháře možnost Spustit. Pracovní postup by měl vytvořit uživatele, vydat přístupový token pro tohoto uživatele a pak ho odebrat a odstranit uživatele. Další informace najdete v postupu spuštění pracovního postupu. Po úspěšném spuštění pracovního postupu můžete zkontrolovat výstupy těchto akcí.

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

ID uživatele je určené k tomu, aby fungovalo jako primární klíč pro protokoly a metriky shromážděné prostřednictvím služby Azure Monitor. Pokud chcete zobrazit všechna volání uživatele, můžete například nastavit ověřování způsobem, který mapuje konkrétní identitu (nebo identity) Azure Communication Services na jednoho uživatele.

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

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

Pokud chcete vyčistit a odebrat předplatné služby Communication Services, 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 části Vytvoření a správa prostředků komunikačních služeb.

Pokud chcete vyčistit pracovní postup aplikace logiky a související prostředky, přečtěte si , jak vyčistit prostředky Azure Logic Apps.

Další kroky

V tomto rychlém startu jste zjistili, jak vytvořit uživatele, odstranit uživatele, vydat uživateli přístupový token a odebrat přístupový token uživatele pomocí konektoru identity služby Azure Communication Services. Další informace najdete v dokumentaci k identitě služby Azure Communication Services Připojení or.

Pokud chcete zjistit, jak tokeny používají jiné konektory, podívejte se , jak pomocí Služby Azure Communication Services odeslat chatovací zprávu z Power Automate.

Další informace o odesílání e-mailů pomocí e-mailového konektoru služby Azure Communication Services najdete v tématu Odeslání e-mailové zprávy v Power Automate pomocí Azure Communication Services.