Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přístupové tokeny umožňují sadám SDK Azure Communication Services autentizovat přímo proti službě Azure Communication Services jako konkrétní identitu. Pokud chcete, aby se připojili ke vláknu hovoru nebo chatu v aplikaci, musíte pro koncové uživatele 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ů. V případě produkčního použití doporučujeme generovat přístupové tokeny ve službě na straně serveru, jak je popsáno v architektuře klienta a serveru.
Prerequisites
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Aktivní zdroj Communication Services a jeho připojovací řetězec. Vytvořte prostředek komunikačních služeb.
- Nainstalujte Azure CLI.
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žijte operace identit Azure CLI bez předání připojovacího řetězce
Proměnnou AZURE_COMMUNICATION_CONNECTION_STRING prostředí můžete nakonfigurovat tak, abyste mohli používat operace identity Azure CLI, aniž byste museli posílat --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ým připojovacím řetězcem.
Otevřete okno konzoly a zadejte následující příkaz:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Po přidání proměnné prostředí možná 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žte přístupový token 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.
Operations
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>vaším připojovacím řetězcem.
Vytvoření identity a vystavení přístupového tokenu ve stejném požadavku
Spuštěním následujícího příkazu vytvořte identitu komunikační 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>vaším připojovacím řetězcem.
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>vaším připojovacím řetězcem. - 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 oprávněními
Spuštěním následujícího příkazu vydáte přístupový token s více oprávněními pro 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>vaším připojovacím řetězcem. - 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>vaším připojovacím řetězcem. - Nahraďte
<yourAadUser>svým uživatelským ID 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>vaším připojovacím řetězcem. - Nahraďte
<userId>id uživatele.
Smazat identitu
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>vaším připojovacím řetězcem. - Nahraďte
<userId>id uživatele.
Prerequisites
- Úč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í zdroj Communication Services a jeho připojovací řetězec. Vytvořte prostředek komunikačních služeb.
Konečný kód
Najděte finalizovaný kód 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 newpříkaz, kterým vytvoříte novou konzolovou aplikaci s názvemAccessTokensQuickstart. Tento příkaz vytvoří jednoduchý projekt Hello World C# s jedním zdrojovým souboremProgram.cs.dotnet new console -o AccessTokensQuickstartZměňte adresář na nově vytvořenou složku aplikace a pomocí
dotnet buildpříkazu zkompilujte aplikaci.cd AccessTokensQuickstart dotnet buildZobrazí se jednoduchý
Hello Worldvý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:
- Otevřete soubor
Program.csv textovém editoru. - Přidejte direktivu
using, abyste zahrnuli obor názvůAzure.Communication.Identity. - Pokud chcete podporovat asynchronní kód, aktualizujte
Maindeklaraci 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
Inicializujte CommunicationIdentityClient s vaším připojovacím řetězcem. Následující kód, který přidáte do Main metody, načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING.
Další informace najdete v tématu Vytvoření a správa prostředků komunikačních služeb>. Uložte svůj 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).
(Preview) Vytvoření identity s přidruženým vlastním identifikátorem
Important
Tato funkce je dostupná od verze SDK 1.4.0-beta1.
Note
Tato funkce je aktuálně dostupná jako ukázková verze.
Můžete vytvořit identitu s přidruženou customId k mapování identit uživatelů vaší aplikace s identitami Azure Communication Services. Pokud zavoláte metodu CreateUser znovu se stejným customId, vrátí stejnou user.Id. Tím se eliminuje nutnost uložit mapování osobně.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
Console.WriteLine($"\nCreated an identity with ID: {user.Id}");
(Preview) Získání podrobností o identitě
Important
Tato funkce je dostupná od verze SDK 1.4.0-beta1.
Note
Tato funkce je aktuálně dostupná jako ukázková verze.
Metodu GetUserDetail můžete použít k načtení informací o uživateli, včetně customId a lastTokenIssuedAt.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
var userDetails = client.GetUserDetail(user);
Console.WriteLine($"User ID: {userDetails.Id}");
Console.WriteLine($"Custom ID: {userDetails.CustomId}");
Console.WriteLine($"Last token issued at: {userDetails.LastTokenIssuedAt}");
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);
(Preview) Vytvořte identitu a vystavte token v rámci stejného požadavku s vlastním ID
Important
Tato funkce je dostupná od verze SDK 1.4.0-beta1.
Note
Tato funkce je aktuálně dostupná jako ukázková verze.
Vlastní ID CreateUserAndTokenAsync můžete metodě předat, abyste vytvořili identitu a vydali přístupový token v jednom volání.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
Response<CommunicationUserIdentifierAndToken> identityAndTokenResponse = await client.CreateUserAndTokenAsync(customId: "bob@contoso.com", scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.User;
var token = identityAndTokenResponse.AccessToken.Token;
var expiresOn = identityAndTokenResponse.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}");
Smazat identitu
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
Prerequisites
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Node.js verze Active LTS a Maintenance LTS (doporučené verze 8.11.1 a 10.14.1).
- Aktivní zdroj Communication Services a jeho připojovací řetězec. Vytvořte prostředek komunikačních služeb.
Konečný kód
Najděte finalizovaný kód 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-quickstartSpuštěním příkazu
npm init -yvytvořtepackage.jsonsoubor 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 uvede knihovnu jako závislost v package.json souboru.
Nastavení architektury aplikace
Vytvořte soubor s názvem
issue-access-token.jsv 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
Vytvořte instanci CommunicationIdentityClient s vaším připojovacím řetězcem. Následující kód, který přidáte do Main metody, načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING.
Další informace najdete v tématu Vytvoření a správa prostředků komunikačních služeb>. Uložte svůj 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).
(Preview) Vytvoření identity s přidruženým vlastním ID
Important
Tato funkce je dostupná od verze SDK 1.4.0-beta1.
Note
Tato funkce je aktuálně dostupná jako ukázková verze.
Můžete vytvořit identitu spojenou s customId, která bude přiřazovat identity uživatelů vaší aplikace k identitám v Azure Communication Services. Když zavoláte createUser se stejným customId, služba vrátí stejný communicationUserId. Tím se eliminuje nutnost uložit mapování osobně.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
(Preview) Získání podrobností o identitě
Important
Tato funkce je dostupná od verze SDK 1.4.0-beta1.
Note
Tato funkce je aktuálně dostupná jako ukázková verze.
Metodu getUserDetail můžete použít k načtení informací o uživateli, včetně customId a lastTokenIssuedAt.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
let userDetails = client.getUserDetail(user);
console.log(`\nUser ID: ${user.communicationUserId}`);
console.log(`\nCustom ID: ${userDetails.customId}`);
console.log(`\nLast token issued at: ${userDetails.lastTokenIssuedAt}`);
Vydání přístupového tokenu
Použijte metodu getToken k vydání přístupového tokenu pro identitu vaší 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);
(Preview) Vytvoření identity a vystavení tokenu v jednom volání metody včetně customId
Important
Tato funkce je dostupná od verze SDK 1.4.0-beta1.
Note
Tato funkce je aktuálně dostupná jako ukázková verze.
Vlastní ID createUserAndToken můžete metodě předat, abyste vytvořili identitu a vydali přístupový token v jednom volání.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
const customId = "bob@contoso.com";
let identityTokenResponse = await identityClient.createUserAndToken(["voip"], { customId });
// 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é poskytnout scopes obnovených tokenů.
// Value of identityResponse represents the Azure Communication Services identity stored during identity creation and then used to issue the tokens being refreshed
let refreshedTokenResponse = await identityClient.getToken(identityResponse, ["voip"]);
Odvolání přístupových tokenů
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}`);
Smazat identitu
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 spusťte aplikaci spuštěním následujícího node příkazu:
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
Prerequisites
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Python 3.8+.
- Aktivní zdroj Communication Services a jeho připojovací řetězec. Vytvořte prostředek komunikačních služeb.
Konečný kód
Najděte finalizovaný kód 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-quickstartPomocí textového editoru vytvořte soubor volaný
issue-access-tokens.pyv 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
Vytvořte instanci CommunicationIdentityClient s připojovacím řetězcem. Následující kód, který přidáte do bloku try, získá připojovací řetězec pro prostředek z environmentální proměnné pojmenované COMMUNICATION_SERVICES_CONNECTION_STRING.
Další informace najdete v tématu Vytvoření a správa prostředků komunikačních služeb>. Uložte svůj 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 identitu vaší 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'])
Smazat identitu
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
Prerequisites
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Java Development Kit (JDK) verze 8 nebo novější.
- Apache Maven
- Aktivní zdroj Communication Services a jeho připojovací řetězec. Vytvořte prostředek komunikačních služeb.
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:
- Přejděte do
/src/main/java/com/communication/quickstartadresáře. - Otevřete soubor v editoru
App.java. - Nahraďte příkaz
System.out.println("Hello world!");. - Přidat
importdirektivy
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
Vytvořte instanci CommunicationIdentityClient 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>. Uložte svůj 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 identitu vaší 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 založení nové položky v adresáři s jedinečným Id a zároveň vydat přístupový token.
//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 objekt CommunicationUserIdentifier k jeho obnovení.
// 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());
Smazat identitu
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
Přejděte do adresáře, který soubor obsahuje
pom.xml.Zkompilujte projekt pomocí následujícího
mvnpříkazu:mvn compilesestavte balíček:
mvn packageSpuštěním následujícího
mvnpří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
Prerequisites
- Prostředek služby Azure Communication Services.
Vytvoření přístupových tokenů
Na webu Azure Portal přejděte do okna Identities & User Access Tokens v prostředku služby Communication Services.
Zvolte rozsah přístupových tokenů. Můžete zvolit žádné, jednu nebo více služeb.
Vyberte Generovat.
Systém vygeneruje identitu a odpovídající přístupový token uživatele.
Zkopírujte tyto řetězce a použijte je v ukázkových aplikacích a dalších testovacích scénářích.
Prerequisites
Účet Azure s aktivním předplatným. Vytvořte si bezplatný účet Azure.
Aktivní zdroj Azure Communication Services. Vytvořte prostředek komunikačních služeb.
Aktivní prostředek Azure Logic Apps (aplikace logiky). 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ření 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 .
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.
Do vyhledávacího pole Zvolit operaci zadejte identitu komunikační služby. V seznamu akcí vyberte Vytvořit uživatele.
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.
Zadejte název připojení.
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.
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:
Přidejte novou akci a do vyhledávacího pole zadejte Communication Services Identity. V seznamu akcí vyberte Vydat přístupový token uživatele.
Teď 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í.
Systém vygeneruje přístupový token a dobu platnosti v rámci zadaného rozsahu.
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:
Přidejte novou akci a do vyhledávacího pole zadejte Communication Services Identity. V seznamu akcí vyberte Odvolat přístupové tokeny uživatele.
Určete ID uživatele.
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:
Přidejte novou akci a do vyhledávacího pole zadejte Communication Services Identity. V seznamu akcí vyberte Odstranit uživatele.
Určete ID uživatele.
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 > Čistě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 Identity Connector pro 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.