Mulai cepat: Membuat dan mengelola token akses

Token akses memungkinkan SDK Azure Communication Services mengautentikasi langsung terhadap Azure Communication Services sebagai identitas tertentu. Anda harus membuat token akses jika ingin pengguna bergabung dengan utas panggilan atau obrolan dalam aplikasi Anda.

Dalam mulai cepat ini, Anda akan mempelajari cara menggunakan SDK Azure Communication Services untuk membuat identitas dan mengelola token akses Anda. Untuk kasus penggunaan produksi, kami sarankan Anda menghasilkan token akses pada layanan sisi server.

Prasyarat

Menyiapkan

Menambahkan ekstensi

Tambahkan ekstensi Azure Communication Services untuk Azure CLI dengan menggunakan az extension perintah .

az extension add --name communication

Masuk ke Azure CLI

Anda harus masuk ke Azure CLI. Anda dapat masuk menjalankan az login perintah dari terminal dan memberikan kredensial Anda.

(Opsional) Menggunakan operasi identitas Azure CLI tanpa meneruskan string koneksi

Anda dapat mengonfigurasi AZURE_COMMUNICATION_CONNECTION_STRING variabel lingkungan untuk menggunakan operasi identitas Azure CLI tanpa harus menggunakan --connection_string untuk meneruskan string koneksi. Untuk mengonfigurasi variabel lingkungan, buka jendela konsol dan pilih sistem operasi Anda dari tab di bawah ini. Ganti <yourConnectionString> dengan string koneksi aktual Anda.

Buka jendela konsol dan masukkan perintah berikut:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

Setelah Anda menambahkan variabel lingkungan, Anda mungkin perlu menghidupkan ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, mulai ulang Visual Studio sebelum menjalankan contoh.

Menyimpan token akses Anda dalam variabel lingkungan

Untuk mengonfigurasi variabel lingkungan, buka jendela konsol dan pilih sistem operasi Anda dari tab di bawah ini. Ganti <yourAccessToken> dengan token akses Anda yang sebenarnya.

Buka jendela konsol dan masukkan perintah berikut:

setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"

Setelah Anda menambahkan variabel lingkungan, Anda mungkin perlu menghidupkan ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor, mulai ulang Visual Studio sebelum menjalankan contoh.

Operasional

Buat Identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. user create Gunakan perintah untuk membuat entri baru di direktori dengan yang unikId. Identitas diperlukan nanti untuk mengeluarkan token akses.

az communication identity user create --connection-string "<yourConnectionString>"
  • Ganti <yourConnectionString> dengan string koneksi Anda.

Membuat identitas dan mengeluarkan token akses dalam permintaan yang sama

Jalankan perintah berikut untuk membuat identitas Communication Services dan mengeluarkan token akses untuknya secara bersamaan. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services.

az communication identity token issue --scope chat --connection-string "<yourConnectionString>"

Buat penggantian ini dalam kode:

  • Ganti <yourConnectionString> dengan string koneksi Anda.

Mengeluarkan token akses

Jalankan perintah berikut untuk mengeluarkan token akses untuk identitas Communication Services Anda. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services.

az communication identity token issue --scope chat --user "<userId>" --connection-string "<yourConnectionString>"

Buat penggantian ini dalam kode:

  • Ganti <yourConnectionString> dengan string koneksi Anda.
  • Ganti <userId> dengan userId Anda.

Token akses adalah kredensial berumur pendek yang perlu diterbitkan kembali. Tidak melakukannya dapat menyebabkan gangguan pengalaman pengguna aplikasi Anda. expires_onProperti respons menunjukkan masa pakai token akses.

Menerbitkan token akses dengan beberapa cakupan

Jalankan perintah berikut untuk mengeluarkan token akses dengan beberapa cakupan untuk identitas Communication Services Anda. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung dalam Model identitas.

az communication identity token issue --scope chat voip --user "<userId>" --connection-string "<yourConnectionString>"

Buat penggantian ini dalam kode:

  • Ganti <yourConnectionString> dengan string koneksi Anda.
  • Ganti <userId> dengan userId Anda.

Token akses adalah kredensial berumur pendek yang perlu diterbitkan kembali. Tidak melakukannya dapat menyebabkan gangguan pengalaman pengguna aplikasi Anda. expires_onProperti respons menunjukkan masa pakai token akses.

Menukar token akses Microsoft Entra pengguna Teams untuk token akses Identitas Komunikasi

token get-for-teams-user Gunakan perintah untuk mengeluarkan token akses untuk pengguna Teams yang dapat digunakan dengan SDK Azure Communication Services.

az communication identity token get-for-teams-user --aad-token "<yourAadToken>" --client "<yourAadApplication>" --aad-user "<yourAadUser>" --connection-string "<yourConnectionString>"

Buat penggantian ini dalam kode:

  • Ganti <yourConnectionString> dengan string koneksi Anda.
  • Ganti <yourAadUser> dengan userId Microsoft Entra Anda.
  • Ganti <yourAadApplication> dengan Id aplikasi Microsoft Entra Anda.
  • Ganti <yourAadToken> dengan token akses Microsoft Entra Anda.

Mencabut akses ke kunci

Terkadang Anda mungkin perlu mencabut token akses secara eksplisit. Misalnya, Anda akan melakukannya ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Perintah membatalkan token revoke semua token akses aktif yang dikeluarkan untuk identitas.

az communication identity token revoke --user "<userId>" --connection-string "<yourConnectionString>"

Buat penggantian ini dalam kode:

  • Ganti <yourConnectionString> dengan string koneksi Anda.
  • Ganti <userId> dengan userId Anda.

Menghapus sebuah Identitas

Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Melakukannya juga menghapus semua konten yang bertahan yang terkait dengan identitas.

az communication identity user delete --user "<userId>" --connection-string "<yourConnectionString>"

Buat penggantian ini dalam kode:

  • Ganti <yourConnectionString> dengan string koneksi Anda.
  • Ganti <userId> dengan userId Anda.

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Membuat aplikasi C# baru

Di jendela Prompt Perintah, seperti cmd, PowerShell, atau Bash, jalankan dotnet new perintah untuk membuat aplikasi konsol baru dengan nama AccessTokensQuickstart. Perintah ini membuat proyek C# "Halo Dunia" sederhana dengan file sumber tunggal, Program.cs.

dotnet new console -o AccessTokensQuickstart

Ubah direktori Anda ke folder aplikasi yang baru dibuat dan gunakan perintah dotnet build untuk mengompilasi aplikasi Anda.

cd AccessTokensQuickstart
dotnet build

Output "Halo Dunia" sederhana harus ditampilkan. Jika ya, penyiapan Anda berfungsi dengan benar, dan Anda bisa mulai menulis kode khusus Azure Communication Services Anda.

Pasang paket

Ketika masih dalam direktori aplikasi, pasang pustaka klien Identitas Communication Services untuk paket .NET dengan menggunakan perintah dotnet add package.

dotnet add package Azure.Communication.Identity

Menyiapkan kerangka kerja aplikasi

Di direktori proyek, lakukan hal berikut:

  1. Di editor teks, buka file Program.cs.
  2. Tambahkan direktif using untuk menyertakan Azure.Communication.Identity namespace layanan.
  3. Perbarui deklarasi metode Main untuk mendukung kode asinkron.

Untuk memulai, jalankan kode berikut:

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
        }
    }
}

Mengautentikasi klien

Inisialisasi CommunicationIdentityClient dengan string koneksi Anda. Kode berikut, yang Anda tambahkan ke Main metode , mengambil string koneksi untuk sumber daya dari variabel lingkungan bernama COMMUNICATION_SERVICES_CONNECTION_STRING.

Untuk informasi selengkapnya, lihat bagian "Simpan string koneksi Anda" di Membuat dan mengelola sumber daya Communication Services.

// 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);

Atau, Anda dapat memisahkan titik akhir dan kunci akses dengan menjalankan kode berikut:

// 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));

Jika Anda sudah menyiapkan aplikasi Microsoft Entra, Anda dapat mengautentikasi dengan menggunakan ID Microsoft Entra.

TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CommunicationIdentityClient(new Uri(endpoint), tokenCredential);

Buat Identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan createUser metode untuk membuat entri baru di direktori dengan unik Id. Identitas diperlukan nanti untuk mengeluarkan token akses.

var identityResponse = await client.CreateUserAsync();
var identity = identityResponse.Value;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");

Simpan identitas yang diterima dengan pemetaan ke pengguna aplikasi Anda (misalnya, dengan menyimpannya di database server aplikasi Anda).

Menerbitkan token akses

Setelah Anda memiliki identitas Communication Services, gunakan GetToken metode untuk mengeluarkan token akses untuk itu. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung dalam Model identitas. Anda juga dapat membuat instans communicationUser baru berdasarkan representasi string identitas Azure Communication Service.

// 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);

Token akses adalah kredensial berumur pendek yang perlu diterbitkan kembali. Tidak melakukannya dapat menyebabkan gangguan pengalaman pengguna aplikasi Anda. Properti expiresOn menunjukkan masa pakai token akses.

Mengatur waktu kedaluwarsa token kustom

Waktu kedaluwarsa token default adalah 24 jam, tetapi Anda dapat mengonfigurasinya dengan memberikan nilai antara satu jam dan 24 jam ke parameter tokenExpiresInopsional . Saat meminta token baru, disarankan agar Anda menentukan panjang umum sesi komunikasi yang diharapkan untuk waktu kedaluwarsa token.

// Issue an access token with a validity of an hour and the "voip" scope for an identity 
TimeSpan tokenExpiresIn = TimeSpan.FromHours(1);
CommunicationTokenScope[] scopes = new[] { CommunicationTokenScope.VoIP };
var tokenResponse = await client.GetTokenAsync(identity, scopes, tokenExpiresIn);

Membuat identitas dan mengeluarkan token dalam permintaan yang sama

Anda dapat menggunakan CreateUserAndTokenAsync metode untuk membuat identitas Communication Services dan mengeluarkan token akses untuknya secara bersamaan. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services.

// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
var identityAndTokenResponse = await client.CreateUserAndTokenAsync(scopes: new[] { CommunicationTokenScope.VoIP });

// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);

Merefresh token akses

Untuk memperbarui token akses, masukkan instans objek CommunicationUserIdentifier ke dalam GetTokenAsync. Jika Anda telah menyimpan ini Id dan perlu membuat CommunicationUserIdentifier yang baru, Anda dapat melakukannya dengan memasukkan Id yang telah disimpan ke dalam konstruktor CommunicationUserIdentifier sebagai berikut:

var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });

Mencabut akses ke kunci

Terkadang Anda mungkin perlu mencabut token akses secara eksplisit. Misalnya, Anda akan melakukannya ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode ini RevokeTokensAsync membatalkan semua token akses aktif yang dikeluarkan untuk identitas.

await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");

Menghapus sebuah Identitas

Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Melakukannya juga menghapus semua konten yang bertahan yang terkait dengan identitas.

await client.DeleteUserAsync(identity);
Console.WriteLine($"\nDeleted the identity with ID: {identity.Id}");

Menjalankan kode

Setelah selesai membuat token akses, Anda dapat menjalankan aplikasi dari direktori aplikasi dengan menggunakan dotnet run perintah .

dotnet run

Output aplikasi menjelaskan setiap tindakan yang diselesaikan:

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

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Membuat aplikasi Node.js baru

Di terminal atau jendela Prompt Perintah, buat direktori baru untuk aplikasi Anda, lalu buka.

mkdir access-tokens-quickstart && cd access-tokens-quickstart

Jalankan npm init -y untuk membuat file package.json dengan pengaturan default.

npm init -y

Pasang paket

Gunakan perintah npm install untuk menginstal Azure Communication Services Identity SDK untuk JavaScript.

npm install @azure/communication-identity@latest --save

Opsi --save mencantumkan pustaka sebagai dependensi di file package.json Anda.

Menyiapkan kerangka kerja aplikasi

  1. Buat file bernama issue-access-token.js di direktori proyek dan tambahkan kode berikut:

    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);
    })
    

Mengautentikasi klien

Buat instans CommunicationIdentityClient dengan string koneksi Anda. Kode berikut, yang Anda tambahkan ke Main metode , mengambil string koneksi untuk sumber daya dari variabel lingkungan bernama COMMUNICATION_SERVICES_CONNECTION_STRING.

Untuk informasi selengkapnya, lihat bagian "Simpan string koneksi Anda" di Membuat dan mengelola sumber daya Communication Services.

// 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);

Atau, Anda dapat memisahkan titik akhir dan kunci akses dengan menjalankan kode berikut:

// 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)

Jika Anda sudah menyiapkan aplikasi Microsoft Entra, Anda dapat mengautentikasi dengan menggunakan ID Microsoft Entra.

const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const tokenCredential = new DefaultAzureCredential();
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential);

Buat Identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan createUser metode untuk membuat entri baru di direktori dengan unik Id. Identitas diperlukan nanti untuk mengeluarkan token akses.

let identityResponse = await identityClient.createUser();
console.log(`\nCreated an identity with ID: ${identityResponse.communicationUserId}`);

Simpan identitas yang diterima dengan pemetaan ke pengguna aplikasi Anda (misalnya, dengan menyimpannya di database server aplikasi Anda).

Menerbitkan token akses

getToken Gunakan metode untuk mengeluarkan token akses untuk identitas Communication Services Anda. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung dalam Model identitas. Anda juga dapat membuat instans communicationUser baru berdasarkan representasi string identitas Azure Communication Service.

// 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);

Token akses adalah kredensial berumur pendek yang perlu diterbitkan kembali. Tidak melakukannya dapat menyebabkan gangguan pengalaman pengguna aplikasi Anda. Properti expiresOn menunjukkan masa pakai token akses.

Mengatur waktu kedaluwarsa token kustom

Waktu kedaluwarsa token default adalah 24 jam (1440 menit), tetapi Anda dapat mengonfigurasinya dengan memberikan nilai antara 60 menit dan 1440 menit ke parameter tokenExpiresInMinutesopsional . Saat meminta token baru, disarankan agar Anda menentukan panjang umum sesi komunikasi yang diharapkan untuk waktu kedaluwarsa token.

// Issue an access token with a validity of an hour and the "voip" scope for an identity
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let tokenResponse = await identityClient.getToken
(identityResponse, ["voip"], tokenOptions);

Membuat identitas dan mengeluarkan token dalam satu panggilan metode

Anda dapat menggunakan createUserAndToken metode untuk membuat identitas Communication Services dan mengeluarkan token akses untuknya secara bersamaan. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Sekali lagi, Anda membuatnya dengan voip cakupan.

// 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);

Merefresh token akses

Saat token kedaluwarsa, Anda harus merefreshnya secara berkala. Refresh mudah hanya panggilan getToken lagi dengan identitas yang sama yang digunakan untuk mengeluarkan token. Anda juga harus menyediakan scopes token yang disegarkan.

// 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"]);

Mencabut akses ke kunci

Terkadang Anda mungkin perlu mencabut token akses. Misalnya, Anda akan melakukannya ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode ini revokeTokens membatalkan semua token akses aktif yang dikeluarkan untuk identitas.

await identityClient.revokeTokens(identityResponse);

console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);

Menghapus sebuah Identitas

Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Melakukannya juga menghapus semua konten yang bertahan yang terkait dengan identitas.

await identityClient.deleteUser(identityResponse);

console.log(`\nDeleted the identity with ID: ${identityResponse.communicationUserId}`);

Menjalankan kode

Dari prompt konsol, buka direktori yang berisi file issue-access-token.js , lalu jalankan perintah berikut node untuk menjalankan aplikasi:

node ./issue-access-token.js

Output aplikasi menjelaskan setiap tindakan yang diselesaikan:

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

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Membuat aplikasi Python baru

  1. Di terminal atau jendela Prompt Perintah, buat direktori baru untuk aplikasi Anda, lalu buka.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Gunakan editor teks untuk membuat file yang disebut issue-access-tokens.py di direktori root proyek dan tambahkan struktur untuk program, termasuk penanganan pengecualian dasar. Anda akan menambahkan semua kode sumber untuk mulai cepat ini ke file ini di bagian berikut.

    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)
    

Pasang paket

Saat Anda masih berada di direktori aplikasi, instal azure Communication Services Identity SDK untuk paket Python dengan menggunakan pip install perintah .

pip install azure-communication-identity

Mengautentikasi klien

Buat instans CommunicationIdentityClient dengan string koneksi Anda. Kode berikut, yang Anda tambahkan ke try blok, mengambil string koneksi untuk sumber daya dari variabel lingkungan bernama COMMUNICATION_SERVICES_CONNECTION_STRING.

Untuk informasi selengkapnya, lihat bagian "Simpan string koneksi Anda" di Membuat dan mengelola sumber daya Communication Services.

# 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)

Atau, jika Anda sudah menyiapkan aplikasi Microsoft Entra, Anda dapat mengautentikasi dengan menggunakan ID Microsoft Entra.

endpoint = os.environ["COMMUNICATION_SERVICES_ENDPOINT"]
client = CommunicationIdentityClient(endpoint, DefaultAzureCredential())

Buat Identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan create_user metode untuk membuat entri baru di direktori dengan unik Id. Identitas diperlukan nanti untuk mengeluarkan token akses.

identity = client.create_user()
print("\nCreated an identity with ID: " + identity.properties['id'])

Simpan identitas yang diterima dengan pemetaan ke pengguna aplikasi Anda (misalnya, dengan menyimpannya di database server aplikasi Anda).

Menerbitkan token akses

get_token Gunakan metode untuk mengeluarkan token akses untuk identitas Communication Services Anda. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung dalam Model identitas. Anda juga dapat membuat instans parameter CommunicationUserIdentifier baru berdasarkan representasi string identitas Azure Communication Service.

# 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)

Token akses adalah kredensial berumur pendek yang perlu diterbitkan kembali. Tidak melakukannya dapat menyebabkan gangguan pengalaman pengguna aplikasi Anda. expires_onProperti respons menunjukkan masa pakai token akses.

Mengatur waktu kedaluwarsa token kustom

Waktu kedaluwarsa token default adalah 24 jam, tetapi Anda dapat mengonfigurasinya dengan memberikan nilai antara satu jam dan 24 jam ke parameter token_expires_inopsional . Saat meminta token baru, disarankan agar Anda menentukan panjang umum sesi komunikasi yang diharapkan untuk waktu kedaluwarsa token.

# Issue an access token with a validity of an hour and the "voip" scope for an identity
token_expires_in = timedelta(hours=1)
token_result = client.get_token(identity, ["voip"], token_expires_in=token_expires_in)

Membuat identitas dan mengeluarkan token akses dalam permintaan yang sama

Anda dapat menggunakan create_user_and_token metode untuk membuat identitas Communication Services dan mengeluarkan token akses untuknya secara bersamaan. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services.

# Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
identity_token_result = client.create_user_and_token(["voip"])

# Get the token details from the response
identity = identity_token_result[0]
token = identity_token_result[1].token
expires_on = identity_token_result[1].expires_on
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)

Merefresh token akses

Untuk merefresh token akses, gunakan CommunicationUserIdentifier objek untuk menerbitkan ulang token dengan meneruskan identitas yang ada:

# The existingIdentity value represents the Communication Services identity that's stored during identity creation
identity = CommunicationUserIdentifier(existingIdentity)
token_result = client.get_token(identity, ["voip"])

Mencabut akses ke kunci

Terkadang Anda mungkin perlu mencabut token akses secara eksplisit. Misalnya, Anda akan melakukannya ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode ini revoke_tokens membatalkan semua token akses aktif yang dikeluarkan untuk identitas.

client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])

Menghapus sebuah Identitas

Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Melakukannya juga menghapus semua konten yang bertahan yang terkait dengan identitas.

client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])

Menjalankan kode

Dari perintah konsol, buka direktori yang berisi file issue-access-tokens.py , lalu jalankan perintah berikut python untuk menjalankan aplikasi.

python ./issue-access-tokens.py

Output aplikasi menjelaskan setiap tindakan yang diselesaikan:

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

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Membuat aplikasi Java baru

Di terminal atau jendela Prompt Perintah, buka direktori tempat Anda ingin membuat aplikasi Java. Untuk menghasilkan proyek Java dari templat maven-archetype-quickstart, jalankan kode berikut:

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Anda akan melihat bahwa generate tugas membuat direktori dengan nama yang sama dengan artifactId. Di bawah direktori ini, src/main/java direktori berisi kode sumber proyek, src/test/java direktoriberisi sumber pengujian, dan pom.xml file adalah Model Objek Proyek, atau POM. File ini digunakan untuk parameter konfigurasi proyek.

Menginstal paket Communication Services

Buka file pom.xml di editor teks Anda. Tambahkan elemen dependensi berikut ke grup dependensi:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
    <version>[1.4.0,)</version>
</dependency>

Kode ini menginstruksikan Maven untuk menginstal Communication Services Identity SDK, yang akan Anda gunakan nanti.

Menyiapkan kerangka kerja aplikasi

Di direktori proyek, lakukan hal berikut:

  1. Buka direktori /src/main/java/com/communication/quickstart.
  2. Buka file App.java di editor Anda.
  3. System.out.println("Hello world!"); Ganti pernyataan.
  4. Tambahkan instruksi import.

Tambahkan kode berikut ke memulai:

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
    }
}

Mengautentikasi klien

Buat instans pada CommunicationIdentityClient dengan kunci akses dan titik akhir sumber daya Anda. Untuk informasi selengkapnya, lihat bagian "Simpan string koneksi Anda" di Membuat dan mengelola sumber daya Communication Services.

Selain itu, Anda dapat menginisialisasi klien dengan klien HTTP kustom apa pun yang mengimplementasikan com.azure.core.http.HttpClient antarmuka.

Dalam file App.java, tambahkan kode berikut ke main metode :

// 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();

Alih-alih menyediakan titik akhir dan kunci akses, Anda dapat menyediakan seluruh string koneksi dengan menggunakan metode .connectionString()

// 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();

Jika Anda sudah menyiapkan aplikasi Microsoft Entra, Anda dapat mengautentikasi dengan menggunakan ID Microsoft Entra.

String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
TokenCredential credential = new DefaultAzureCredentialBuilder().build();

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
        .endpoint(endpoint)
        .credential(credential)
        .buildClient();

Buat Identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan createUser metode untuk membuat entri baru di direktori dengan unik Id.

CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("\nCreated an identity with ID: " + user.getId());

Identitas yang dibuat diperlukan nanti untuk mengeluarkan token akses. Simpan identitas yang diterima dengan pemetaan ke pengguna aplikasi Anda (misalnya, dengan menyimpannya di database server aplikasi Anda).

Menerbitkan token akses

getToken Gunakan metode untuk mengeluarkan token akses untuk identitas Communication Services Anda. Parameter scopes mendefinisikan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung dalam Model identitas.

Dalam kode berikut, gunakan variabel pengguna yang Anda buat di langkah sebelumnya untuk mendapatkan token.

// Issue an access token with a validity of 24 hours and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes);
OffsetDateTime expiresAt = accessToken.getExpiresAt();
String token = accessToken.getToken();
System.out.println("\nIssued an access token with 'voip' scope that expires at: " + expiresAt + ": " + token);

Token akses adalah kredensial berumur pendek yang perlu diterbitkan kembali. Tidak melakukannya dapat menyebabkan gangguan pengalaman pengguna aplikasi Anda. Properti expiresAt menunjukkan masa pakai token akses.

Mengatur waktu kedaluwarsa token kustom

Waktu kedaluwarsa token default adalah 24 jam, tetapi Anda dapat mengonfigurasinya dengan memberikan nilai antara satu jam dan 24 jam ke parameter tokenExpiresInopsional . Saat meminta token baru, disarankan agar Anda menentukan panjang umum sesi komunikasi yang diharapkan untuk waktu kedaluwarsa token.

// Issue an access token with a validity of an hour and the "voip" scope for a user identity
List<CommunicationTokenScope> scopes = new ArrayList<>(Arrays.asList(CommunicationTokenScope.VOIP));
Duration tokenExpiresIn = Duration.ofHours(1);
AccessToken accessToken = communicationIdentityClient.getToken(user, scopes, tokenExpiresIn);

Membuat identitas dan mengeluarkan token dalam satu permintaan

Atau, Anda dapat menggunakan metode 'createUserAndToken' untuk membuat entri baru di direktori dengan token akses yang unik Id dan mengeluarkan token akses secara bersamaan.

//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);

Merefresh token akses

Untuk merefresh token akses, gunakan CommunicationUserIdentifier objek untuk memunculkannya kembali:

// existingIdentity represents the Communication Services identity that's stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);

Mencabut token akses

Terkadang Anda mungkin perlu mencabut token akses secara eksplisit. Misalnya, Anda akan melakukannya ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode ini revokeTokens membatalkan semua token akses aktif untuk pengguna tertentu. Dalam kode berikut, Anda dapat menggunakan pengguna yang dibuat sebelumnya.

communicationIdentityClient.revokeTokens(user);
System.out.println("\nSuccessfully revoked all access tokens for user identity with ID: " + user.getId());

Menghapus sebuah Identitas

Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Melakukannya juga menghapus semua konten yang bertahan yang terkait dengan identitas.

communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());

Menjalankan kode

Buka direktori yang berisi file pom.xml , lalu kompilasi proyek dengan menggunakan perintah berikut mvn :

mvn compile

Kemudian, buat paket:

mvn package

Jalankan perintah berikut mvn untuk menjalankan aplikasi:

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

Output aplikasi menjelaskan setiap tindakan yang diselesaikan:

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

Prasyarat

Membuat token akses

Di portal Microsoft Azure, navigasi ke bilah Identitas & Token Akses Pengguna dalam sumber daya Communication Services Anda.

Pilih cakupan token akses. Anda tidak dapat memilih tidak ada, satu, atau beberapa. Klik Buat.

Pilih cakupan identitas dan token akses.

Anda akan melihat identitas dan token akses pengguna terkait yang dihasilkan. Anda dapat menyalin string dan menggunakannya dalam aplikasi sampel dan skenario lainnya.

Identitas dan token akses dihasilkan dan menunjukkan tanggal kedaluwarsa.

Prasyarat

Buat pengguna

Tambahkan langkah baru dalam alur kerja Anda dengan menggunakan konektor Identitas Azure Communication Services, ikuti langkah-langkah ini di Power Automate dengan alur Power Automate Anda terbuka dalam mode edit.

  1. Di perancang, pilih Langkah baru di bawah langkah tempat Anda ingin menambahkan tindakan baru. Atau, untuk menambahkan tindakan baru di antara langkah-langkah, pindahkan penunjuk Anda ke panah di antara langkah-langkah tersebut, pilih tanda plus (+), dan pilih Tambahkan tindakan.

  2. Di kotak pencarian Pilih operasi, masukkan Identitas Communication Services. Dari daftar tindakan, pilih Buat pengguna.

    Cuplikan layar yang memperlihatkan konektor Identitas Azure Communication Services Membuat tindakan pengguna.

  3. Berikan String Koneksi ion. Ini dapat ditemukan di Microsoft Azure, dalam Sumber Daya Azure Communication Service Anda, pada opsi Kunci dari menu > kiri Koneksi ion String

    Cuplikan layar yang memperlihatkan halaman Kunci dalam Sumber Daya Azure Communication Services.

  4. Berikan Nama Koneksi ion

  5. Klik Buat

    Tindakan ini akan menghasilkan ID Pengguna, yang merupakan identitas pengguna Communication Services. Selain itu, jika Anda mengklik "Tampilkan opsi lanjutan" dan memilih Cakupan Token, tindakan juga akan menghasilkan token akses dan waktu kedaluwarsanya dengan cakupan yang ditentukan.

    Cuplikan layar yang memperlihatkan tindakan Buat pengguna konektor Azure Communication Services.

    Cuplikan layar yang memperlihatkan konektor Azure Communication Services Membuat opsi tingkat lanjut tindakan pengguna.

Menerbitkan token akses pengguna

Setelah Anda memiliki identitas Communication Services, Anda dapat menggunakan tindakan Terbitkan token akses pengguna untuk mengeluarkan token akses. Langkah-langkah berikut akan menunjukkan kepada Anda caranya:

  1. Tambahkan tindakan baru dan masukkan Identitas Communication Services di kotak pencarian. Dari daftar tindakan, pilih Terbitkan token akses pengguna.

    Cuplikan layar yang memperlihatkan tindakan Token akses Masalah konektor Identitas Azure Communication Services.

  2. Kemudian, Anda dapat menggunakan output ID Pengguna dari langkah Buat pengguna sebelumnya.

  3. Tentukan cakupan token: VoIP atau obrolan. Pelajari selengkapnya tentang token dan autentikasi.

    Cuplikan layar yang memperlihatkan tindakan Token akses Masalah konektor Identitas Azure Communication Services, menentukan cakupan token.

Ini akan menghasilkan token akses dan waktu kedaluwarsanya dengan cakupan yang ditentukan.

Mencabut token akses pengguna

Setelah Anda memiliki identitas Communication Services, Anda dapat menggunakan tindakan Terbitkan token akses pengguna untuk mencabut token akses. Langkah-langkah berikut akan menunjukkan kepada Anda caranya:

  1. Tambahkan tindakan baru dan masukkan Identitas Communication Services di kotak pencarian. Dari daftar tindakan, pilih Cabut token akses pengguna.

    Cuplikan layar yang memperlihatkan konektor Identitas Azure Communication Services Mencabut tindakan token akses.

  2. Tentukan ID Pengguna

    Cuplikan layar yang memperlihatkan konektor Identitas Azure Communication Services Mencabut input tindakan token akses.

Ini akan mencabut semua token akses pengguna untuk pengguna yang ditentukan, tidak ada output untuk tindakan ini.

Menghapus pengguna

Setelah Anda memiliki identitas Communication Services, Anda dapat menggunakan tindakan Terbitkan token akses pengguna untuk menghapus token akses . Langkah-langkah berikut akan menunjukkan kepada Anda caranya:

  1. Tambahkan tindakan baru dan masukkan Identitas Communication Services di kotak pencarian. Dari daftar tindakan, pilih Hapus pengguna.

    Cuplikan layar yang memperlihatkan tindakan Hapus konektor Identitas Azure Communication Services.

  2. Tentukan ID Pengguna

    Cuplikan layar yang memperlihatkan konektor Identitas Azure Communication Services Menghapus input tindakan pengguna.

    Ini akan menghapus pengguna dan mencabut semua token akses pengguna untuk pengguna yang ditentukan, tidak ada output untuk tindakan ini.

Menguji aplikasi logika Anda

Untuk memulai alur kerja Anda secara manual, pilih Jalankan di toolbar perancang. Alur kerja harus membuat pengguna, mengeluarkan token akses untuk pengguna tersebut, lalu menghapusnya dan menghapus pengguna. Untuk mengetahui informasi selengkapnya, tinjau cara menjalankan alur kerja Anda. Anda dapat memeriksa output tindakan ini setelah alur kerja berhasil berjalan.

Menggunakan identitas untuk pemantauan dan metrik

ID pengguna dimaksudkan untuk bertindak sebagai kunci utama untuk log dan metrik yang dikumpulkan melalui Azure Monitor. Untuk melihat semua panggilan pengguna, misalnya, Anda dapat menyiapkan autentikasi dengan cara yang memetakan identitas Azure Communication Services tertentu (atau identitas) ke satu pengguna.

Pelajari selengkapnya tentang konsep autentikasi, diagnostik panggilan melalui analitik log, dan metrik yang tersedia untuk Anda.

Membersihkan sumber daya

Untuk membersihkan dan menghapus langganan Communication Services, hapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya lain yang terkait dengannya. Untuk informasi selengkapnya, lihat bagian "Bersihkan sumber daya" dari Membuat dan mengelola sumber daya Communication Services.

Untuk membersihkan alur kerja aplikasi logika dan sumber daya terkait, tinjau cara membersihkan sumber daya Azure Logic Apps.

Langkah berikutnya

Dalam mulai cepat ini, Anda belajar cara:

  • Menerbitkan token akses
  • Mengelola identitas

Anda mungkin juga ingin:

Langkah berikutnya

Dalam mulai cepat ini, Anda mempelajari cara membuat pengguna, menghapus pengguna, mengeluarkan token akses kepada pengguna, dan menghapus token akses pengguna menggunakan konektor Identitas Azure Communication Services. Untuk mempelajari selengkapnya, periksa dokumentasi Azure Communication Services Identity Koneksi or.

Untuk melihat cara token digunakan oleh konektor lain, lihat cara mengirim pesan obrolan dari Power Automate menggunakan Azure Communication Services.

Untuk mempelajari selengkapnya tentang cara mengirim email menggunakan konektor Email Azure Communication Services, centang Kirim pesan email di Power Automate dengan Azure Communication Services.