Megosztás a következőn keresztül:


Hozzáférési jogkivonatok létrehozása és kezelése végfelhasználók számára

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

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

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

  1. A parancssori ablakban ( például parancsmag, PowerShell vagy Bash) futtassa a dotnet new parancsot egy új, a névvel AccessTokensQuickstartellá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
    
  2. 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:

  1. Nyissa meg a Program.cs fájlt egy szövegszerkesztőben.
  2. Adjon hozzá egy using irányelvet a Azure.Communication.Identity névtér hozzáadásához.
  3. 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-beta1kezdve é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-beta1kezdve é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-beta1kezdve é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

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

  1. 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
    
  2. Futtassa npm init -y az package.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

  1. 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-beta1kezdve é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-beta1kezdve é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-beta1kezdve é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

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

  1. 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
    
  2. 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

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:

  1. Nyissa meg a /src/main/java/com/communication/quickstart könyvtárat.
  2. Nyissa meg a App.java fájlt a szerkesztőben.
  3. Cserélje le az állítást System.out.println("Hello world!");.
  4. 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

  1. Nyissa meg a fájlt tartalmazó könyvtárat pom.xml .

  2. A projekt lefordítása a következő mvn paranccsal:

    mvn compile
    
  3. hozza létre a csomagot:

    mvn package
    
  4. 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

  1. 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.

  2. Válassza ki a hozzáférési jogkivonatok hatókörét. Választhat egyiket, egyet vagy több szolgáltatást.

  3. Válassza a Létrehozás gombot.

    Képernyőkép az identitás- és hozzáférési jogkivonatok hatóköréről, ahol a Létrehozás lehetőséget választja.

    A rendszer létrehoz egy identitást és a megfelelő felhasználói hozzáférési jogkivonatot.

  4. Másolja ki ezeket a sztringeket, és használja őket a mintaalkalmazásokban és más tesztelési forgatókönyvekben.

    Képernyőkép az identitás- és hozzáférési jogkivonatokról a lejárati dátummal

Előfeltételek

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.

  1. 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.

  2. 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.

    Képernyőkép, amely az Azure Communication Services Identity-összekötő Felhasználó létrehozása műveletét mutatja.

  3. 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.

    Képernyőkép az Azure Communication Services-erőforrás Kulcsok lapjáról.

  4. Adja meg a kapcsolat nevét.

  5. 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.

    Képernyőkép, amely az Azure Communication Services összekötő

    Képernyőkép az Azure Communication Services-összekötőRől: Felhasználói művelet speciális beállításainak létrehozása.

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:

  1. 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.

    Képernyőkép az Azure Communication Services Identity-összekötő hozzáférési jogkivonattal kapcsolatos műveletről.

  2. 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.

  3. 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.

    Képernyőkép az Azure Communication Services Identity-összekötő hozzáférési jogkivonat-műveletről, a jogkivonat hatókörének megadásával.

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:

  1. 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.

    Képernyőkép az Azure Communication Services Identity-összekötő Hozzáférési jogkivonat visszavonása műveletről.

  2. Adja meg a felhasználói azonosítót.

    Képernyőkép, amely az Azure Communication Services Identity-összekötő hozzáférési jogkivonat visszavonása műveletének bemenetét mutatja be.

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:

  1. 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.

    Képernyőkép az Azure Communication Services Identity-összekötő Törlés felhasználói műveletről.

  2. Adja meg a felhasználói azonosítót.

    Képernyőkép az Azure Communication Services Identity-összekötő bemenetéről, amely a felhasználó törlés műveletét mutatja.

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.