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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Aktivní prostředek služby Communication Services a připojovací řetězec. Vytvořte prostředek komunikační služby.
- Nainstalujte Azure CLI.
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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Nejnovější verze sady .NET Core SDK pro váš operační systém.
- 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 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:
- Otevřete soubor Program.cs v textovém editoru.
- Přidejte direktivu
using
Azure.Communication.Identity
pro zahrnutí oboru názvů. 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
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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Python 3.8+.
- 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 v Pythonu
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
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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Java Development Kit (JDK) verze 8 nebo novější.
- Apache Maven
- 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 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:
- Přejděte do adresáře /src/main/java/com/communication/quickstart .
- Otevřete soubor App.java v editoru.
- Nahraďte příkaz
System.out.println("Hello world!");
. - 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
- Prostředek Azure Communication Services
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.
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.
Požadavky
Účet Azure s aktivním předplatným nebo si zdarma vytvořte účet Azure.
Aktivní prostředek služby Azure Communication Services nebo vytvořte prostředek služby Communication Services.
Aktivní prostředek Azure Logic Apps (aplikace logiky) nebo vytvořte pracovní postup aplikace logiky Consumption s triggerem, který chcete použít. V současné době konektor Identity služby Azure Communication Services poskytuje pouze akce, takže vaše aplikace logiky vyžaduje minimálně aktivační událost.
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.
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.
Do vyhledávacího pole Zvolit operaci zadejte identitu komunikační služby. V seznamu akcí vyberte Vytvořit uživatele.
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.
Zadejte název Připojení ionu.
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.
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:
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.
Pak můžete použít výstup ID uživatele z předchozího kroku Vytvořit uživatele .
Zadejte obor tokenu: VoIP nebo chat. Přečtěte si další informace o tokenech a ověřování.
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:
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.
Zadejte ID uživatele.
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:
Přidejte novou akci a do vyhledávacího pole zadejte identitu komunikační služby. V seznamu akcí vyberte Odstranit uživatele.
Zadejte ID uživatele.
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 se naučili:
- Vystavení přístupových tokenů
- Správa identit
Můžete také chtít:
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.