Snabbstart: Skapa och hantera åtkomsttoken
Med åtkomsttoken kan Azure Communication Services-SDK:er autentiseras direkt mot Azure Communication Services som en viss identitet. Du måste skapa åtkomsttoken om du vill att användarna ska ansluta till en samtals- eller chatttråd i programmet.
I den här snabbstarten får du lära dig hur du använder Azure Communication Services SDK:er för att skapa identiteter och hantera dina åtkomsttoken. För produktionsanvändningsfall rekommenderar vi att du genererar åtkomsttoken på en tjänst på serversidan.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En aktiv Communication Services-resurs och anslutningssträng. Skapa en Communication Services-resurs.
- Installera Azure CLI.
Konfigurera
Lägga till tillägget
Lägg till Azure Communication Services-tillägget för Azure CLI med hjälp az extension
av kommandot .
az extension add --name communication
Logga in på Azure CLI
Du måste logga in på Azure CLI. Du kan logga in med az login
kommandot från terminalen och ange dina autentiseringsuppgifter.
(Valfritt) Använda Azure CLI-identitetsåtgärder utan att skicka in en anslutningssträng
Du kan konfigurera AZURE_COMMUNICATION_CONNECTION_STRING
miljövariabeln så att den använder Azure CLI-identitetsåtgärder utan att behöva använda --connection_string
för att skicka in anslutningssträng. Om du vill konfigurera en miljövariabel öppnar du ett konsolfönster och väljer ditt operativsystem på flikarna nedan. Ersätt <yourConnectionString>
med din faktiska anslutningssträng.
Öppna ett konsolfönster och ange följande kommando:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
När du har lagt till miljövariabeln kan du behöva starta om alla program som körs och som behöver läsa in miljövariabeln, däribland konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.
Lagra din åtkomsttoken i en miljövariabel
Om du vill konfigurera en miljövariabel öppnar du ett konsolfönster och väljer ditt operativsystem på flikarna nedan. Ersätt <yourAccessToken>
med din faktiska åtkomsttoken.
Öppna ett konsolfönster och ange följande kommando:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
När du har lagt till miljövariabeln kan du behöva starta om alla program som körs och som behöver läsa in miljövariabeln, däribland konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.
Operations
Skapa en identitet
För att skapa åtkomsttoken behöver du en identitet. Azure Communication Services har en enkel identitetskatalog för detta ändamål. user create
Använd kommandot för att skapa en ny post i katalogen med en unik Id
. Identiteten krävs senare för utfärdande av åtkomsttoken.
az communication identity user create --connection-string "<yourConnectionString>"
- Ersätt
<yourConnectionString>
med din anslutningssträng.
Skapa en identitet och utfärda en åtkomsttoken i samma begäran
Kör följande kommando för att skapa en Communication Services-identitet och utfärda en åtkomsttoken för den samtidigt. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i Autentisera till Azure Communication Services.
az communication identity token issue --scope chat --connection-string "<yourConnectionString>"
Gör den här ersättningen i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng.
Problem med åtkomsttoken
Kör följande kommando för att utfärda en åtkomsttoken för din Communication Services-identitet. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i Autentisera till Azure Communication Services.
az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"
Gör den här ersättningen i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng. - Ersätt
<userId>
med ditt userId.
Åtkomsttoken är kortlivade autentiseringsuppgifter som måste återutfärdas. Om du inte gör det kan det orsaka avbrott i programanvändarens upplevelse. Svarsegenskapen expires_on
anger livslängden för åtkomsttoken.
Utfärda åtkomsttoken med flera omfång
Kör följande kommando för att utfärda en åtkomsttoken med flera omfång för din Communication Services-identitet. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i identitetsmodellen.
az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"
Gör den här ersättningen i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng. - Ersätt
<userId>
med ditt userId.
Åtkomsttoken är kortlivade autentiseringsuppgifter som måste återutfärdas. Om du inte gör det kan det orsaka avbrott i programanvändarens upplevelse. Svarsegenskapen expires_on
anger livslängden för åtkomsttoken.
Utbyta en Microsoft Entra-åtkomsttoken för Teams-användaren för en åtkomsttoken för kommunikationsidentitet
token get-for-teams-user
Använd kommandot för att utfärda en åtkomsttoken för Teams-användaren som kan användas med Azure Communication Services-SDK:erna.
az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"
Gör den här ersättningen i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng. - Ersätt
<yourAadUser>
med ditt Microsoft Entra userId. - Ersätt
<yourAadApplication>
med ditt Microsoft Entra-program-ID. - Ersätt
<yourAadToken>
med din Microsoft Entra-åtkomsttoken.
Återkalla åtkomsttoken
Ibland kan du behöva återkalla en åtkomsttoken uttryckligen. Du skulle till exempel göra det när programanvändare ändrar lösenordet de använder för att autentisera till din tjänst. Kommandot token revoke
ogiltigförklarar alla aktiva åtkomsttoken som har utfärdats till identiteten.
az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"
Gör den här ersättningen i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng. - Ersätt
<userId>
med ditt userId.
Ta bort en identitet
När du tar bort en identitet återkallar du alla aktiva åtkomsttoken och förhindrar ytterligare utfärdande av åtkomsttoken för identiteten. Om du gör det raderas även allt beständiga innehåll som är associerat med identiteten.
az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"
Gör den här ersättningen i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng. - Ersätt
<userId>
med ditt userId.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Den senaste .NET Core SDK-versionen för ditt operativsystem.
- En aktiv Communication Services-resurs och anslutningssträng. Skapa en Communication Services-resurs.
Den slutliga koden
Hitta den färdiga koden för den här snabbstarten på GitHub.
Konfigurera din miljö
Skapa ett nytt C#-program
I ett kommandotolkfönster, till exempel cmd, PowerShell eller Bash, kör du dotnet new
kommandot för att skapa en ny konsolapp med namnet AccessTokensQuickstart
. Det här kommandot skapar ett enkelt "Hello World" C#-projekt med en enda källfil, Program.cs.
dotnet new console -o AccessTokensQuickstart
Ändra katalogen till den nyligen skapade appmappen dotnet build
och använd kommandot för att kompilera ditt program.
cd AccessTokensQuickstart
dotnet build
En enkel "Hello World"-utdata ska visas. I så fall fungerar konfigurationen korrekt och du kan komma igång med att skriva din Azure Communication Services-specifika kod.
Installera -paketet
När du fortfarande är i programkatalogen installerar du Azure Communication Services Identity-biblioteket för .NET-paketet med hjälp dotnet add package
av kommandot .
dotnet add package Azure.Communication.Identity
Konfigurera appramverket
Gör följande i projektkatalogen:
- Öppna filen Program.cs i en textredigerare.
- Lägg till ett
using
direktiv för att inkluderaAzure.Communication.Identity
namnområdet. - Uppdatera metoddeklarationen så att den
Main
stöder asynkron kod.
Börja med att köra följande kod:
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
}
}
}
Autentisera klienten
Initiera CommunicationIdentityClient
med din anslutningssträng. Följande kod, som du lägger till i Main
metoden, hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING
.
Mer information finns i avsnittet "Lagra din anslutningssträng" i Skapa och hantera Communication Services-resurser.
// 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);
Du kan också separera slutpunkten och åtkomstnyckeln genom att köra följande kod:
// 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));
Om du redan har konfigurerat ett Microsoft Entra-program kan du autentisera med hjälp av Microsoft Entra-ID.
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);
Skapa en identitet
För att skapa åtkomsttoken behöver du en identitet. Azure Communication Services har en enkel identitetskatalog för detta ändamål. createUser
Använd metoden för att skapa en ny post i katalogen med en unik Id
. Identiteten krävs senare för utfärdande av åtkomsttoken.
var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Lagra den mottagna identiteten med mappning till programmets användare (till exempel genom att lagra den i programserverdatabasen).
Utfärda en åtkomsttoken
När du har en Communication Services-identitet använder du GetToken
metoden för att utfärda en åtkomsttoken för den. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i identitetsmodellen. Du kan också skapa en ny instans av communicationUser
baserat på en strängrepresentation av en Azure Communication Service-identitet.
// 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);
Åtkomsttoken är kortlivade autentiseringsuppgifter som måste återutfärdas. Om du inte gör det kan det orsaka avbrott i programanvändarens upplevelse. Egenskapen expiresOn
anger livslängden för åtkomsttoken.
Ange en anpassad tokens förfallotid
Förfallotiden för standardtoken är 24 timmar, men du kan konfigurera den genom att ange ett värde mellan en timme och 24 timmar till den valfria parametern tokenExpiresIn
. När du begär en ny token rekommenderar vi att du anger den förväntade typiska längden på en kommunikationssession för förfallotiden för 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);
Skapa en identitet och utfärda en token i samma begäran
Du kan använda CreateUserAndTokenAsync
metoden för att skapa en Communication Services-identitet och utfärda en åtkomsttoken för den samtidigt. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i Autentisera till 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);
Uppdatera en åtkomsttoken
Om du vill uppdatera en åtkomsttoken skickar du en instans av CommunicationUserIdentifier
objektet till GetTokenAsync
. Om du har lagrat detta Id
och behöver skapa en ny CommunicationUserIdentifier
kan du göra det genom att skicka den lagrade Id
filen till CommunicationUserIdentifier
konstruktorn på följande sätt:
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Återkalla åtkomsttoken
Ibland kan du behöva återkalla en åtkomsttoken uttryckligen. Du skulle till exempel göra det när programanvändare ändrar lösenordet de använder för att autentisera till din tjänst. Metoden RevokeTokensAsync
ogiltigförklarar alla aktiva åtkomsttoken som har utfärdats till identiteten.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Ta bort en identitet
När du tar bort en identitet återkallar du alla aktiva åtkomsttoken och förhindrar ytterligare utfärdande av åtkomsttoken för identiteten. Om du gör det raderas även allt beständiga innehåll som är associerat med identiteten.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
Kör koden
När du har skapat åtkomsttoken kan du köra programmet från programkatalogen dotnet run
med hjälp av kommandot .
dotnet run
Appens utdata beskriver varje slutförd åtgärd:
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
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Node.js Active LTS- och Maintenance LTS-versioner (8.11.1 och 10.14.1 rekommenderas).
- En aktiv Communication Services-resurs och anslutningssträng. Skapa en Communication Services-resurs.
Den slutliga koden
Hitta den färdiga koden för den här snabbstarten på GitHub.
Konfigurera din miljö
Skapa ett nytt Node.js-program
I ett terminal- eller kommandotolkfönster skapar du en ny katalog för din app och öppnar den sedan.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Kör npm init -y
för att skapa en package.json fil med standardinställningar.
npm init -y
Installera -paketet
npm install
Använd kommandot för att installera Azure Communication Services Identity SDK för JavaScript.
npm install @azure/communication-identity@latest --save
Alternativet --save
visar biblioteket som ett beroende i din package.json-fil .
Konfigurera appramverket
Skapa en fil med namnet
issue-access-token.js
i projektkatalogen och lägg till följande kod: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); })
Autentisera klienten
Instansiera CommunicationIdentityClient
med din anslutningssträng. Följande kod, som du lägger till i Main
metoden, hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING
.
Mer information finns i avsnittet "Lagra din anslutningssträng" i Skapa och hantera Communication Services-resurser.
// 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);
Du kan också separera slutpunkten och åtkomstnyckeln genom att köra följande kod:
// 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)
Om du redan har konfigurerat ett Microsoft Entra-program kan du autentisera med hjälp av Microsoft Entra-ID.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);
Skapa en identitet
För att skapa åtkomsttoken behöver du en identitet. Azure Communication Services har en enkel identitetskatalog för detta ändamål. createUser
Använd metoden för att skapa en ny post i katalogen med en unik Id
. Identiteten krävs senare för utfärdande av åtkomsttoken.
let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);
Lagra den mottagna identiteten med mappning till programmets användare (till exempel genom att lagra den i programserverdatabasen).
Utfärda en åtkomsttoken
Använd metoden getToken
för att utfärda en åtkomsttoken för din Communication Services-identitet. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i identitetsmodellen. Du kan också skapa en ny instans av en communicationUser
baserat på en strängrepresentation av Azure Communication Service-identiteten.
// 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);
Åtkomsttoken är kortlivade autentiseringsuppgifter som måste återutfärdas. Om du inte gör det kan det orsaka avbrott i programanvändarens upplevelse. Egenskapen expiresOn
anger livslängden för åtkomsttoken.
Ange en anpassad tokens förfallotid
Förfallotiden för standardtoken är 24 timmar (1 440 minuter), men du kan konfigurera den genom att ange ett värde mellan 60 minuter och 1 440 minuter till den valfria parametern tokenExpiresInMinutes
. När du begär en ny token rekommenderar vi att du anger den förväntade typiska längden på en kommunikationssession för förfallotiden för 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);
Skapa en identitet och utfärda en token i ett metodanrop
Du kan använda createUserAndToken
metoden för att skapa en Communication Services-identitet och utfärda en åtkomsttoken för den samtidigt. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Återigen skapar du den med omfånget 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);
Uppdatera en åtkomsttoken
När token upphör att gälla måste du uppdatera dem regelbundet. Det är enkelt att bara anropa getToken
igen med samma identitet som användes för att utfärda token. Du måste också ange scopes
de uppdaterade 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"]);
Återkalla åtkomsttoken
Ibland kan du behöva återkalla en åtkomsttoken. Du skulle till exempel göra det när programanvändare ändrar lösenordet de använder för att autentisera till din tjänst. Metoden revokeTokens
ogiltigförklarar alla aktiva åtkomsttoken som har utfärdats till identiteten.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Ta bort en identitet
När du tar bort en identitet återkallar du alla aktiva åtkomsttoken och förhindrar ytterligare utfärdande av åtkomsttoken för identiteten. Om du gör det raderas även allt beständiga innehåll som är associerat med identiteten.
await identityClient.deleteUser(identityResponse);
console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);
Kör koden
Från en konsolprompt går du till katalogen som innehåller filen issue-access-token.js och kör sedan följande node
kommando för att köra appen:
node ./issue-access-token.js
Appens utdata beskriver varje slutförd åtgärd:
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
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Python 3.8+.
- En aktiv Communication Services-resurs och anslutningssträng. Skapa en Communication Services-resurs.
Den slutliga koden
Hitta den färdiga koden för den här snabbstarten på GitHub.
Konfigurera din miljö
Skapa ett nytt Python-program
I ett terminal- eller kommandotolkfönster skapar du en ny katalog för din app och öppnar den sedan.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Använd en textredigerare för att skapa en fil med namnet issue-access-tokens.py i projektets rotkatalog och lägga till strukturen för programmet, inklusive grundläggande undantagshantering. Du lägger till all källkod för den här snabbstarten i den här filen i de avsnitt som följer.
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)
Installera -paketet
När du fortfarande är i programkatalogen installerar du Azure Communication Services Identity SDK för Python-paketet med hjälp pip install
av kommandot .
pip install azure-communication-identity
Autentisera klienten
Instansiera en CommunicationIdentityClient
med din anslutningssträng. Följande kod, som du lägger till i try
blocket, hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING
.
Mer information finns i avsnittet "Lagra din anslutningssträng" i Skapa och hantera Communication Services-resurser.
# 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)
Om du redan har konfigurerat ett Microsoft Entra-program kan du också autentisera med hjälp av Microsoft Entra-ID.
endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())
Skapa en identitet
För att skapa åtkomsttoken behöver du en identitet. Azure Communication Services har en enkel identitetskatalog för detta ändamål. create_user
Använd metoden för att skapa en ny post i katalogen med en unik Id
. Identiteten krävs senare för utfärdande av åtkomsttoken.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
Lagra den mottagna identiteten med mappning till programmets användare (till exempel genom att lagra den i programserverdatabasen).
Utfärda en åtkomsttoken
Använd metoden get_token
för att utfärda en åtkomsttoken för din Communication Services-identitet. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i identitetsmodellen. Du kan också skapa en ny instans av parametern CommunicationUserIdentifier
baserat på en strängrepresentation av Azure Communication Service-identiteten.
# 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)
Åtkomsttoken är kortlivade autentiseringsuppgifter som måste återutfärdas. Om du inte gör det kan det orsaka avbrott i programanvändarens upplevelse. Svarsegenskapen expires_on
anger livslängden för åtkomsttoken.
Ange en anpassad tokens förfallotid
Förfallotiden för standardtoken är 24 timmar, men du kan konfigurera den genom att ange ett värde mellan en timme och 24 timmar till den valfria parametern token_expires_in
. När du begär en ny token rekommenderar vi att du anger den förväntade typiska längden på en kommunikationssession för förfallotiden för 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)
Skapa en identitet och utfärda en åtkomsttoken i samma begäran
Du kan använda create_user_and_token
metoden för att skapa en Communication Services-identitet och utfärda en åtkomsttoken för den samtidigt. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i Autentisera till 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)
Uppdatera en åtkomsttoken
Om du vill uppdatera en åtkomsttoken använder du CommunicationUserIdentifier
objektet för att återisera en token genom att skicka in den befintliga identiteten:
# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])
Återkalla åtkomsttoken
Ibland kan du behöva återkalla en åtkomsttoken uttryckligen. Du skulle till exempel göra det när programanvändare ändrar lösenordet de använder för att autentisera till din tjänst. Metoden revoke_tokens
ogiltigförklarar alla aktiva åtkomsttoken som har utfärdats till identiteten.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Ta bort en identitet
När du tar bort en identitet återkallar du alla aktiva åtkomsttoken och förhindrar ytterligare utfärdande av åtkomsttoken för identiteten. Om du gör det raderas även allt beständiga innehåll som är associerat med identiteten.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
Kör koden
Från en konsolprompt går du till katalogen som innehåller filen issue-access-tokens.py och kör sedan följande python
kommando för att köra appen.
python ./issue-access-tokens.py
Appens utdata beskriver varje slutförd åtgärd:
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
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Java Development Kit (JDK) version 8 eller senare.
- Apache Maven.
- En aktiv Communication Services-resurs och anslutningssträng. Skapa en Communication Services-resurs.
Den slutliga koden
Hitta den färdiga koden för den här snabbstarten på GitHub.
Konfigurera din miljö
Skapa ett nytt Java-program
I ett terminal- eller kommandotolkfönster går du till katalogen där du vill skapa java-programmet. Kör följande kod för att generera ett Java-projekt från mallen maven-archetype-quickstart:
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Du kommer att märka att uppgiften generate
skapar en katalog med samma namn som artifactId
. Under den här katalogen innehåller katalogen src/main/java projektets källkod, katalogen src/test/java innehåller testkällan och filen pom.xml är projektets projektobjektmodell eller POM. Den här filen används för projektkonfigurationsparametrar.
Installera Communication Services-paketen
Öppna filen pom.xml i textredigeraren. Lägg till följande beroendeelement i gruppen med beroenden:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
<version>[1.4.0,)</version>
</dependency>
Den här koden instruerar Maven att installera Communication Services Identity SDK, som du kommer att använda senare.
Konfigurera appramverket
Gör följande i projektkatalogen:
- Gå till katalogen /src/main/java/com/communication/quickstart .
- Öppna filen App.java i redigeringsprogrammet.
- Ersätt -instruktionen
System.out.println("Hello world!");
. - Lägg till
import
direktiv.
Börja med följande kod:
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
}
}
Autentisera klienten
Instansiera en CommunicationIdentityClient
med resursens åtkomstnyckel och slutpunkt. Mer information finns i avsnittet "Lagra din anslutningssträng" i Skapa och hantera Communication Services-resurser.
Dessutom kan du initiera klienten med en anpassad HTTP-klient som implementerar com.azure.core.http.HttpClient
gränssnittet.
I filen App.java lägger du till följande kod i main
metoden:
// 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();
I stället för att ange slutpunkten och åtkomstnyckeln kan du ange hela anslutningssträng med hjälp connectionString()
av metoden .
// 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();
Om du redan har konfigurerat ett Microsoft Entra-program kan du autentisera med hjälp av 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();
Skapa en identitet
För att skapa åtkomsttoken behöver du en identitet. Azure Communication Services har en enkel identitetskatalog för detta ändamål. createUser
Använd metoden för att skapa en ny post i katalogen med en unik Id
.
CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());
Den skapade identiteten krävs senare för att utfärda åtkomsttoken. Lagra den mottagna identiteten med mappning till programmets användare (till exempel genom att lagra den i programserverdatabasen).
Utfärda en åtkomsttoken
Använd metoden getToken
för att utfärda en åtkomsttoken för din Communication Services-identitet. Parametern scopes
definierar en uppsättning behörigheter och roller för åtkomsttoken. Mer information finns i listan över åtgärder som stöds i identitetsmodellen.
I följande kod använder du användarvariabeln som du skapade i föregående steg för att hämta en 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);
Åtkomsttoken är kortlivade autentiseringsuppgifter som måste återutfärdas. Om du inte gör det kan det orsaka avbrott i programanvändarens upplevelse. Egenskapen expiresAt
anger livslängden för åtkomsttoken.
Ange en anpassad tokens förfallotid
Förfallotiden för standardtoken är 24 timmar, men du kan konfigurera den genom att ange ett värde mellan en timme och 24 timmar till den valfria parametern tokenExpiresIn
. När du begär en ny token rekommenderar vi att du anger den förväntade typiska längden på en kommunikationssession för förfallotiden för 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);
Skapa en identitet och utfärda en token i en begäran
Du kan också använda metoden "createUserAndToken" för att skapa en ny post i katalogen med en unik Id
och utfärda en åtkomsttoken samtidigt.
//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);
Uppdatera en åtkomsttoken
Om du vill uppdatera en åtkomsttoken använder du CommunicationUserIdentifier
objektet för att återissätta den:
// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);
Återkalla en åtkomsttoken
Ibland kan du behöva återkalla en åtkomsttoken uttryckligen. Du skulle till exempel göra det när programanvändare ändrar lösenordet de använder för att autentisera till din tjänst. Metoden revokeTokens
ogiltigförklarar alla aktiva åtkomsttoken för en viss användare. I följande kod kan du använda den tidigare skapade användaren.
communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());
Ta bort en identitet
När du tar bort en identitet återkallar du alla aktiva åtkomsttoken och förhindrar ytterligare utfärdande av åtkomsttoken för identiteten. Om du gör det raderas även allt beständiga innehåll som är associerat med identiteten.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
Kör koden
Gå till katalogen som innehåller filen pom.xml och kompilera sedan projektet med hjälp av följande mvn
kommando:
mvn compile
Skapa sedan paketet:
mvn package
Kör följande mvn
kommando för att köra appen:
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Appens utdata beskriver varje slutförd åtgärd:
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
Förutsättningar
Skapa åtkomsttoken
I Azure-portalen går du till bladet Identiteter och användaråtkomsttoken i din Communication Services-resurs.
Välj omfånget för åtkomsttoken. Du kan inte välja någon, en eller flera. Klicka på Generera.
Du ser en identitet och motsvarande användaråtkomsttoken genererad. Du kan kopiera dessa strängar och använda dem i exempelappar och andra testscenarier.
Förutsättningar
Ett Azure-konto med en aktiv prenumeration eller skapa ett Azure-konto kostnadsfritt.
En aktiv Azure Communication Services-resurs eller skapa en Communication Services-resurs.
En aktiv Azure Logic Apps-resurs (logikapp) eller skapa ett arbetsflöde för förbrukningslogikappen med den utlösare som du vill använda. För närvarande tillhandahåller Azure Communication Services Identity Connector endast åtgärder, så din logikapp kräver minst en utlösare.
Skapa användare
Lägg till ett nytt steg i arbetsflödet med hjälp av Azure Communication Services Identity Connector. Följ dessa steg i Power Automate med power automate-flödet öppet i redigeringsläge.
I designern går du till steget där du vill lägga till den nya åtgärden och väljer Nytt steg. Du kan också lägga till den nya åtgärden mellan stegen genom att flytta pekaren över pilen mellan dessa steg, välja plustecknet (+) och välja Lägg till en åtgärd.
I sökrutan Välj en åtgärd anger du Communication Services-identitet. I åtgärdslistan väljer du Skapa en användare.
Ange Anslut ionssträngen. Detta finns i Microsoft Azure, i din Azure Communication Service-resurs, på alternativet Nycklar på den vänstra menyn > Anslut ionssträng
Ange ett Anslut ionsnamn
Klicka på Skapa
Den här åtgärden matar ut ett användar-ID, som är en kommunikationstjänstanvändares identitet. Om du klickar på Visa avancerade alternativ och väljer tokenomfånget matar åtgärden även ut en åtkomsttoken och dess förfallotid med det angivna omfånget.
Utfärda en användaråtkomsttoken
När du har en Communication Services-identitet kan du använda åtgärden Utfärda en användaråtkomsttoken för att utfärda en åtkomsttoken. Följande steg visar hur:
Lägg till en ny åtgärd och ange Communication Services Identity i sökrutan. I åtgärdslistan väljer du Utfärda en användaråtkomsttoken.
Sedan kan du använda användar-ID-utdata från föregående steg skapa en användare .
Ange tokenomfånget: VoIP eller chatt. Läs mer om token och autentisering.
Detta matar ut en åtkomsttoken och dess förfallotid med det angivna omfånget.
Återkalla användaråtkomsttoken
När du har en Communication Services-identitet kan du använda åtgärden Utfärda en användaråtkomsttoken för att återkalla en åtkomsttoken. Följande steg visar hur:
Lägg till en ny åtgärd och ange Communication Services Identity i sökrutan. I åtgärdslistan väljer du Återkalla användaråtkomsttoken.
Ange användar-ID
Detta återkallar alla användaråtkomsttoken för den angivna användaren, det finns inga utdata för den här åtgärden.
Ta bort en användare
När du har en Communication Services-identitet kan du använda åtgärden Utfärda en användaråtkomsttoken för att ta bort en åtkomsttoken . Följande steg visar hur:
Lägg till en ny åtgärd och ange Communication Services Identity i sökrutan. I åtgärdslistan väljer du Ta bort en användare.
Ange användar-ID
Detta tar bort användaren och återkallar alla användaråtkomsttoken för den angivna användaren, det finns inga utdata för den här åtgärden.
Testa logikappen
Om du vill starta arbetsflödet manuellt går du till verktygsfältet designer och väljer Kör. Arbetsflödet ska skapa en användare, utfärda en åtkomsttoken för användaren och sedan ta bort den och ta bort användaren. Mer information finns i hur du kör arbetsflödet. Du kan kontrollera utdata från dessa åtgärder när arbetsflödet har körts.
Använda identitet för övervakning och mått
Användar-ID:t är avsett att fungera som en primärnyckel för loggar och mått som samlas in via Azure Monitor. Om du till exempel vill visa alla en användares anrop kan du konfigurera din autentisering på ett sätt som mappar en specifik Azure Communication Services-identitet (eller identiteter) till en enskild användare.
Läs mer om autentiseringsbegrepp, anropa diagnostik via log analytics och mått som är tillgängliga för dig.
Rensa resurser
Om du vill rensa och ta bort en Communication Services-prenumeration tar du bort resursen eller resursgruppen. Om du tar bort en resursgrupp tas även alla andra resurser som är associerade med den bort. Mer information finns i avsnittet "Rensa resurser" i Skapa och hantera Communication Services-resurser.
Om du vill rensa logikappens arbetsflöde och relaterade resurser kan du läsa om hur du rensar Azure Logic Apps-resurser.
Nästa steg
I den här snabbstarten har du lärt dig att:
- Problem med åtkomsttoken
- Hantera identiteter
Du kanske också vill:
Nästa steg
I den här snabbstarten har du lärt dig hur du skapar en användare, tar bort en användare, utfärdar en åtkomsttoken för en användare och tar bort användaråtkomsttoken med hjälp av Azure Communication Services Identity Connector. Mer information finns i dokumentationen om Azure Communication Services Identity Anslut eller.
Om du vill se hur token används av andra anslutningsappar kan du se hur du skickar ett chattmeddelande från Power Automate med Hjälp av Azure Communication Services.
Mer information om hur du skickar ett e-postmeddelande med hjälp av Azure Communication Services-e-postanslutningen finns i Skicka e-postmeddelande i Power Automate med Azure Communication Services.