Rövid útmutató: Hozzáférési jogkivonatok létrehozása és kezelése
A hozzáférési jogkivonatokkal az Azure Communication Services SDK-k közvetlenül az Azure Communication Servicesen keresztül hitelesíthetők egy adott identitásként. Hozzáférési jogkivonatokat kell létrehoznia, ha azt szeretné, hogy a felhasználók csatlakozzanak egy híváshoz vagy csevegési szálhoz az alkalmazásban.
Ebben a rövid útmutatóban megtudhatja, 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.
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.
Beállítás
A bővítmény hozzáadása
Adja hozzá az Azure CLI Azure Communication Services-bővítményét a az extension
parancs használatával.
az extension add --name communication
Bejelentkezés az Azure CLI-be
Be kell jelentkeznie az Azure CLI-be. Bejelentkezhet a az login
parancs terminálról való futtatásával, és megadhatja a hitelesítő adatait.
(Nem kötelező) Azure CLI-identitásműveletek használata kapcsolati sztring átadása nélkül
A környezeti változót AZURE_COMMUNICATION_CONNECTION_STRING
úgy konfigurálhatja, hogy az Azure CLI-identitásműveleteket használja anélkül, hogy --connection_string
a kapcsolati sztring kellene átadnia. 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 sztring.
Nyisson meg egy konzolablakot, és írja be a következő parancsot:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Miután hozzáadta a környezeti változót, előfordulhat, hogy újra kell indítania minden futó programot, amelynek szüksége lehet a környezeti változó beolvasására, 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 jogkivonatra.
Nyisson meg egy konzolablakot, és írja be a következő parancsot:
setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"
Miután hozzáadta a környezeti változót, előfordulhat, hogy újra kell indítania minden futó programot, amelynek szüksége lehet a környezeti változó beolvasására, 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. user create
A paranccsal hozzon létre egy új bejegyzést a könyvtárban egy egyedi Id
paranccsal. 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
<yourConnectionString>
a kapcsolati sztring.
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
<yourConnectionString>
a kapcsolati sztring.
Hozzáférési jogkivonat kiállítása
Futtassa a következő parancsot egy hozzáférési jogkivonat kiadásához 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 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
<yourConnectionString>
a kapcsolati sztring. - Cserélje le
<userId>
a userId azonosítót.
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
<yourConnectionString>
a kapcsolati sztring. - Cserélje le
<userId>
a userId azonosítót.
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
<yourConnectionString>
a kapcsolati sztring. - Cserélje le
<yourAadUser>
a Microsoft Entra userId azonosítóját. - Cserélje le
<yourAadApplication>
a Microsoft Entra alkalmazásazonosítóját. - Cserélje le
<yourAadToken>
a Microsoft Entra hozzáférési jogkivonatára.
Hozzáférési jogkivonatok visszavonása
Előfordulhat, hogy időnként 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
<yourConnectionString>
a kapcsolati sztring. - Cserélje le
<userId>
a userId azonosítót.
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
<yourConnectionString>
a kapcsolati sztring. - Cserélje le
<userId>
a userId azonosítót.
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 gitHubon a rövid útmutató véglegesített kódját.
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évvel AccessTokensQuickstart
ellátott konzolalkalmazás létrehozásához. Ez a parancs létrehoz egy egyszerű ""Helló világ!" alkalmazás" C#-projektet 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ű ""Helló világ!" alkalmazás" kimenetnek kell megjelennie. Ha igen, a beállítás megfelelően működik, és megkezdheti az Azure Communication Services-specifikus 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 tegye a következőket:
- 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. - Frissítse a metódusdeklarációt az
Main
aszinkron kód támogatásához.
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álás CommunicationIdentityClient
a kapcsolati sztring. Az alábbi kód, amelyet hozzáad a Main
metódushoz, lekéri az erőforrás kapcsolati sztring egy nevesített COMMUNICATION_SERVICES_CONNECTION_STRING
környezeti változóból.
További információkért tekintse meg a Communication Services-erőforrások létrehozása és kezelése című szakasz "Az kapcsolati sztring tárolása" című szakaszát.
// 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-azonosító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. Az identitásra később szükség lesz a 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ó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
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
is egy 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
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 ajánlott megadni a kommunikációs munkamenet várható tipikus 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 jogkivonat kiállítása ugyanabban a kérelemben
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);
Hozzáférési jogkivonat frissítése
Hozzáférési jogkivonat frissítéséhez adja át az objektum egy példányát.CommunicationUserIdentifier
GetTokenAsync
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 időnként 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 RevokeTokensAsync
metódus érvényteleníti az identitás számára kibocsátott összes aktív hozzáférési jogkivonatot.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.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.
await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");
A kód futtatása
Ha 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 gitHubon a rövid útmutató véglegesített kódját.
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
az alapértelmezett beállításokkal rendelkező package.json 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ítás CommunicationIdentityClient
a kapcsolati sztring. Az alábbi kód, amelyet hozzáad a Main
metódushoz, lekéri az erőforrás kapcsolati sztring egy nevesített COMMUNICATION_SERVICES_CONNECTION_STRING
környezeti változóból.
További információkért tekintse meg a Communication Services-erőforrások létrehozása és kezelése című szakasz "Az kapcsolati sztring tárolása" című szakaszát.
// 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-azonosító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. Az identitásra később szükség lesz a hozzáférési jogkivonatok kiállításához.
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).
Hozzáférési jogkivonat kiállítása
Ezzel a getToken
módszerrel hozzáférési jogkivonatot 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 példányt is az communicationUser
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
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 ajánlott megadni a kommunikációs munkamenet várható tipikus 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 jogkivonat kiállítása egy metódushí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. Ismét a hatókörrel voip
hozza létre.
// 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);
Hozzáférési jogkivonat frissítése
A jogkivonatok lejáratakor rendszeresen frissítenie kell őket. A frissítés egyszerű, egyszerűen hívjon getToken
újra ugyanazzal az identitással, amelyet a jogkivonatok kiállításához használtak. Meg kell adnia a scopes
frissített jogkivonatokat 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 időnként 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 identitás számára kibocsátott összes aktív hozzáférési jogkivonatot.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
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.
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 gitHubon a rövid útmutató véglegesített kódját.
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
Egy szövegszerkesztővel hozzon létre egy issue-access-tokens.py nevű fájlt a projekt gyökérkönyvtárában, és adja hozzá a program struktúráját, beleértve az alapvető kivételkezelést is. A rövid útmutató összes forráskódját hozzáadja ehhez a fájlhoz az alábbi szakaszokban.
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
Amíg még az alkalmazáskönyvtárban van, telepítse az Azure Communication Services Identity SDK for Python-csomagot a pip install
parancs használatával.
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 sztring egy nevesített COMMUNICATION_SERVICES_CONNECTION_STRING
környezeti változóból.
További információkért tekintse meg a Communication Services-erőforrások létrehozása és kezelése című szakasz "Az kapcsolati sztring tárolása" című szakaszát.
# 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. Az identitásra később szükség lesz a hozzáférési jogkivonatok kiállításához.
identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])
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 get_token
módszerrel hozzáférési jogkivonatot 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 ajánlott megadni a kommunikációs munkamenet várható tipikus 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 időnként 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 revoke_tokens
metódus érvényteleníti az identitás számára kibocsátott összes aktív hozzáférési jogkivonatot.
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 issue-access-tokens.py fájlt tartalmazó könyvtárra, majd futtassa a következő python
parancsot az alkalmazás futtatásához.
python ./issue-access-tokens.py
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.
- 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 gitHubon a rövid útmutató véglegesített kódját.
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
Megfigyelheti, hogy a generate
feladat létrehoz egy, a nevével megegyező nevű artifactId
könyvtárat. Ebben a könyvtárban az src/main/java könyvtár tartalmazza a projekt forráskódját, az 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 fog használni.
Az alkalmazás-keretrendszer beállítása
A projektkönyvtárban tegye a következőket:
- 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 utasítást
System.out.println("Hello world!");
. - Irányelvek hozzáadása
import
.
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ítás az CommunicationIdentityClient
erőforrás hozzáférési kulcsával és végpontjával. További információkért tekintse meg a Communication Services-erőforrások létrehozása és kezelése című szakasz "Az kapcsolati sztring tárolása" című szakaszát.
Emellett inicializálhatja az ügyfelet bármely egyéni HTTP-ügyféllel, amely megvalósítja 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-azonosító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 lesz 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 jogkivonatot 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 ajánlott megadni a kommunikációs munkamenet várható tipikus 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 időnként 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 pom.xml fájlt tartalmazó könyvtárat, majd fordítsa le a projektet a következő mvn
paranccsal:
mvn compile
Ezután 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
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.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 Portalon lépjen az Identityes &a User Access Tokens panelre a Communication Services-erőforrásban.
Válassza ki a hozzáférési jogkivonatok hatókörét. A nincs, egy vagy több lehetőséget is választhatja. Kattintson a Létrehozás lehetőségre.
Megjelenik egy identitás és a megfelelő felhasználói hozzáférési jogkivonat. Ezeket a sztringeket másolhatja, és használhatja őket a mintaalkalmazásokban és más tesztelési forgatókönyvekben.
Előfeltételek
Aktív előfizetéssel rendelkező Azure-fiók, vagy ingyenes Azure-fiók létrehozása.
Egy aktív Azure Communication Services-erőforrás, vagy hozzon létre egy Communication Services-erőforrást.
Aktív Azure Logic Apps-erőforrás (logikai alkalmazás), vagy hozzon létre egy használatalapú logikai alkalmazás munkafolyamatot a használni kívánt eseményindítóval. 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. Kövesse ezeket a lépéseket a Power Automate-ben szerkesztési módban megnyitott Power Automate-folyamattal.
A tervezőn a lépés alatt, ahol 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 vigye az egérmutatót a lépések közötti nyíl fölé, 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-identitást. A műveletek listájában válassza a Felhasználó létrehozása lehetőséget.
Adja meg a Csatlakozás ion sztringet. Ez megtalálható a Microsoft Azure-ban, az Azure Communication Service-erőforrásban, a Kulcsok lehetőségnél a bal oldali menüben > Csatlakozás ion String
Adja meg a Csatlakozás ion nevét
Kattintson a Létrehozás gombra
Ez a művelet egy felhasználói azonosítót ad ki, 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 kiválasztja a jogkivonat hatókörét, a művelet egy hozzáférési jogkivonatot és annak lejárati idejét is megjeleníti a megadott hatókörrel.
Felhasználói hozzáférési jogkivonat kiállítása
Miután rendelkezik Communication Services-identitással, a Felhasználói hozzáférési jogkivonat kiállítása művelet használatával kibocsáthat egy hozzáférési jogkivonatot. Az alábbi lépések bemutatják, hogyan:
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.
Ezután használhatja az előző Felhasználói létrehozás lépés felhasználói azonosító kimenetét.
Adja meg a jogkivonat hatókörét: VoIP vagy csevegés. További információ a jogkivonatokról és a hitelesítésről.
Ez egy hozzáférési jogkivonatot és annak lejárati idejét adja ki 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. Az alábbi lépések bemutatják, hogyan:
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
Ez visszavonja a megadott felhasználó összes felhasználói hozzáférési jogkivonatát, és nincs kimenet a művelethez.
Felhasználó törlése
Miután rendelkezik Communication Services-identitással, a Felhasználói hozzáférési jogkivonat kiállítása művelet használatával törölheti a hozzáférési jogkivonatot. Az alábbi lépések bemutatják, hogyan:
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
Ezzel eltávolítja a felhasználót, és visszavonja a megadott felhasználó összes felhasználói hozzáférési jogkivonatát. Ehhez a művelethez nincsenek kimenetek.
A logikai alkalmazás tesztelése
A munkafolyamat manuális elindításához a tervező eszköztárán válassza a Futtatás lehetőséget. A munkafolyamatnak létre kell hoznia egy felhasználót, ki kell adnia egy hozzáférési jogkivonatot a felhasználónak, majd el kell távolítania, és törölnie kell a felhasználót. További információkért tekintse át 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 úgy, hogy egy adott Azure Communication Services-identitást (vagy identitást) egyetlen felhasználóhoz rendeljen.
További információ a hitelesítési fogalmakról, a diagnosztikáról a log analyticsen keresztül, valamint az Ön számára elérhető metrikákról.
Az erőforrások eltávolí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ókért lásd a Communication Services-erőforrások létrehozása és kezelése című szakasz "Erőforrások törlése" című szakaszát.
A logikai alkalmazás munkafolyamatának és a kapcsolódó erőforrások törléséhez tekintse át az Azure Logic Apps-erőforrások törlésének módját.
Következő lépések
Ennek a rövid útmutatónak a segítségével megtanulta a következőket:
- Hozzáférési jogkivonatok kiállítása
- Identitások kezelése
A következőket is érdemes lehet elvégeznie:
Következő lépések
Ebben a rövid útmutatóban megtanulta, hogyan hozhat létre egy felhasználót, törölheti a felhasználót, hogyan adhat ki hozzáférési jogkivonatot a felhasználónak, és hogyan távolíthatja el a felhasználói hozzáférési jogkivonatot az Azure Communication Services Identity-összekötő használatával. További információért tekintse meg az Azure Communication Services Identity Csatlakozás or dokumentációját.
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.