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
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya Azure Communication Services.
- Instal Azure CLI.
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_on
Properti 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_on
Properti 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
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Versi .NET Core SDK terbaru untuk sistem operasi Anda.
- Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya Azure Communication Services.
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:
- Di editor teks, buka file Program.cs.
- Tambahkan direktif
using
untuk menyertakanAzure.Communication.Identity
namespace layanan. - 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 tokenExpiresIn
opsional . 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
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Node.js Active LTS dan versi Pemeliharaan LTS (disarankan versi 8.11.1 and 10.14.1).
- Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya Azure Communication Services.
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
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 tokenExpiresInMinutes
opsional . 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
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Python 3.8+.
- Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya Azure Communication Services.
Kode akhir
Menemukan kode final untuk mulai cepat ini di GitHub.
Menyiapkan lingkungan Anda
Membuat aplikasi Python baru
Di terminal atau jendela Prompt Perintah, buat direktori baru untuk aplikasi Anda, lalu buka.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
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_on
Properti 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_in
opsional . 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
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Java Development Kit (JDK) versi 8 atau yang lebih baru.
- Apache Maven.
- Sumber daya Communication Services aktif dan string koneksi. Buat sumber daya Azure Communication Services.
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:
- Buka direktori /src/main/java/com/communication/quickstart.
- Buka file App.java di editor Anda.
System.out.println("Hello world!");
Ganti pernyataan.- 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 tokenExpiresIn
opsional . 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.
Anda akan melihat identitas dan token akses pengguna terkait yang dihasilkan. Anda dapat menyalin string dan menggunakannya dalam aplikasi sampel dan skenario lainnya.
Prasyarat
Akun Azure dengan langganan aktif, atau buat akun secara gratis.
Sumber daya Azure Communication Services aktif, atau buat sumber daya Communication Services.
Sumber daya Azure Logic Apps aktif (aplikasi logika), atau buat alur kerja aplikasi logika Konsumsi dengan pemicu yang ingin Anda gunakan. Saat ini, konektor Identitas Azure Communication Services hanya menyediakan tindakan, sehingga aplikasi logika Anda memerlukan pemicu, minimal.
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.
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.
Di kotak pencarian Pilih operasi, masukkan Identitas Communication Services. Dari daftar tindakan, pilih Buat pengguna.
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
Berikan Nama Koneksi ion
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.
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:
Tambahkan tindakan baru dan masukkan Identitas Communication Services di kotak pencarian. Dari daftar tindakan, pilih Terbitkan token akses pengguna.
Kemudian, Anda dapat menggunakan output ID Pengguna dari langkah Buat pengguna sebelumnya.
Tentukan cakupan token: VoIP atau obrolan. Pelajari selengkapnya tentang token dan autentikasi.
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:
Tambahkan tindakan baru dan masukkan Identitas Communication Services di kotak pencarian. Dari daftar tindakan, pilih Cabut token akses pengguna.
Tentukan ID Pengguna
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:
Tambahkan tindakan baru dan masukkan Identitas Communication Services di kotak pencarian. Dari daftar tindakan, pilih Hapus pengguna.
Tentukan ID 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.