Sdílet prostřednictvím


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

Přístupové tokeny umožňují sadám AZURE Communication Services SDK ověřovat přímo ve službě Azure Communication Services jako konkrétní identitu. Pokud chcete, aby se vaši uživatelé připojili ke vláknu hovoru nebo chatu v aplikaci, musíte vytvořit přístupové tokeny.

Tento článek popisuje, jak používat sady SDK služeb 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, jak je popsáno v návrhu architektury mobile.

Požadavky

Nastavení prostředí

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

Musíte se 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 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á budete muset restartovat všechny spuštěné programy, které potřebují přečíst proměnnou prostředí, 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á budete muset restartovat všechny spuštěné programy, které potřebují přečíst proměnnou prostředí, 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ů

Možná budete muset 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 také odeberete veškerý trvalý obsah 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 na GitHubu.

Nastavení prostředí

Vytvoření nové aplikace jazyka C#

  1. V okně příkazového řádku, například cmd, PowerShell nebo Bash, spusťte dotnet new příkaz, kterým 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
    
  2. Změňte adresář na nově vytvořenou složku aplikace a pomocí dotnet build příkazu zkompilujte aplikaci.

    cd AccessTokensQuickstart
    dotnet build
    

    Zobrazí se jednoduchý Hello World výstup. Pokud se zobrazí správně, vaše nastavení funguje a můžete začít psát kód služby 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 proveďte následující kroky:

  1. Otevřete soubor Program.cs v textovém editoru.
  2. Přidejte direktivu using Azure.Communication.Identity pro zahrnutí oboru názvů.
  3. Pokud chcete podporovat asynchronní kód, aktualizujte Main deklaraci metody.

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 tématu Vytvoření a správa prostředků > komunikačních služeb, které ukládají vaše připojovací řetězec.

// 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 se 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. Později použijte identitu k 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 zadejte 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 provést předáním uloženého 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ů

Možná budete muset explicitně odvolat přístupový token. Když například 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 vydání přístupových tokenů pro identitu. Tím také odeberete veškerý trvalý obsah přidružený k identitě.

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

Spuštění kódu

Po 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 na GitHubu.

Nastavení prostředí

Vytvoření nové aplikace Node.js

  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. Spuštěním příkazu npm init -y vytvořte package.json soubor 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 package.json souboru.

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 tématu Vytvoření a správa prostředků > komunikačních služeb, které ukládají vaše připojovací řetězec.

// 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 se 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. Později budete potřebovat identitu k 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 zadejte 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. Vytvořte ho 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

Při vypršení platnosti tokenů je potřeba je aktualizovat. Pokud chcete aktualizovat tokeny, zavolejte getToken znovu se stejnou identitou, která se používá k vydávání tokenů. Musíte také 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ů

Možná budete muset 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 vydání přístupových tokenů pro identitu. Tím také odeberete veškerý trvalý obsah přidružený k identitě.

await identityClient.deleteUser(identityResponse);

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

Spuštění kódu

Z příkazového řádku konzoly přejděte do adresáře, který obsahuje soubor 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 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 volaný issue-access-tokens.py v kořenovém adresáři projektu. Pak přidejte strukturu pro program, včetně základního zpracování výjimek. Do tohoto souboru přidáte veškerý zdrojový kód.

    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 .

V adresáři aplikace nainstalujte pomocí příkazu balíček pip install Azure Communication Services Identity SDK 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 tématu Vytvoření a správa prostředků > komunikačních služeb, které ukládají vaše připojovací řetězec.

# 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 k 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 zadejte 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ů

Možná budete muset explicitně odvolat přístupový token. Když například 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 také odeberete veškerý trvalý obsah přidružený k identitě.

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

Spuštění kódu

Z příkazového řádku konzoly přejděte do adresáře, který obsahuje issue-access-tokens.py soubor, a spusťte aplikaci spuštěním následujícího python příkazu.

python ./issue-access-tokens.py

Vygenerovaný výstup 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 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 src/main/java adresář obsahuje zdrojový kód projektu, src/test/java adresář obsahuje zdroj testů a pom.xml soubor 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 v textovém pom.xml 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 potřebujete použít později.

Nastavení architektury aplikace

V adresáři projektu proveďte následující kroky:

  1. Přejděte do /src/main/java/com/communication/quickstart adresáře.
  2. Otevřete soubor v editoru App.java .
  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 tématu Vytvoření a správa prostředků > komunikačních služeb, které ukládají vaše připojovací řetězec.

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

App.java Do souboru 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 se 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 k 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 zadejte 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

Možná budete muset 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 také odeberete veškerý trvalý obsah přidružený k identitě.

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

Spuštění kódu

  1. Přejděte do adresáře, který soubor obsahuje pom.xml .

  2. Zkompilujte projekt pomocí následujícího mvn příkazu:

    mvn compile
    
  3. sestavte balíček:

    mvn package
    
  4. 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 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ů

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

  2. Zvolte rozsah přístupových tokenů. Můžete zvolit žádné, jednu nebo více služeb.

  3. Vyberte Generovat.

    Snímek obrazovky znázorňující obory identity a přístupových tokenů, ve kterých vyberete Vygenerovat

    Systém vygeneruje identitu a odpovídající přístupový token uživatele.

  4. Zkopírujte tyto řetězce a použijte je v ukázkových aplikacích a dalších testovacích scénářích.

    Snímek obrazovky znázorňující identity a přístupové tokeny s datem vypršení platnosti

Požadavky

Vytvořit uživatele

Přidejte do pracovního postupu nový krok pomocí konektoru identity služby Azure Communication Services. Proveďte tyto kroky v Power Automate s tokem Power Automate otevřeným v režimu úprav .

  1. Otevřete návrháře. V kroku, do kterého chcete přidat novou akci, vyberte Nový krok. Pokud chcete přidat novou akci mezi kroky, najeďte myší 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 připojovací řetězec. Najdete ho na webu Microsoft Azure Portal v rámci prostředku služby Azure Communication Service. Výběrem možnosti Klíče v nabídce levého panelu zobrazte připojovací řetězec.

    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í.

  5. Klikněte na Vytvořit.

    Tato akce vygeneruje ID uživatele, což je identita uživatele komunikační služby. Pokud navíc kliknete na Zobrazit upřesňující možnosti a vyberete Obor tokenu, akce také vygeneruje 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 vydat přístupový token. Proveďte následující kroky:

  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. Teď 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

Systém vygeneruje 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. Proveďte následující kroky:

  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. Určete ID uživatele.

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

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

Odstranění uživatele

Jakmile budete mít identitu komunikační služby, můžete k odstranění přístupového tokenu použít akci Vydat přístupový token uživatele. Proveďte následující kroky:

  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. Určete ID uživatele.

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

Systém odebere uživatele a odvolá 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ě, na panelu nástrojů návrháře vyberte Spustit. Pracovní postup vytvoří uživatele, vydá přístupový token pro daného uživatele a pak ho odebere a odstraní uživatele.

Další informace najdete v tématu o tom, jak spustit pracovní postup. 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 funguje 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í tak, aby namapuje konkrétní identitu (nebo identity) služby Azure Communication Services na jednoho uživatele.

Další informace naleznete v tématu:

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ů odstraníte také všechny ostatní prostředky, které jsou k ní přidružené. Další informace najdete v tématu Vytváření a správa prostředků > Komunikační služby Vyčištění prostředků.

Pokud chcete vyčistit pracovní postup aplikace logiky a související prostředky, přečtěte si téma Vytvoření ukázkového pracovního postupu aplikace logiky Consumption pomocí webu Azure Portal > Vyčištění prostředků.

Další kroky

Tento článek popisuje, jak vytvořit uživatele a odstranit uživatele. Popisuje také, jak vydat přístupový token uživateli a odebrat přístupový token uživatele pomocí konektoru identity služby Azure Communication Services. Další informace najdete v tématu Konektor identit služeb Azure Communication Services.

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.