Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A hozzáférési jogkivonatok lehetővé teszik az Azure Communication Services SDK-k számára, hogy közvetlenül az Azure Communication Servicesen keresztül hitelesítsék magukat egy adott identitásként. Hozzáférési jogkivonatokat kell létrehoznia a végfelhasználók számára, ha azt szeretné, hogy csatlakozzanak egy híváshoz vagy csevegési szálhoz az alkalmazásban.
Ez a cikk bemutatja, hogyan hozhat létre identitásokat az Azure Communication Services SDK-kkal, és hogyan kezelheti a hozzáférési jogkivonatokat. Éles használat esetén javasoljuk, hogy hozzon létre hozzáférési jogkivonatokat egy kiszolgálóoldali szolgáltatásban az ügyfél- és kiszolgálóarchitektúrában leírtak szerint.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
- Telepítse az Azure CLI-t.
Saját környezet beállítása
A bővítmény hozzáadása
Adja hozzá az Azure CLI Azure Communication Services-bővítményét a az extension
paranccsal.
az extension add --name communication
Bejelentkezés az Azure CLI-be
Be kell jelentkeznie az Azure CLI-be. A parancs futtatásával bejelentkezhet a az login
terminálról, majd megadhatja a hitelesítő adatait.
(Nem kötelező) Azure CLI-identitásműveletek használata kapcsolati sztring átadása nélkül
Könnyedén konfigurálhatja a AZURE_COMMUNICATION_CONNECTION_STRING
környezeti változót úgy, hogy az Azure CLI identitásműveleteket használja, anélkül, hogy meg kellene adnia a --connection_string
kapcsolati láncot. Környezeti változó konfigurálásához nyisson meg egy konzolablakot, és válassza ki az operációs rendszert az alábbi lapokról. Cserélje le <yourConnectionString>
a tényleges kapcsolati karakterlánc.
Nyisson meg egy konzolablakot, és írja be a következő parancsot:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
A környezeti változó hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változó olvasásához szükséges futó programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
A hozzáférési jogkivonat tárolása környezeti változóban
Környezeti változó konfigurálásához nyisson meg egy konzolablakot, és válassza ki az operációs rendszert az alábbi lapokról. Cserélje le <yourAccessToken>
a tényleges hozzáférési tokenre.
Nyisson meg egy konzolablakot, és írja be a következő parancsot:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
A környezeti változó hozzáadása után előfordulhat, hogy újra kell indítania a környezeti változó olvasásához szükséges futó programokat, beleértve a konzolablakot is. Ha például a Visual Studiót használja szerkesztőként, indítsa újra a Visual Studiót a példa futtatása előtt.
Üzemeltetés
Identitás létrehozása
Hozzáférési jogkivonatok létrehozásához identitásra van szükség. Az Azure Communication Services ehhez egy egyszerűsített identitáskönyvtárat tart fenn. A user create
paranccsal hozzon létre egy új, egyedi bejegyzést a könyvtárban Id
. Az identitásra később szükség lesz a hozzáférési jogkivonatok kiállításához.
az communication identity user create --connection-string "<yourConnectionString>"
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal.
Identitás létrehozása és hozzáférési jogkivonat kiállítása ugyanabban a kérelemben
Futtassa a következő parancsot egy Communication Services-identitás létrehozásához, és adjon ki egy hozzáférési jogkivonatot egyszerre. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg a támogatott műveletek listáját az Azure Communication Services hitelesítésében.
az communication identity token issue --scope chat --connection-string "<yourConnectionString>"
Végezze el ezt a pótlást a kódban:
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal.
Hozzáférési jogkivonat kiállítása
Futtassa a következő parancsot egy hozzáférési token kiadásához a Communication Services azonosítójához. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg a támogatott műveletek listáját az Azure Communication Services hitelesítésében.
az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"
Végezze el ezt a pótlást a kódban:
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal. - Cserélje le
<userId>
a saját userId azonosítójára.
A hozzáférési jogkivonatok rövid élettartamú hitelesítő adatok, amelyeket újra ki kell adni. Ha ezt nem teszi meg, az az alkalmazás felhasználói élményének megszakadását okozhatja. A expires_on
válasz tulajdonság a hozzáférési jogkivonat élettartamát jelzi.
Hozzáférési jogkivonat kiállítása több hatókörrel
Futtassa az alábbi parancsot egy hozzáférési jogkivonat kiadásához, amely több hatókörrel rendelkezik a Communication Services-identitáshoz. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg az identitásmodellben támogatott műveletek listáját.
az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"
Végezze el ezt a pótlást a kódban:
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal. - Cserélje le
<userId>
a saját userId azonosítójára.
A hozzáférési jogkivonatok rövid élettartamú hitelesítő adatok, amelyeket újra ki kell adni. Ha ezt nem teszi meg, az az alkalmazás felhasználói élményének megszakadását okozhatja. A expires_on
válasz tulajdonság a hozzáférési jogkivonat élettartamát jelzi.
A Teams-felhasználó Microsoft Entra hozzáférési jogkivonatának cseréje kommunikációs identitás hozzáférési jogkivonatra
token get-for-teams-user
A parancs használatával kibocsáthat egy hozzáférési jogkivonatot a Teams-felhasználó számára, amely az Azure Communication Services SDK-kkal használható.
az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"
Végezze el ezt a pótlást a kódban:
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal. - Cserélje le
<yourAadUser>
a Microsoft Entra userId azonosítóját. - Cserélje le a
<yourAadApplication>
címkét a Microsoft Entra alkalmazásazonosítójával. - Cserélje le
<yourAadToken>
a Microsoft Entra hozzáférési tokenre.
Hozzáférési jogkivonatok visszavonása
Előfordulhat, hogy explicit módon vissza kell vonnia egy hozzáférési jogkivonatot. Ezt például akkor teheti meg, ha az alkalmazás felhasználói megváltoztatják a szolgáltatásban való hitelesítéshez használt jelszót. A token revoke
parancs érvényteleníti az identitás számára kiadott összes aktív hozzáférési jogkivonatot.
az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"
Végezze el ezt a pótlást a kódban:
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal. - Cserélje le
<userId>
a saját userId azonosítójára.
Identitás törlése
Identitás törlésekor visszavonja az összes aktív hozzáférési jogkivonatot, és megakadályozza az identitáshoz tartozó hozzáférési jogkivonatok további kiállítását. Ezzel eltávolítja az identitáshoz társított összes tartós tartalmat is.
az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"
Végezze el ezt a pótlást a kódban:
- Cserélje le a(z)
<yourConnectionString>
a kapcsolati karakterlánccal. - Cserélje le
<userId>
a saját userId azonosítójára.
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Az operációs rendszer legújabb .NET Core SDK-verziója .
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
A végső kód
Keresse meg a véglegesített kódot a GitHubon.
Saját környezet beállítása
Új C#-alkalmazás létrehozása
A parancssori ablakban ( például parancsmag, PowerShell vagy Bash) futtassa a
dotnet new
parancsot egy új, a névvelAccessTokensQuickstart
ellátott konzolalkalmazás létrehozásához. Ez a parancs egy egyszerű „Helló világ!” alkalmazás C#-projektet hoz létre egyetlen forrásfájllal.Program.cs
dotnet new console -o AccessTokensQuickstart
Módosítsa a könyvtárat az újonnan létrehozott alkalmazásmappára, és használja a
dotnet build
parancsot az alkalmazás fordításához.cd AccessTokensQuickstart dotnet build
Egy egyszerű
Hello World
kimenet jelenik meg. Ha megfelelően jelenik meg, a beállítás működik, és megkezdheti az Azure Communication Services-kód írását.
Telepítse a(z) csomagot
Amíg még az alkalmazáskönyvtárban van, telepítse a .NET-csomaghoz készült Azure Communication Services Identity-kódtárat a dotnet add package
parancs használatával.
dotnet add package Azure.Communication.Identity
Az alkalmazás-keretrendszer beállítása
A projektkönyvtárban hajtsa végre a következő lépéseket:
- Nyissa meg a
Program.cs
fájlt egy szövegszerkesztőben. - Adjon hozzá egy
using
irányelvet aAzure.Communication.Identity
névtér hozzáadásához. - Az aszinkron kód támogatásához frissítse a metódusdeklarációt
Main
.
Először futtassa a következő kódot:
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
}
}
}
Az ügyfél hitelesítése
Inicializálja a CommunicationIdentityClient
kapcsolati stringjével. Az alábbi kód, amelyet hozzáad a Main
metódushoz, lekéri az erőforrás kapcsolati sztringjét egy COMMUNICATION_SERVICES_CONNECTION_STRING
-nek nevezett környezeti változóból.
További információért lásd: A Communication Services-erőforrások létrehozása és kezelése, valamint a kapcsolati sztring tárolása>.
// 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);
Másik lehetőségként a végpontot és a hozzáférési kulcsot az alábbi kód futtatásával választhatja el:
// 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));
Ha már beállított egy Microsoft Entra-alkalmazást, a Microsoft Entra ID-jával hitelesítheti magát.
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);
Identitás létrehozása
Hozzáférési jogkivonatok létrehozásához identitásra van szükség. Az Azure Communication Services ehhez egy egyszerűsített identitáskönyvtárat tart fenn. Ezzel a createUser
módszerrel hozzon létre egy új bejegyzést a könyvtárban egy egyedi Id
értékkel. Később használja az identitást hozzáférési jogkivonatok kiállításához.
var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Tárolja a kapott identitást az alkalmazás felhasználóinak való leképezéssel (például az alkalmazáskiszolgáló adatbázisában való tárolással).
(Előzetes verzió) Identitás létrehozása társított egyéni azonosítóval
Fontos
Ez a funkció az SDK-verziótól 1.4.0-beta1
kezdve érhető el.
Megjegyzés:
Ez a funkció jelenleg előzetes verzióban érhető el.
Létrehozhat egy identitást, amelyhez társítva customId
van az alkalmazás felhasználói identitásainak az Azure Communication Services-identitásokkal való leképezéséhez. Ha ismét meghívja a CreateUser
metódust ugyanazzal a customId
paraméterrel, az ugyanazt a user.Id
fogja visszaadni. Ez szükségtelenné teszi a leképezés önálló tárolását.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
Console.WriteLine($"\nCreated an identity with ID: {user.Id}");
(Előzetes verzió) Identitásadatok lekérése
Fontos
Ez a funkció az SDK-verziótól 1.4.0-beta1
kezdve érhető el.
Megjegyzés:
Ez a funkció jelenleg előzetes verzióban érhető el.
Ezzel a GetUserDetail
módszerrel adatokat kérdezhet le egy felhasználóról, beleértve a customId
-t és a lastTokenIssuedAt
-t.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
var userDetails = client.GetUserDetail(user);
Console.WriteLine($"User ID: {userDetails.Id}");
Console.WriteLine($"Custom ID: {userDetails.CustomId}");
Console.WriteLine($"Last token issued at: {userDetails.LastTokenIssuedAt}");
Hozzáférési jogkivonat kiállítása
Miután rendelkezik Communication Services-identitással, használja a GetToken
metódust egy hozzáférési jogkivonat kiadásához. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg az identitásmodellben támogatott műveletek listáját. Létrehozhat egy új példányt communicationUser
, egy Azure Communication Service-identitás karakterlánc ábrázolása alapján.
// 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);
A hozzáférési jogkivonatok rövid élettartamú hitelesítő adatok, amelyeket újra ki kell adni. Ha ezt nem teszi meg, az az alkalmazás felhasználói élményének megszakadását okozhatja. A expiresOn
tulajdonság a hozzáférési jogkivonat élettartamát jelzi.
Egyéni jogkivonat lejárati idejének beállítása
Az alapértelmezett jogkivonat lejárati ideje 24 óra, de konfigurálható úgy, hogy egy óra és 24 óra közötti értéket ad meg az opcionális paraméternek tokenExpiresIn
. Új jogkivonat kérésekor adja meg a kommunikációs munkamenet várható jellemző hosszát a jogkivonat lejárati idejéhez.
// 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);
Identitás létrehozása és token kiállítása ugyanabban a kérésben
Ezzel a CreateUserAndTokenAsync
módszerrel létrehozhat egy Communication Services-identitást, és egyszerre adhat ki hozzáférési jogkivonatot. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg a támogatott műveletek listáját az Azure Communication Services hitelesítésében.
// 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);
(Előzetes verzió) Hozzon létre egy identitást, és adjon ki egy jogkivonatot ugyanabban a kérésben egy egyéni azonosítóval.
Fontos
Ez a funkció az SDK-verziótól 1.4.0-beta1
kezdve érhető el.
Megjegyzés:
Ez a funkció jelenleg előzetes verzióban érhető el.
Az egyéni azonosítót átadhatja a CreateUserAndTokenAsync
metódusnak identitás létrehozásához és hozzáférési jogkivonat kiállításához egyetlen hívásban.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
Response<CommunicationUserIdentifierAndToken> identityAndTokenResponse = await client.CreateUserAndTokenAsync(customId: "bob@contoso.com", scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.User;
var token = identityAndTokenResponse.AccessToken.Token;
var expiresOn = identityAndTokenResponse.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Hozzáférési jogkivonat frissítése
A hozzáférési jogkivonat frissítéséhez adja át az CommunicationUserIdentifier
objektum egy példányát a GetTokenAsync
-nak. Ha ezt Id
tárolta, és létre kell hoznia egy újat CommunicationUserIdentifier
, ezt úgy teheti meg, hogy átadja a tárolt adatokat Id
a konstruktornak az CommunicationUserIdentifier
alábbiak szerint:
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Hozzáférési jogkivonatok visszavonása
Előfordulhat, hogy explicit módon vissza kell vonnia egy hozzáférési jogkivonatot. Ha például az alkalmazás felhasználói megváltoztatják a szolgáltatásban való hitelesítéshez használt jelszót. A RevokeTokensAsync
metódus érvényteleníti az azonosság számára kibocsátott összes aktív hozzáférési tokent.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Identitás törlése
Amikor töröl egy identitást, visszavonja az összes aktív hozzáférési jogkivonatot, és megakadályozza, hogy az identitáshoz tartozó további hozzáférési jogkivonatok kibocsátásra kerüljenek. Ezzel eltávolítja az identitáshoz társított összes tartós tartalmat is.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
A kód futtatása
Amikor befejezte a hozzáférési jogkivonat létrehozását, a parancs használatával futtathatja az alkalmazást az dotnet run
alkalmazáskönyvtárból.
dotnet run
Az alkalmazás kimenete az összes befejezett műveletet ismerteti:
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
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Node.js Active LTS és Maintenance LTS verzió (8.11.1 és 10.14.1 ajánlott).
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
A végső kód
Keresse meg a véglegesített kódot a GitHubon.
Saját környezet beállítása
Új Node.js-alkalmazás létrehozása
Egy terminál vagy parancssori ablakban hozzon létre egy új könyvtárat az alkalmazáshoz, majd nyissa meg.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Futtassa
npm init -y
azpackage.json
alapértelmezett beállításokkal rendelkező fájl létrehozásához.npm init -y
Telepítse a(z) csomagot
npm install
A parancs használatával telepítse az Azure Communication Services Identity SDK for JavaScriptet.
npm install @azure/communication-identity@latest --save
A --save
beállítás függőségként sorolja fel a tárat a package.json
fájlban.
Az alkalmazás-keretrendszer beállítása
Hozzon létre egy fájlt
issue-access-token.js
a projektkönyvtárban, és adja hozzá a következő kódot: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); })
Az ügyfél hitelesítése
Példányosítsa a CommunicationIdentityClient
kapcsolati karakterlánccal. Az alábbi kód, amelyet hozzáad a Main
metódushoz, lekéri az erőforrás kapcsolati sztringjét egy COMMUNICATION_SERVICES_CONNECTION_STRING
-nek nevezett környezeti változóból.
További információért lásd: A Communication Services-erőforrások létrehozása és kezelése, valamint a kapcsolati sztring tárolása>.
// 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);
Másik lehetőségként a végpontot és a hozzáférési kulcsot az alábbi kód futtatásával választhatja el:
// 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)
Ha már beállított egy Microsoft Entra-alkalmazást, a Microsoft Entra ID-jával hitelesítheti magát.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);
Identitás létrehozása
Hozzáférési jogkivonatok létrehozásához identitásra van szükség. Az Azure Communication Services ehhez egy egyszerűsített identitáskönyvtárat tart fenn. Ezzel a createUser
módszerrel hozzon létre egy új bejegyzést a könyvtárban egy egyedi Id
értékkel. A hozzáférési jogkivonatok kiállításához később szüksége lesz az identitásra.
let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);
Tárolja a kapott identitást az alkalmazás felhasználóihoz való leképezéssel (például az alkalmazáskiszolgáló adatbázisában való tárolással).
(Előzetes verzió) Identitás létrehozása társított egyéni azonosítóval
Fontos
Ez a funkció az SDK-verziótól 1.4.0-beta1
kezdve érhető el.
Megjegyzés:
Ez a funkció jelenleg előzetes verzióban érhető el.
Létrehozhat egy olyan identitást, amelyhez társítva customId
van az alkalmazás felhasználói identitásainak az Azure Communication Services-identitásokhoz való leképezéséhez. Ha felhívja a createUser
-t ugyanazzal a customId
-t, a szolgáltatás ugyanazt a communicationUserId
-t adja vissza. Ez szükségtelenné teszi a leképezés önálló tárolását.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
(Előzetes verzió) Identitásadatok lekérése
Fontos
Ez a funkció az SDK-verziótól 1.4.0-beta1
kezdve érhető el.
Megjegyzés:
Ez a funkció jelenleg előzetes verzióban érhető el.
Ezzel a getUserDetail
módszerrel adatokat kérdezhet le egy felhasználóról, beleértve a customId
-t és a lastTokenIssuedAt
-t.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
let userDetails = client.getUserDetail(user);
console.log(`\nUser ID: ${user.communicationUserId}`);
console.log(`\nCustom ID: ${userDetails.customId}`);
console.log(`\nLast token issued at: ${userDetails.lastTokenIssuedAt}`);
Hozzáférési jogkivonat kiállítása
Ezzel a getToken
módszerrel hozzáférési tokent adhat ki a Communication Services identitáshoz. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg az identitásmodellben támogatott műveletek listáját. Új példányt is létrehozhat az Azure Communication Service-identitás szöveges reprezentációja alapján az communicationUser
segítségével.
// 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);
A hozzáférési jogkivonatok rövid élettartamú hitelesítő adatok, amelyeket újra ki kell adni. Ha ezt nem teszi meg, az az alkalmazás felhasználói élményének megszakadását okozhatja. A expiresOn
tulajdonság a hozzáférési jogkivonat élettartamát jelzi.
Egyéni jogkivonat lejárati idejének beállítása
Az alapértelmezett jogkivonat lejárati ideje 24 óra (1440 perc), de konfigurálható úgy, hogy 60 perc és 1440 perc közötti értéket ad meg az opcionális paraméternek tokenExpiresInMinutes
. Új jogkivonat kérésekor adja meg a kommunikációs munkamenet várható jellemző hosszát a jogkivonat lejárati idejéhez.
// 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);
Identitás létrehozása és token kiállítása egy hívásban
Ezzel a createUserAndToken
módszerrel létrehozhat egy Communication Services-identitást, és egyszerre adhat ki hozzáférési jogkivonatot. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. Hozd létre a voip
hatókörrel.
// 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);
(Előzetes verzió) Identitás létrehozása és jogkivonat kiállítása egy metódushívásban, beleértve a customId azonosítót is
Fontos
Ez a funkció az SDK-verziótól 1.4.0-beta1
kezdve érhető el.
Megjegyzés:
Ez a funkció jelenleg előzetes verzióban érhető el.
Az egyéni azonosítót átadhatja a createUserAndToken
metódusnak identitás létrehozásához és hozzáférési jogkivonat kiállításához egyetlen hívásban.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
const customId = "bob@contoso.com";
let identityTokenResponse = await identityClient.createUserAndToken(["voip"], { customId });
// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Hozzáférési jogkivonat frissítése
A tokenek lejáratakor frissítenie kell őket. A tokenek frissítéséhez hívja meg ismét a getToken
, ugyanazzal az identitással, amellyel a tokeneket kiállította. Meg kell adnia a frissített kódokat scopes
is.
// 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"]);
Hozzáférési jogkivonatok visszavonása
Előfordulhat, hogy vissza kell vonnia egy hozzáférési jogkivonatot. Ezt például akkor teheti meg, ha az alkalmazás felhasználói megváltoztatják a szolgáltatásban való hitelesítéshez használt jelszót. A revokeTokens
metódus érvényteleníti az azonosság számára kibocsátott összes aktív hozzáférési tokent.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Identitás törlése
Amikor töröl egy identitást, visszavonja az összes aktív hozzáférési jogkivonatot, és megakadályozza, hogy az identitáshoz tartozó további hozzáférési jogkivonatok kibocsátásra kerüljenek. Ezzel eltávolítja az identitáshoz társított összes tartós tartalmat is.
await identityClient.deleteUser(identityResponse);
console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);
A kód futtatása
A konzol parancssorából lépjen a issue-access-token.js fájlt tartalmazó könyvtárra, majd futtassa a következő node
parancsot az alkalmazás futtatásához:
node ./issue-access-token.js
Az alkalmazás kimenete az összes befejezett műveletet ismerteti:
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
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Python 3.8+.
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
A végső kód
Keresse meg a véglegesített kódot a GitHubon.
Saját környezet beállítása
Új Python-alkalmazás létrehozása
Egy terminál vagy parancssori ablakban hozzon létre egy új könyvtárat az alkalmazáshoz, majd nyissa meg.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Hozzon létre egy fájlt
issue-access-tokens.py
a projekt gyökérkönyvtárában egy szövegszerkesztő használatával. Ezután adja hozzá a program struktúráját, beleértve az alapvető kivételkezelést is. Az összes forráskódot hozzá kell adnia ehhez a fájlhoz.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)
Telepítse a(z) csomagot
Az alkalmazáskönyvtárban telepítse az Azure Communication Services Identity SDK for Python-csomagot a pip install
paranccsal.
pip install azure-communication-identity
Az ügyfél hitelesítése
Példányosítás a CommunicationIdentityClient
kapcsolati sztring. Az alábbi kód, amelyet hozzáad a try
blokkhoz, lekéri az erőforrás kapcsolati sztringjét a COMMUNICATION_SERVICES_CONNECTION_STRING
nevű környezeti változóból.
További információért lásd: A Communication Services-erőforrások létrehozása és kezelése, valamint a kapcsolati sztring tárolása>.
# 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)
Másik lehetőségként, ha már beállított egy Microsoft Entra-alkalmazást, a Microsoft Entra-azonosítóval hitelesíthet.
endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())
Identitás létrehozása
Hozzáférési jogkivonatok létrehozásához identitásra van szükség. Az Azure Communication Services ehhez egy egyszerűsített identitáskönyvtárat tart fenn. Ezzel a create_user
módszerrel hozzon létre egy új bejegyzést a könyvtárban egy egyedi Id
értékkel. A hozzáférési jogkivonatok kiállításához később szükség van az identitásra.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
Tárolja a kapott identitást az alkalmazás felhasználóinak való leképezéssel (például az alkalmazáskiszolgáló adatbázisában való tárolással).
Hozzáférési jogkivonat kiállítása
Ezzel a get_token
módszerrel hozzáférési tokent adhat ki a Communication Services identitáshoz. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg az identitásmodellben támogatott műveletek listáját. Létrehozhat egy új paraméterpéldányt CommunicationUserIdentifier
is az Azure Communication Service-identitás sztring-ábrázolása alapján.
# 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)
A hozzáférési jogkivonatok rövid élettartamú hitelesítő adatok, amelyeket újra ki kell adni. Ha ezt nem teszi meg, az az alkalmazás felhasználói élményének megszakadását okozhatja. A expires_on
válasz tulajdonság a hozzáférési jogkivonat élettartamát jelzi.
Egyéni jogkivonat lejárati idejének beállítása
Az alapértelmezett jogkivonat lejárati ideje 24 óra, de konfigurálható úgy, hogy egy óra és 24 óra közötti értéket ad meg az opcionális paraméternek token_expires_in
. Új jogkivonat kérésekor adja meg a kommunikációs munkamenet várható jellemző hosszát a jogkivonat lejárati idejéhez.
# 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)
Identitás létrehozása és hozzáférési jogkivonat kiállítása ugyanabban a kérelemben
Ezzel a create_user_and_token
módszerrel létrehozhat egy Communication Services-identitást, és egyszerre adhat ki hozzáférési jogkivonatot. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg a támogatott műveletek listáját az Azure Communication Services hitelesítésében.
# 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)
Hozzáférési jogkivonat frissítése
Hozzáférési jogkivonat frissítéséhez használja az CommunicationUserIdentifier
objektumot egy jogkivonat újbóli kiadására a meglévő identitás átadásával:
# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])
Hozzáférési jogkivonatok visszavonása
Előfordulhat, hogy explicit módon vissza kell vonnia egy hozzáférési jogkivonatot. Ha például az alkalmazás felhasználói megváltoztatják a szolgáltatásban való hitelesítéshez használt jelszót. A revoke_tokens
metódus érvényteleníti az azonosság számára kibocsátott összes aktív hozzáférési tokent.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Identitás törlése
Identitás törlésekor visszavonja az összes aktív hozzáférési jogkivonatot, és megakadályozza az identitáshoz tartozó hozzáférési jogkivonatok további kiállítását. Ezzel eltávolítja az identitáshoz társított összes tartós tartalmat is.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
A kód futtatása
A konzol parancssorából lépjen a fájlt tartalmazó issue-access-tokens.py
könyvtárba, majd futtassa a következő python
parancsot az alkalmazás futtatásához.
python ./issue-access-tokens.py
A létrehozott kimenet az összes befejezett műveletet ismerteti:
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
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- A Java Development Kit (JDK) 8-es vagy újabb verziója.
- Apache Maven.
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
A végső kód
Keresse meg a véglegesített kódot a GitHubon.
Saját környezet beállítása
Új Java-alkalmazás létrehozása
Egy terminál vagy parancssor ablakában lépjen arra a könyvtárra, ahol létre szeretné hozni a Java-alkalmazást. Ha Java-projektet szeretne létrehozni a maven-archetype-quickstart sablonból, futtassa a következő kódot:
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Figyelje meg, hogy a generate
feladat létrehoz egy olyan könyvtárat, amelynek a neve megegyezik a következővel artifactId
: . Ebben a könyvtárban a src/main/java
könyvtár tartalmazza a projekt forráskódját, a src/test/java
könyvtár a tesztforrást, a pom.xml
fájl pedig a projekt projektobjektum-modelljét vagy POM-jét. Ez a fájl a projektkonfigurációs paraméterekhez használatos.
A Communication Services-csomagok telepítése
Nyissa meg a pom.xml
fájlt a szövegszerkesztőben. Adja hozzá a következő függőségi elemet a függőségek csoportjához:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-identity</artifactId>
<version>[1.4.0,)</version>
</dependency>
Ez a kód arra utasítja a Mavent, hogy telepítse a Communication Services Identity SDK-t, amelyet később kell használnia.
Az alkalmazás-keretrendszer beállítása
A projektkönyvtárban hajtsa végre a következő lépéseket:
- Nyissa meg a
/src/main/java/com/communication/quickstart
könyvtárat. - Nyissa meg a
App.java
fájlt a szerkesztőben. - Cserélje le az állítást
System.out.println("Hello world!");
. - Adj hozzá
import
utasításokat.
A kezdéshez használja a következő kódot:
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
}
}
Az ügyfél hitelesítése
Példányosítson egy CommunicationIdentityClient
saját erőforrásod hozzáférési kulcsával és végpontjával. További információért lásd: A Communication Services-erőforrások létrehozása és kezelése, valamint a kapcsolati sztring tárolása>.
Az ügyfelet inicializálhatja bármely egyéni HTTP-ügyféllel is, amely implementálja a com.azure.core.http.HttpClient
felületet.
A App.java
fájlban adja hozzá a következő kódot a main
metódushoz:
// 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();
A végpont és a hozzáférési kulcs megadása helyett a teljes kapcsolati sztring megadhatja a connectionString()
metódus használatával.
// 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();
Ha már beállított egy Microsoft Entra-alkalmazást, a Microsoft Entra ID-jával hitelesítheti magát.
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();
CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
.endpoint(endpoint)
.credential(credential)
.buildClient();
Identitás létrehozása
Hozzáférési jogkivonatok létrehozásához identitásra van szükség. Az Azure Communication Services ehhez egy egyszerűsített identitáskönyvtárat tart fenn. Ezzel a createUser
módszerrel hozzon létre egy új bejegyzést a könyvtárban egy egyedi Id
értékkel.
CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());
A létrehozott identitásra később szükség van a hozzáférési jogkivonatok kiállításához. Tárolja a kapott identitást az alkalmazás felhasználóihoz való leképezéssel (például az alkalmazáskiszolgáló adatbázisában való tárolással).
Hozzáférési jogkivonat kiállítása
Ezzel a getToken
módszerrel hozzáférési tokent adhat ki a Communication Services identitáshoz. A scopes
paraméter hozzáférési jogkivonat-engedélyek és szerepkörök készletét határozza meg. További információkért tekintse meg az identitásmodellben támogatott műveletek listáját.
Az alábbi kódban használja az előző lépésben létrehozott felhasználói változót egy jogkivonat lekéréséhez.
// 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);
A hozzáférési jogkivonatok rövid élettartamú hitelesítő adatok, amelyeket újra ki kell adni. Ha ezt nem teszi meg, az az alkalmazás felhasználói élményének megszakadását okozhatja. A expiresAt
tulajdonság a hozzáférési jogkivonat élettartamát jelzi.
Egyéni jogkivonat lejárati idejének beállítása
Az alapértelmezett jogkivonat lejárati ideje 24 óra, de konfigurálható úgy, hogy egy óra és 24 óra közötti értéket ad meg az opcionális paraméternek tokenExpiresIn
. Új jogkivonat kérésekor adja meg a kommunikációs munkamenet várható jellemző hosszát a jogkivonat lejárati idejéhez.
// 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);
Identitás létrehozása és jogkivonat kiállítása egyetlen kérelemben
Másik lehetőségként a createUserAndToken metódussal létrehozhat egy új bejegyzést a címtárban egyedi Id
azonosítóval, és egyszerre adhat ki hozzáférési jogkivonatot.
//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);
Hozzáférési jogkivonat frissítése
Hozzáférési jogkivonat frissítéséhez használja az CommunicationUserIdentifier
objektumot az újbóli kiadáshoz:
// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);
Hozzáférési jogkivonat visszavonása
Előfordulhat, hogy explicit módon vissza kell vonnia egy hozzáférési jogkivonatot. Ezt például akkor teheti meg, ha az alkalmazás felhasználói megváltoztatják a szolgáltatásban való hitelesítéshez használt jelszót. A revokeTokens
metódus érvényteleníti egy adott felhasználó összes aktív hozzáférési jogkivonatát. Az alábbi kódban használhatja a korábban létrehozott felhasználót.
communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());
Identitás törlése
Identitás törlésekor visszavonja az összes aktív hozzáférési jogkivonatot, és megakadályozza az identitáshoz tartozó hozzáférési jogkivonatok további kiállítását. Ezzel eltávolítja az identitáshoz társított összes tartós tartalmat is.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
A kód futtatása
Nyissa meg a fájlt tartalmazó könyvtárat
pom.xml
.A projekt lefordítása a következő
mvn
paranccsal:mvn compile
hozza létre a csomagot:
mvn package
Futtassa a következő
mvn
parancsot az alkalmazás végrehajtásához:mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
A kimenet az összes befejezett műveletet ismerteti:
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
Előfeltételek
A hozzáférési jogkivonatok létrehozása
Az Azure portálon navigáljon a Identitások és felhasználói hozzáférési jogkivonatok panelre a Communication Services erőforrásában.
Válassza ki a hozzáférési jogkivonatok hatókörét. Választhat egyiket, egyet vagy több szolgáltatást.
Válassza a Létrehozás gombot.
A rendszer létrehoz egy identitást és a megfelelő felhasználói hozzáférési jogkivonatot.
Másolja ki ezeket a sztringeket, és használja őket a mintaalkalmazásokban és más tesztelési forgatókönyvekben.
Előfeltételek
Egy Azure-fiók, aktív előfizetéssel. Hozzon létre ingyenes Azure-fiókot.
Aktív Azure Communication Services-erőforrás. Hozzon létre egy Communication Services-erőforrást.
Aktív Azure Logic Apps-erőforrás (logikai alkalmazás). Hozzon létre egy használatalapú logikai alkalmazás munkafolyamatot az eseményindítóval, amelyet használni szeretne. Az Azure Communication Services Identity-összekötő jelenleg csak műveleteket biztosít, ezért a logikai alkalmazásnak legalább eseményindítóra van szüksége.
Felhasználó létrehozása
Adjon hozzá egy új lépést a munkafolyamathoz az Azure Communication Services Identity-összekötő használatával. Hajtsa végre ezeket a lépéseket a Power Automate-ben a Power Automate-folyamat szerkesztési módban való megnyitása után.
Nyissa meg a tervezőt. Abban a lépésben, amelyhez hozzá szeretné adni az új műveletet, válassza az Új lépés lehetőséget. Másik lehetőségként az új művelet lépések közötti hozzáadásához mutasson a lépések közötti nyílra, jelölje ki a pluszjelet (+), és válassza a Művelet hozzáadása lehetőséget.
A Művelet kiválasztása keresőmezőbe írja be a Communication Services azonosítót. A műveletek listájában válassza a Felhasználó létrehozása lehetőséget.
Adja meg a kapcsolati sztringet. Ezt a Microsoft Azure Portalon, az Azure Communication Service-erőforrásban találja. A bal oldali panel menüjében válassza a Kulcsok lehetőséget a kapcsolati sztring megtekintéséhez.
Adja meg a kapcsolat nevét.
Kattintson a Létrehozás gombra
Ez a művelet létrehoz egy felhasználói azonosítót, amely a Communication Services felhasználói identitása. Ezenkívül ha a Speciális beállítások megjelenítése gombra kattint, és a Jogkivonat hatóköre lehetőséget választja, a művelet egy hozzáférési jogkivonatot és annak lejárati idejét is létrehozza a megadott hatókörrel.
Felhasználói hozzáférési jogkivonat kiállítása
Miután rendelkezik Communication Services-identitással, kibocsáthat egy hozzáférési jogkivonatot. Végezze el a következő lépéseket:
Adjon hozzá egy új műveletet, és írja be a Communication Services-identitást a keresőmezőbe. A műveletek listájában válassza a Felhasználói hozzáférési jogkivonat kiállítása lehetőséget.
Most már használhatja az előző Felhasználó létrehozása lépés felhasználói azonosítójának kimenetét.
Adja meg a token hatókörét: VoIP vagy csevegés. További információ a tokenekről és a hitelesítésről.
A rendszer létrehoz egy hozzáférési jogkivonatot és annak lejárati idejét a megadott hatókörrel.
Felhasználói hozzáférési jogkivonatok visszavonása
Miután rendelkezik Communication Services-identitással, a hozzáférési jogkivonat visszavonásához használhatja a Probléma egy felhasználói hozzáférési jogkivonatot műveletet. Hajtsa végre a következő lépéseket:
Adjon hozzá egy új műveletet, és írja be a Communication Services-identitást a keresőmezőbe. A műveletek listájában válassza a Felhasználói hozzáférési jogkivonatok visszavonása lehetőséget.
Adja meg a felhasználói azonosítót.
A rendszer visszavonja a megadott felhasználó összes felhasználói hozzáférési jogkivonatát, a művelethez nincsenek kimenetek.
Felhasználó törlése
Miután rendelkezik Communication Services-identitással, a Felhasználói hozzáférési jogkivonat kiadásának művelet segítségével törölheti a hozzáférési jogkivonatot. Végezze el a következő lépéseket:
Adjon hozzá egy új műveletet, és írja be a Communication Services-identitást a keresőmezőbe. A műveletek listájában válassza a Felhasználó törlése lehetőséget.
Adja meg a felhasználói azonosítót.
A rendszer eltávolítja a felhasználót, és visszavonja a megadott felhasználó összes felhasználói hozzáférési jogkivonatát. A művelethez nincsenek kimenetek.
A logikai alkalmazás tesztelése
A munkafolyamat manuális indításához a tervező eszköztárán válassza a Futtatás lehetőséget. A munkafolyamat létrehoz egy felhasználót, kiad egy hozzáférési jogkivonatot a felhasználónak, majd eltávolítja és törli a felhasználót.
További információkért tekintse meg a munkafolyamat futtatásának módját. A munkafolyamat sikeres futtatása után ellenőrizheti ezeknek a műveleteknek a kimenetét.
Identitás használata monitorozáshoz és metrikákhoz
A felhasználói azonosító elsődleges kulcsként szolgál az Azure Monitoron keresztül gyűjtött naplókhoz és metrikákhoz. Ha például egy felhasználó összes hívását meg szeretné tekinteni, beállíthatja a hitelesítést egy adott Azure Communication Services-identitás (vagy identitás) egyetlen felhasználóhoz való leképezéséhez.
További információk:
Az erőforrások megtisztítása
Egy Communication Services-előfizetés törléséhez és eltávolításához törölje az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. További információ: Communication Services-erőforrások > létrehozása és kezelése Erőforrások törlése.
A logikai alkalmazás munkafolyamatának és a kapcsolódó erőforrásoknak a törléséhez tekintse meg a Használati logikai alkalmazás munkafolyamata példa létrehozását az Azure Portalon > Az erőforrások törlése című témakört.
Következő lépések
Ez a cikk azt ismertette, hogyan hozhat létre és törölhet egy felhasználót. Azt is ismerteti, hogyan adhat ki hozzáférési jogkivonatot egy felhasználónak, és hogyan távolíthat el egy felhasználói hozzáférési jogkivonatot az Azure Communication Services Identity-összekötő használatával. További információ: Azure Communication Services Identity Connector.
Ha szeretné megtudni, hogy más összekötők hogyan használják a jogkivonatokat, tekintse meg , hogyan küldhet csevegőüzenetet a Power Automate-ből az Azure Communication Services használatával.
Ha többet szeretne megtudni arról, hogyan küldhet e-mailt az Azure Communication Services e-mail-összekötőjével, jelölje be az e-mail küldése a Power Automate-ben az Azure Communication Services szolgáltatással.