Quickstart: Toegangstokens maken en beheren
Met toegangstokens kunnen Azure Communication Services SDK's rechtstreeks worden geverifieerd met Azure Communication Services als een bepaalde identiteit. U moet toegangstokens maken als u wilt dat uw gebruikers deelnemen aan een gesprek of chatgesprek in uw toepassing.
In deze quickstart leert u hoe u de Azure Communication Services SDK's gebruikt om identiteiten te maken en uw toegangstokens te beheren. Voor gebruiksvoorbeelden in productie wordt u aangeraden toegangstokens te genereren in een service aan de serverzijde.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
- Installeer Azure CLI.
Instellen
De extensie toevoegen
Voeg de Azure Communication Services-extensie voor Azure CLI toe met behulp van de az extension
opdracht.
az extension add --name communication
Aanmelden bij Azure CLI
U moet zich aanmelden bij Azure CLI. U kunt zich aanmelden bij het uitvoeren van de az login
opdracht vanuit de terminal en uw referenties opgeven.
(Optioneel) Azure CLI-identiteitsbewerkingen gebruiken zonder een verbindingsreeks
U kunt de AZURE_COMMUNICATION_CONNECTION_STRING
omgevingsvariabele configureren voor het gebruik van Azure CLI-identiteitsbewerkingen zonder dat u de verbindingsreeks hoeft door te --connection_string
geven. Als u een omgevingsvariabele wilt configureren, opent u een consolevenster en selecteert u het besturingssysteem op de onderstaande tabbladen. Vervang <yourConnectionString>
door de feitelijke verbindingsreeks.
Open een consolevenster en voer de volgende opdracht in:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Nadat u de omgevingsvariabele hebt toegevoegd, moet u actieve programma's die de omgevingsvariabele moeten lezen, opnieuw starten. Start ook het consolevenster opnieuw. Als u Visual Studio bijvoorbeeld gebruikt als editor, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.
Uw toegangstoken opslaan in een omgevingsvariabele
Als u een omgevingsvariabele wilt configureren, opent u een consolevenster en selecteert u het besturingssysteem op de onderstaande tabbladen. Vervang <yourAccessToken>
door uw werkelijke toegangstoken.
Open een consolevenster en voer de volgende opdracht in:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Nadat u de omgevingsvariabele hebt toegevoegd, moet u actieve programma's die de omgevingsvariabele moeten lezen, opnieuw starten. Start ook het consolevenster opnieuw. Als u Visual Studio bijvoorbeeld gebruikt als editor, start u Visual Studio opnieuw voordat u het voorbeeld uitvoert.
Operations
Een identiteit maken
Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt hiervoor een lichtgewicht identiteitsmap. Gebruik de user create
opdracht om een nieuwe vermelding in de map te maken met een uniek Id
item. De identiteit is later vereist voor het uitgeven van toegangstokens.
az communication identity user create --connection-string "<yourConnectionString>"
- Vervang
<yourConnectionString>
door uw verbindingsreeks.
Een identiteit maken en een toegangstoken uitgeven in dezelfde aanvraag
Voer de volgende opdracht uit om een Communication Services-identiteit te maken en tegelijkertijd een toegangstoken hiervoor uit te geven. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in Verificatie bij Azure Communication Services voor meer informatie.
az communication identity token issue --scope chat --connection-string "<yourConnectionString>"
Maak deze vervanging in de code:
- Vervang
<yourConnectionString>
door uw verbindingsreeks.
Toegangstoken uitgeven
Voer de volgende opdracht uit om een toegangstoken uit te geven voor uw Communication Services-identiteit. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in Verificatie bij Azure Communication Services voor meer informatie.
az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"
Maak deze vervanging in de code:
- Vervang
<yourConnectionString>
door uw verbindingsreeks. - Vervang
<userId>
door uw userId.
Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Dit kan leiden tot een onderbreking van de gebruikerservaring van uw toepassing. De antwoordeigenschap expires_on
geeft de levensduur van het toegangstoken aan.
Toegangstoken met meerdere bereiken uitgeven
Voer de volgende opdracht uit om een toegangstoken uit te geven met meerdere bereiken voor uw Communication Services-identiteit. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in identiteitsmodel voor meer informatie.
az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"
Maak deze vervanging in de code:
- Vervang
<yourConnectionString>
door uw verbindingsreeks. - Vervang
<userId>
door uw userId.
Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Dit kan leiden tot een onderbreking van de gebruikerservaring van uw toepassing. De antwoordeigenschap expires_on
geeft de levensduur van het toegangstoken aan.
Exchange a Microsoft Entra access token of the Teams User for a Communication Identity access token
Gebruik de token get-for-teams-user
opdracht om een toegangstoken uit te geven voor de Teams-gebruiker die kan worden gebruikt met de Azure Communication Services SDK's.
az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"
Maak deze vervanging in de code:
- Vervang
<yourConnectionString>
door uw verbindingsreeks. - Vervang door
<yourAadUser>
uw Microsoft Entra-gebruikers-id. - Vervang door
<yourAadApplication>
uw Microsoft Entra-toepassings-id. - Vervang
<yourAadToken>
door uw Microsoft Entra-toegangstoken.
Toegangstokens intrekken
Mogelijk moet u af en toe een toegangstoken expliciet intrekken. U doet dit bijvoorbeeld wanneer toepassingsgebruikers het wachtwoord wijzigen dat ze gebruiken voor verificatie bij uw service. Met token revoke
de opdracht worden alle actieve toegangstokens die zijn uitgegeven aan de identiteit ongeldig.
az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"
Maak deze vervanging in de code:
- Vervang
<yourConnectionString>
door uw verbindingsreeks. - Vervang
<userId>
door uw userId.
Een identiteit verwijderen
Wanneer u een identiteit verwijdert, trekt u alle actieve toegangstokens in en voorkomt u de verdere uitgifte van toegangstokens voor de identiteit. Als u dit doet, worden ook alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.
az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"
Maak deze vervanging in de code:
- Vervang
<yourConnectionString>
door uw verbindingsreeks. - Vervang
<userId>
door uw userId.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- De nieuwste .NET Core SDK-versie voor uw besturingssysteem.
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
Uiteindelijke code
Zoek de voltooide code voor deze quickstart op GitHub.
Uw omgeving instellen
Een nieuwe C#-toepassing maken
Voer in een opdrachtpromptvenster, zoals cmd, PowerShell of Bash, de dotnet new
opdracht uit om een nieuwe console-app met de naam AccessTokensQuickstart
te maken. Met deze opdracht maakt u een eenvoudig C#-project Hallo wereld met één bronbestand Program.cs.
dotnet new console -o AccessTokensQuickstart
Wijzig uw map in de zojuist gemaakte app-map en gebruik de dotnet build
opdracht om uw toepassing te compileren.
cd AccessTokensQuickstart
dotnet build
Er moet een eenvoudige uitvoer 'Hallo wereld' worden weergegeven. Als dat zo is, werkt uw installatie correct en kunt u aan de slag met het schrijven van uw specifieke code voor Azure Communication Services.
Het pakket installeren
Terwijl u zich nog steeds in de toepassingsmap bevindt, installeert u de Azure Communication Services Identity-bibliotheek voor het .NET-pakket met behulp van de dotnet add package
opdracht.
dotnet add package Azure.Communication.Identity
Stel het app-framework in
Ga als volgt te werk in de projectmap:
- Open het Program.cs-bestand in een teksteditor.
- Voeg een
using
instructie toe om deAzure.Communication.Identity
naamruimte op te nemen. - Werk de
Main
methodedeclaratie bij om asynchrone code te ondersteunen.
Voer om te beginnen de volgende code uit:
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
}
}
}
De client verifiëren
Initialiseer CommunicationIdentityClient
met uw verbindingsreeks. Met de volgende code, die u aan de Main
methode toevoegt, wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING
.
Zie de sectie 'Uw verbindingsreeks opslaan' van Communication Services-resources maken en beheren voor meer informatie.
// 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);
U kunt ook het eindpunt en de toegangssleutel scheiden door de volgende code uit te voeren:
// 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));
Als u al een Microsoft Entra-toepassing hebt ingesteld, kunt u zich verifiëren met behulp van Microsoft Entra-id.
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);
Een identiteit maken
Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt hiervoor een lichtgewicht identiteitsmap. Gebruik de methode createUser
om een nieuwe vermelding in de map te maken met een unieke Id
. De identiteit is later vereist voor het uitgeven van toegangstokens.
var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Sla de ontvangen identiteit op met toewijzing aan de gebruikers van uw toepassing (bijvoorbeeld door deze op te slaan in de database van de toepassingsserver).
Een toegangstoken uitgeven
Nadat u een Communication Services-identiteit hebt, gebruikt u de GetToken
methode om er een toegangstoken voor uit te geven. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in identiteitsmodel voor meer informatie. U kunt ook een nieuw exemplaar maken op basis van communicationUser
een tekenreeksweergave van een Azure Communication Service-identiteit.
// 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);
Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Dit kan leiden tot een onderbreking van de gebruikerservaring van uw toepassing. De expiresOn
eigenschap geeft de levensduur van het toegangstoken aan.
Een aangepaste verlooptijd voor tokens instellen
De standaardverlooptijd van het token is 24 uur, maar u kunt dit configureren door een waarde op te geven tussen een uur en 24 uur voor de optionele parameter tokenExpiresIn
. Wanneer u een nieuw token aanvraagt, is het raadzaam om de verwachte typische lengte van een communicatiesessie op te geven voor de verlooptijd van het token.
// 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);
Een identiteit maken en een token uitgeven in dezelfde aanvraag
U kunt de CreateUserAndTokenAsync
methode gebruiken om een Communication Services-identiteit te maken en tegelijkertijd een toegangstoken hiervoor uit te geven. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in Verificatie bij Azure Communication Services voor meer informatie.
// 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);
Een toegangstoken vernieuwen
Als u een toegangstoken wilt vernieuwen, geeft u een exemplaar van het CommunicationUserIdentifier
-object door aan GetTokenAsync
. Als u deze Id
hebt opgeslagen en een nieuwe CommunicationUserIdentifier
wilt maken, kunt u dit doen door uw opgeslagen Id
als volgt door te geven aan de CommunicationUserIdentifier
-constructor:
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Toegangstokens intrekken
Mogelijk moet u af en toe een toegangstoken expliciet intrekken. U doet dit bijvoorbeeld wanneer toepassingsgebruikers het wachtwoord wijzigen dat ze gebruiken voor verificatie bij uw service. De RevokeTokensAsync
methode ongeldig alle actieve toegangstokens die zijn uitgegeven aan de identiteit.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Een identiteit verwijderen
Wanneer u een identiteit verwijdert, trekt u alle actieve toegangstokens in en voorkomt u de verdere uitgifte van toegangstokens voor de identiteit. Als u dit doet, worden ook alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
De code uitvoeren
Wanneer u klaar bent met het maken van het toegangstoken, kunt u de toepassing uitvoeren vanuit uw toepassingsmap met behulp van de dotnet run
opdracht.
dotnet run
In de uitvoer van de app wordt elke voltooide actie beschreven:
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
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Node.js, Active LTS en Maintenance LTS-versies (8.11.1 en 10.14.1 aanbevolen).
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
Uiteindelijke code
Zoek de voltooide code voor deze quickstart op GitHub.
Uw omgeving instellen
Een nieuwe Node.js-toepassing maken
Maak in een terminal- of opdrachtpromptvenster een nieuwe map voor uw app en open deze.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Voer npm init -y
uit om een package.json-bestand te maken met de standaardinstellingen.
npm init -y
Het pakket installeren
Gebruik de npm install
opdracht om de Azure Communication Services Identity SDK voor JavaScript te installeren.
npm install @azure/communication-identity@latest --save
De optie --save
geeft de bibliotheek weer als afhankelijkheid in het package.json-bestand.
Stel het app-framework in
Maak een bestand met de naam
issue-access-token.js
in de projectmap en voeg de volgende code toe: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); })
De client verifiëren
Instantiëren CommunicationIdentityClient
met uw verbindingsreeks. Met de volgende code, die u aan de Main
methode toevoegt, wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING
.
Zie de sectie 'Uw verbindingsreeks opslaan' van Communication Services-resources maken en beheren voor meer informatie.
// 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);
U kunt ook het eindpunt en de toegangssleutel scheiden door de volgende code uit te voeren:
// 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)
Als u al een Microsoft Entra-toepassing hebt ingesteld, kunt u zich verifiëren met behulp van Microsoft Entra-id.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);
Een identiteit maken
Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt hiervoor een lichtgewicht identiteitsmap. Gebruik de methode createUser
om een nieuwe vermelding in de map te maken met een unieke Id
. De identiteit is later vereist voor het uitgeven van toegangstokens.
let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);
Sla de ontvangen identiteit op met toewijzing aan de gebruikers van uw toepassing (bijvoorbeeld door deze op te slaan in de database van de toepassingsserver).
Een toegangstoken uitgeven
Gebruik de getToken
methode om een toegangstoken uit te geven voor uw Communication Services-identiteit. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in identiteitsmodel voor meer informatie. U kunt ook een nieuw exemplaar van een communicationUser
maken op basis van een tekenreeksweergave van de Azure Communication Service-identiteit.
// 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);
Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Dit kan leiden tot een onderbreking van de gebruikerservaring van uw toepassing. De expiresOn
eigenschap geeft de levensduur van het toegangstoken aan.
Een aangepaste verlooptijd voor tokens instellen
De standaardverlooptijd van het token is 24 uur (1440 minuten), maar u kunt dit configureren door een waarde op te geven tussen 60 minuten en 1440 minuten naar de optionele parameter tokenExpiresInMinutes
. Wanneer u een nieuw token aanvraagt, is het raadzaam om de verwachte typische lengte van een communicatiesessie op te geven voor de verlooptijd van het token.
// 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);
Een identiteit maken en een token uitgeven in één methodeaanroep
U kunt de createUserAndToken
methode gebruiken om een Communication Services-identiteit te maken en tegelijkertijd een toegangstoken hiervoor uit te geven. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Nogmaals, u maakt deze met het voip
bereik.
// 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);
Een toegangstoken vernieuwen
Wanneer tokens verlopen, moet u deze periodiek vernieuwen. Vernieuwen is eenvoudig opnieuw aan te roepen getToken
met dezelfde identiteit die is gebruikt om de tokens uit te geven. U moet ook de scopes
vernieuwde tokens opgeven.
// 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"]);
Toegangstokens intrekken
Mogelijk moet u af en toe een toegangstoken intrekken. U doet dit bijvoorbeeld wanneer toepassingsgebruikers het wachtwoord wijzigen dat ze gebruiken voor verificatie bij uw service. De revokeTokens
methode ongeldig alle actieve toegangstokens die zijn uitgegeven aan de identiteit.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Een identiteit verwijderen
Wanneer u een identiteit verwijdert, trekt u alle actieve toegangstokens in en voorkomt u de verdere uitgifte van toegangstokens voor de identiteit. Als u dit doet, worden ook alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.
await identityClient.deleteUser(identityResponse);
console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);
De code uitvoeren
Ga vanaf een consoleprompt naar de map met het issue-access-token.js bestand en voer vervolgens de volgende node
opdracht uit om de app uit te voeren:
node ./issue-access-token.js
In de uitvoer van de app wordt elke voltooide actie beschreven:
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
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Python 3.8+.
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
Uiteindelijke code
Zoek de voltooide code voor deze quickstart op GitHub.
Uw omgeving instellen
Een nieuwe Python-toepassing maken
Maak in een terminal- of opdrachtpromptvenster een nieuwe map voor uw app en open deze.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Gebruik een teksteditor om een bestand te maken met de naam issue-access-tokens.py in de hoofdmap van het project en voeg de structuur voor het programma toe, waaronder de basale verwerking van uitzonderingen. U voegt alle broncode voor deze quickstart toe aan dit bestand in de volgende secties.
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)
Het pakket installeren
Terwijl u zich nog steeds in de toepassingsmap bevindt, installeert u het Azure Communication Services Identity SDK voor Python-pakket met behulp van de pip install
opdracht.
pip install azure-communication-identity
De client verifiëren
Breng een CommunicationIdentityClient
tot stand met uw verbindingsreeks. Met de volgende code, die u aan het try
blok toevoegt, wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING
.
Zie de sectie 'Uw verbindingsreeks opslaan' van Communication Services-resources maken en beheren voor meer informatie.
# 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)
Als u al een Microsoft Entra-toepassing hebt ingesteld, kunt u zich ook verifiëren met behulp van Microsoft Entra-id.
endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())
Een identiteit maken
Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt hiervoor een lichtgewicht identiteitsmap. Gebruik de methode create_user
om een nieuwe vermelding in de map te maken met een unieke Id
. De identiteit is later vereist voor het uitgeven van toegangstokens.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
Sla de ontvangen identiteit op met toewijzing aan de gebruikers van uw toepassing (bijvoorbeeld door deze op te slaan in de database van de toepassingsserver).
Een toegangstoken uitgeven
Gebruik de get_token
methode om een toegangstoken uit te geven voor uw Communication Services-identiteit. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in identiteitsmodel voor meer informatie. U kunt ook een nieuw exemplaar van de parameter CommunicationUserIdentifier
maken op basis van een tekenreeksweergave van de Azure Communication Service-identiteit.
# 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)
Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Dit kan leiden tot een onderbreking van de gebruikerservaring van uw toepassing. De antwoordeigenschap expires_on
geeft de levensduur van het toegangstoken aan.
Een aangepaste verlooptijd voor tokens instellen
De standaardverlooptijd van het token is 24 uur, maar u kunt dit configureren door een waarde op te geven tussen een uur en 24 uur voor de optionele parameter token_expires_in
. Wanneer u een nieuw token aanvraagt, is het raadzaam om de verwachte typische lengte van een communicatiesessie op te geven voor de verlooptijd van het token.
# 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)
Een identiteit maken en een toegangstoken uitgeven in dezelfde aanvraag
U kunt de create_user_and_token
methode gebruiken om een Communication Services-identiteit te maken en tegelijkertijd een toegangstoken hiervoor uit te geven. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in Verificatie bij Azure Communication Services voor meer informatie.
# 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)
Een toegangstoken vernieuwen
Als u een toegangstoken wilt vernieuwen, gebruikt u het CommunicationUserIdentifier
object om een token opnieuw uit te voeren door de bestaande identiteit door te geven:
# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])
Toegangstokens intrekken
Mogelijk moet u af en toe een toegangstoken expliciet intrekken. U doet dit bijvoorbeeld wanneer toepassingsgebruikers het wachtwoord wijzigen dat ze gebruiken voor verificatie bij uw service. De revoke_tokens
methode ongeldig alle actieve toegangstokens die zijn uitgegeven aan de identiteit.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Een identiteit verwijderen
Wanneer u een identiteit verwijdert, trekt u alle actieve toegangstokens in en voorkomt u de verdere uitgifte van toegangstokens voor de identiteit. Als u dit doet, worden ook alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
De code uitvoeren
Ga vanaf een consoleprompt naar de map met het issue-access-tokens.py-bestand en voer vervolgens de volgende python
opdracht uit om de app uit te voeren.
python ./issue-access-tokens.py
In de uitvoer van de app wordt elke voltooide actie beschreven:
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
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Java Development Kit (JDK) versie 8 of hoger.
- Apache Maven.
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
Uiteindelijke code
Zoek de voltooide code voor deze quickstart op GitHub.
Uw omgeving instellen
Een nieuwe Java-toepassing maken
Ga in een terminal- of opdrachtpromptvenster naar de map waarin u uw Java-toepassing wilt maken. Voer de volgende code uit om een Java-project te genereren op basis van de maven-archetype-quickstart-sjabloon:
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
U ziet dat de generate
taak een map met dezelfde naam maakt als artifactId
. De map src/main/java bevat de broncode van het project, de map src/test/java bevat de testbron en het bestand pom.xml is het Project Object Model van het project of POM. Dit bestand wordt gebruikt voor projectconfiguratieparameters.
De Communication Services-pakketten installeren
Open het bestand pom.xml in uw teksteditor. Voeg het volgende afhankelijkheidselement toe aan de groep afhankelijkheden:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
<version>[1.4.0,)</version>
</dependency>
Met deze code wordt Maven geïnstrueerd om de Communication Services Identity SDK te installeren, die u later gaat gebruiken.
Stel het app-framework in
Ga als volgt te werk in de projectmap:
- Ga naar de map /src/main/java/com/communication/quickstart .
- Open het bestand App.java in de editor.
- Vervang de
System.out.println("Hello world!");
instructie. - Voeg instructies toe
import
.
Gebruik de volgende code om te beginnen:
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
}
}
De client verifiëren
Instanteer een CommunicationIdentityClient
met de toegangssleutel en het eindpunt van uw resource. Zie de sectie 'Uw verbindingsreeks opslaan' van Communication Services-resources maken en beheren voor meer informatie.
Daarnaast kunt u de client initialiseren met elke aangepaste HTTP-client die de com.azure.core.http.HttpClient
interface implementeert.
Voeg in het bestand App.java de volgende code toe aan de main
methode:
// 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();
In plaats van het eindpunt en de toegangssleutel op te geven, kunt u de hele verbindingsreeks opgeven met behulp van de connectionString()
methode.
// 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();
Als u al een Microsoft Entra-toepassing hebt ingesteld, kunt u zich verifiëren met behulp van Microsoft Entra-id.
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
Een identiteit maken
Als u toegangstokens wilt maken, hebt u een identiteit nodig. Azure Communication Services onderhoudt hiervoor een lichtgewicht identiteitsmap. Gebruik de methode createUser
om een nieuwe vermelding in de map te maken met een unieke Id
.
CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());
De gemaakte identiteit is later vereist voor het uitgeven van toegangstokens. Sla de ontvangen identiteit op met toewijzing aan de gebruikers van uw toepassing (bijvoorbeeld door deze op te slaan in de database van de toepassingsserver).
Een toegangstoken uitgeven
Gebruik de getToken
methode om een toegangstoken uit te geven voor uw Communication Services-identiteit. De scopes
parameter definieert een set toegangstokenmachtigingen en -rollen. Zie de lijst met ondersteunde acties in identiteitsmodel voor meer informatie.
Gebruik in de volgende code de gebruikersvariabele die u in de vorige stap hebt gemaakt om een token op te halen.
// 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);
Toegangstokens zijn kortdurende referenties die opnieuw moeten worden uitgegeven. Dit kan leiden tot een onderbreking van de gebruikerservaring van uw toepassing. De expiresAt
eigenschap geeft de levensduur van het toegangstoken aan.
Een aangepaste verlooptijd voor tokens instellen
De standaardverlooptijd van het token is 24 uur, maar u kunt dit configureren door een waarde op te geven tussen een uur en 24 uur voor de optionele parameter tokenExpiresIn
. Wanneer u een nieuw token aanvraagt, is het raadzaam om de verwachte typische lengte van een communicatiesessie op te geven voor de verlooptijd van het token.
// 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);
Een identiteit maken en een token in één aanvraag uitgeven
U kunt ook de methode createUserAndToken gebruiken om een nieuwe vermelding in de map te maken met een uniek Id
toegangstoken en tegelijkertijd een toegangstoken uit te geven.
//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);
Een toegangstoken vernieuwen
Als u een toegangstoken wilt vernieuwen, gebruikt u het CommunicationUserIdentifier
object om het opnieuw uit te voeren:
// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);
Een toegangstoken intrekken
Mogelijk moet u af en toe een toegangstoken expliciet intrekken. U doet dit bijvoorbeeld wanneer toepassingsgebruikers het wachtwoord wijzigen dat ze gebruiken voor verificatie bij uw service. Met de revokeTokens
methode worden alle actieve toegangstokens voor een bepaalde gebruiker ongeldig. In de volgende code kunt u de eerder gemaakte gebruiker gebruiken.
communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());
Een identiteit verwijderen
Wanneer u een identiteit verwijdert, trekt u alle actieve toegangstokens in en voorkomt u de verdere uitgifte van toegangstokens voor de identiteit. Als u dit doet, worden ook alle persistente inhoud verwijderd die aan de identiteit is gekoppeld.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
De code uitvoeren
Ga naar de map met het pom.xml-bestand en compileer het project met behulp van de volgende mvn
opdracht:
mvn compile
Bouw vervolgens het pakket:
mvn package
Voer de volgende mvn
opdracht uit om de app uit te voeren:
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
In de uitvoer van de app wordt elke voltooide actie beschreven:
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
Vereisten
De toegangstokens maken
Navigeer in Azure Portal naar de blade Identiteiten en gebruikerstoegangstokens in uw Communication Services-resource.
Kies het bereik van de toegangstokens. U kunt geen, één of meerdere selecteren. Klik op Genereren.
U ziet een identiteit en het bijbehorende gebruikerstoegangstoken dat is gegenereerd. U kunt deze tekenreeksen kopiëren en gebruiken in de voorbeeld-apps en andere testscenario's.
Vereisten
Een Azure-account met een actief abonnement, of gratis een account maken.
Een actieve Azure Communication Services-resource, of een Communication Services-resource maken.
Een actieve Azure Logic Apps-resource (logische app) of maak een werkstroom voor logische apps verbruik met de trigger die u wilt gebruiken. Momenteel biedt de Azure Communication Services Identity-connector alleen acties, dus uw logische app vereist minimaal een trigger.
Gebruiker maken
Voeg een nieuwe stap toe aan uw werkstroom met behulp van de Azure Communication Services Identity-connector. Volg deze stappen in Power Automate met uw Power Automate-stroom geopend in de bewerkingsmodus.
Selecteer in de ontwerper Nieuwe stap onder de stap waar u de nieuwe actie wilt toevoegen. Als u de nieuwe actie tussen stappen wilt toevoegen, verplaatst u de aanwijzer over de pijl tussen deze stappen, selecteert u het plusteken (+) en selecteert u Een actie toevoegen.
Voer in het zoekvak Een bewerking kiezen de Communication Services-identiteit in. Selecteer een gebruiker maken in de lijst met acties.
Geef de Verbinding maken iontekenreeks op. Dit is te vinden in Microsoft Azure, in uw Azure Communication Service-resource, in de optie Sleutels in het linkermenu > Verbinding maken ion String
Geef een Verbinding maken ionnaam op
Klik op Maken
Met deze actie wordt een gebruikers-id uitgevoerd. Dit is een Communication Services-gebruikersidentiteit. Als u bovendien op Geavanceerde opties weergeven klikt en het tokenbereik selecteert, wordt er ook een toegangstoken en de verlooptijd van het token met het opgegeven bereik uitgevoerd.
Een gebruikerstoegangstoken uitgeven
Nadat u een Communication Services-identiteit hebt, kunt u de actie Een toegangstoken van een gebruiker uitgeven om een toegangstoken uit te geven. In de volgende stappen ziet u hoe:
Voeg een nieuwe actie toe en voer Communication Services Identity in het zoekvak in. Selecteer Een toegangstoken van een gebruiker uitgeven in de lijst met acties.
Vervolgens kunt u de uitvoer van de gebruikers-id uit de vorige stap Een gebruiker maken gebruiken.
Geef het tokenbereik op: VoIP of chat. Meer informatie over tokens en verificatie.
Hiermee wordt een toegangstoken en de verlooptijd van het toegangstoken uitgevoerd met het opgegeven bereik.
Tokens voor gebruikerstoegang intrekken
Nadat u een Communication Services-identiteit hebt, kunt u de actie Een toegangstoken van een gebruiker uitgeven gebruiken om een toegangstoken in te trekken. In de volgende stappen ziet u hoe:
Voeg een nieuwe actie toe en voer Communication Services Identity in het zoekvak in. Selecteer in de lijst met acties de optie Tokens voor gebruikerstoegang intrekken.
Geef de gebruikers-id op
Hiermee worden alle tokens voor gebruikerstoegang voor de opgegeven gebruiker ingetrokken. Er zijn geen uitvoer voor deze actie.
Een gebruiker verwijderen
Nadat u een Communication Services-identiteit hebt, kunt u de actie Een toegangstoken van een gebruiker uitgeven gebruiken om een toegangstoken te verwijderen. In de volgende stappen ziet u hoe:
Voeg een nieuwe actie toe en voer Communication Services Identity in het zoekvak in. Selecteer een gebruiker verwijderen in de lijst met acties.
Geef de gebruikers-id op
Hierdoor wordt de gebruiker verwijderd en worden alle tokens voor gebruikerstoegang voor de opgegeven gebruiker ingetrokken. Er zijn geen uitvoer voor deze actie.
Uw logische app testen
Als u uw werkstroom handmatig wilt starten, selecteert u Uitvoeren op de werkbalk van de ontwerpfunctie. De werkstroom moet een gebruiker maken, een toegangstoken voor die gebruiker uitgeven, het vervolgens verwijderen en de gebruiker verwijderen. Lees hoe u uw werkstroom uitvoert voor meer informatie. U kunt de uitvoer van deze acties controleren nadat de werkstroom is uitgevoerd.
Identiteit gebruiken voor bewaking en metrische gegevens
De gebruikers-id is bedoeld als primaire sleutel voor logboeken en metrische gegevens die worden verzameld via Azure Monitor. Als u bijvoorbeeld alle aanroepen van een gebruiker wilt bekijken, kunt u uw verificatie instellen op een manier die een specifieke Azure Communication Services-identiteit (of identiteiten) toewijst aan één gebruiker.
Meer informatie over verificatieconcepten, het aanroepen van diagnostische gegevens via Log Analytics en metrische gegevens die beschikbaar zijn voor u.
Resources opschonen
Als u een Communication Services-abonnement wilt opschonen en verwijderen, verwijdert u de resource of resourcegroep. Als u een resourcegroep verwijdert, worden ook alle andere resources verwijderd die eraan zijn gekoppeld. Zie de sectie Resources opschonen van Communication Services-resources maken en beheren voor meer informatie.
Als u uw werkstroom voor logische apps en gerelateerde resources wilt opschonen, bekijkt u hoe u Azure Logic Apps-resources opschoont.
Volgende stappen
In deze snelstart hebt u de volgende zaken geleerd:
- Toegangstokens uitgeven
- Identiteiten beheren
U kunt ook het volgende doen:
Volgende stappen
In deze quickstart hebt u geleerd hoe u een gebruiker maakt, een gebruiker verwijdert, een gebruiker een toegangstoken geeft en het toegangstoken van de gebruiker verwijdert met behulp van de Azure Communication Services Identity-connector. Raadpleeg de documentatie voor Azure Communication Services Identity Verbinding maken or voor meer informatie.
Als u wilt zien hoe tokens door andere connectors worden gebruikt, bekijkt u hoe u een chatbericht verzendt vanuit Power Automate met behulp van Azure Communication Services.
Voor meer informatie over het verzenden van een e-mail met behulp van de Azure Communication Services-e-mailconnector schakelt u Het verzenden van e-mailberichten in Power Automate in met Azure Communication Services.