Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Token akses memungkinkan SDK Azure Communication Services untuk mengautentikasi secara langsung dengan Azure Communication Services sebagai identitas tertentu. Anda perlu membuat token akses untuk pengguna akhir jika Anda ingin mereka bergabung dengan utas panggilan atau obrolan dalam aplikasi Anda.
Artikel ini menjelaskan 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 seperti yang dijelaskan dalam arsitektur Klien dan server.
Prasyarat
- Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
- Sumber daya Layanan Komunikasi yang aktif dan string koneksi. Buat sumber daya Layanan Komunikasi.
- Instal Azure CLI.
Atur lingkungan Anda
Tambahkan ekstensi
Tambahkan ekstensi Azure Communication Services untuk Azure CLI menggunakan az extension
perintah .
az extension add --name communication
Masuk ke Azure CLI
Anda perlu masuk ke Azure CLI. Anda dapat masuk menjalankan az login
perintah dari terminal, lalu 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 berikut. Ganti <yourConnectionString>
dengan string koneksi aktual Anda.
Buka jendela konsol dan masukkan perintah berikut:
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Setelah menambahkan variabel lingkungan, Anda mungkin perlu memulai ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor Anda, restart 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 menambahkan variabel lingkungan, Anda mungkin perlu memulai ulang program yang sedang berjalan yang perlu membaca variabel lingkungan, termasuk jendela konsol. Misalnya, jika Anda menggunakan Visual Studio sebagai editor Anda, restart Visual Studio sebelum menjalankan contoh.
Operasi
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.
Terbitkan 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. Properti expires_on
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. Properti expires_on
respons menunjukkan masa pakai token akses.
Menukar token akses Microsoft Entra pengguna Teams dengan 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 token akses
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 token revoke
membatalkan 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 identitas
Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Menghapus semua konten tersimpan yang terkait dengan identitas juga dilakukan dengan cara ini.
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
- Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
- Versi .NET Core SDK terbaru untuk sistem operasi Anda.
- Sumber daya Layanan Komunikasi yang aktif dan string koneksi. Buat sumber daya Layanan Komunikasi.
Kode akhir
Temukan kode yang diselesaikan di GitHub.
Atur lingkungan Anda
Buat aplikasi C# baru
Di jendela prompt perintah, seperti cmd, PowerShell, atau Bash, jalankan
dotnet new
perintah untuk membuat aplikasi konsol baru dengan namaAccessTokensQuickstart
. Perintah ini membuat proyek Hello World C# sederhana dengan satu file sumber,Program.cs
.dotnet new console -o AccessTokensQuickstart
Ubah direktori Anda ke folder aplikasi yang baru dibuat, dan gunakan
dotnet build
perintah untuk mengkompilasi aplikasi Anda.cd AccessTokensQuickstart dotnet build
Output sederhana akan ditampilkan. Jika tampilannya benar, berarti pengaturan Anda berfungsi dan Anda dapat mulai menulis kode untuk Azure Communication Services.
Pasang paketnya
Saat Anda masih berada di direktori aplikasi, instal paket pustaka Identitas Azure Communication Services untuk .NET dengan perintah dotnet add package
.
dotnet add package Azure.Communication.Identity
Atur kerangka aplikasi
Di direktori proyek, selesaikan langkah-langkah berikut:
- Buka file
Program.cs
di editor teks. - Tambahkan direktif
using
untuk menyertakanAzure.Communication.Identity
namespace. - Untuk mendukung kode asinkron, perbarui
Main
deklarasi metode.
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 >, Menyimpan string koneksi Anda.
// 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.
createUser
Gunakan metode untuk membuat entri baru di direktori dengan yang unik Id
. Gunakan identitas 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).
(Pratinjau) Buat identitas dengan ID kustom yang terkait
Penting
Fitur ini tersedia dimulai dengan versi 1.4.0-beta1
SDK .
Nota
Fitur ini masih dalam mode pratinjau.
Anda dapat membuat identitas dengan customId
yang terkait untuk memetakan identitas pengguna aplikasi Anda dengan identitas Azure Communication Services. Jika Anda memanggil metode CreateUser
lagi dengan customId
yang sama, metode tersebut akan mengembalikan user.Id
yang sama. Ini menghilangkan kebutuhan untuk menyimpan pemetaan sendiri.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
Console.WriteLine($"\nCreated an identity with ID: {user.Id}");
(Pratinjau) Dapatkan detail identitas
Penting
Fitur ini tersedia dimulai dengan versi 1.4.0-beta1
SDK .
Nota
Fitur ini masih dalam mode pratinjau.
Anda dapat menggunakan GetUserDetail
metode untuk mengambil informasi tentang pengguna, termasuk customId
dan lastTokenIssuedAt
.
Response<CommunicationUserIdentifier> user = await client.CreateUserAsync(customId: "alice@contoso.com");
var userDetails = client.GetUserDetail(user);
Console.WriteLine($"User ID: {userDetails.Id}");
Console.WriteLine($"Custom ID: {userDetails.CustomId}");
Console.WriteLine($"Last token issued at: {userDetails.LastTokenIssuedAt}");
Menerbitkan token akses
Setelah Anda memiliki identitas Communication Services, gunakan metode GetToken
untuk menerbitkan 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, tentukan 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);
(Pratinjau) Membuat dan mengidentifikasi serta mengeluarkan token dalam permintaan yang sama dengan ID kustom
Penting
Fitur ini tersedia dimulai dengan versi 1.4.0-beta1
SDK .
Nota
Fitur ini masih dalam mode pratinjau.
Anda dapat meneruskan ID kustom Anda ke CreateUserAndTokenAsync
metode untuk membuat identitas dan mengeluarkan token akses dalam satu panggilan.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
Response<CommunicationUserIdentifierAndToken> identityAndTokenResponse = await client.CreateUserAndTokenAsync(customId: "bob@contoso.com", scopes: new[] { CommunicationTokenScope.VoIP });
// Retrieve the identity, token, and expiration date from the response
var identity = identityAndTokenResponse.User;
var token = identityAndTokenResponse.AccessToken.Token;
var expiresOn = identityAndTokenResponse.AccessToken.ExpiresOn;
Console.WriteLine($"\nCreated an identity with ID: {identity.Id}");
Console.WriteLine($"\nIssued an access token with 'voip' scope that expires at {expiresOn}:");
Console.WriteLine(token);
Segarkan token akses
Untuk memperbarui token akses, teruskan instans objek CommunicationUserIdentifier
ke dalam GetTokenAsync
. Jika Anda menyimpan ini Id
dan perlu membuat sebuah CommunicationUserIdentifier
baru, Anda dapat melakukannya dengan meneruskan Id
yang Anda simpan ke konstruktor CommunicationUserIdentifier
sebagai berikut:
var identityToRefresh = new CommunicationUserIdentifier(identity.Id);
var tokenResponse = await client.GetTokenAsync(identityToRefresh, scopes: new [] { CommunicationTokenScope.VoIP });
Mencabut token akses
Anda mungkin perlu mencabut token akses secara eksplisit. Misalnya, ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode RevokeTokensAsync
menghapus semua token akses aktif yang telah diterbitkan untuk identitas.
await client.RevokeTokensAsync(identity);
Console.WriteLine($"\nSuccessfully revoked all access tokens for identity with ID: {identity.Id}");
Menghapus identitas
Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah masalah token akses lebih lanjut untuk identitas tersebut. Menghapus semua konten tersimpan yang terkait dengan identitas juga dilakukan dengan cara ini.
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 menggunakan dotnet run
perintah .
dotnet run
Output dari aplikasinya 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
- Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
- Node.js versi LTS Aktif dan LTS Pemeliharaan (disarankan versi 8.11.1 dan 10.14.1).
- Sumber daya Layanan Komunikasi yang aktif dan string koneksi. Buat sumber daya Layanan Komunikasi.
Kode akhir
Temukan kode yang diselesaikan di GitHub.
Atur lingkungan Anda
Membuat aplikasi Node.js baru
Di jendela terminal atau prompt perintah, buat direktori baru untuk aplikasi Anda, lalu buka.
mkdir access-tokens-quickstart && cd access-tokens-quickstart
Jalankan
npm init -y
untuk membuat filepackage.json
dengan pengaturan default.npm init -y
Pasang paketnya
Gunakan perintah npm install
untuk menginstal Azure Communication Services Identity SDK untuk JavaScript.
npm install @azure/communication-identity@latest --save
Opsi --save
mencantumkan perpustakaan sebagai ketergantungan dalam file package.json
Anda.
Atur kerangka 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
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 >, Menyimpan string koneksi Anda.
// 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.
createUser
Gunakan metode untuk membuat entri baru di direktori dengan yang unik Id
. Anda memerlukan identitas 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).
(Pratinjau) Membuat identitas dengan ID kustom terkait
Penting
Fitur ini tersedia dimulai dengan versi 1.4.0-beta1
SDK .
Nota
Fitur ini masih dalam mode pratinjau.
Anda dapat membuat identitas dengan customId
yang terhubung untuk memetakan identitas pengguna aplikasi Anda ke identitas Azure Communication Services. Ketika Anda memanggil createUser
dengan customId
yang sama, layanan akan mengembalikan communicationUserId
yang sama. Ini menghilangkan kebutuhan untuk menyimpan pemetaan sendiri.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
(Pratinjau) Dapatkan detail identitas
Penting
Fitur ini tersedia dimulai dengan versi 1.4.0-beta1
SDK .
Nota
Fitur ini masih dalam mode pratinjau.
Anda dapat menggunakan getUserDetail
metode untuk mengambil informasi tentang pengguna, termasuk customId
dan lastTokenIssuedAt
.
const customId = "alice@contoso.com";
let user = await identityClient.createUser({ customId });
let userDetails = client.getUserDetail(user);
console.log(`\nUser ID: ${user.communicationUserId}`);
console.log(`\nCustom ID: ${userDetails.customId}`);
console.log(`\nLast token issued at: ${userDetails.lastTokenIssuedAt}`);
Menerbitkan token akses
Gunakan metode getToken
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, tentukan 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. Buat itu dengan cakupan voip
.
// 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);
(Pratinjau) Membuat sebuah identitas dan mengeluarkan token dengan satu panggilan metode, termasuk customId.
Penting
Fitur ini tersedia dimulai dengan versi 1.4.0-beta1
SDK .
Nota
Fitur ini masih dalam mode pratinjau.
Anda dapat meneruskan ID kustom Anda ke createUserAndToken
metode untuk membuat identitas dan mengeluarkan token akses dalam satu panggilan.
// Issue an identity and an access token with a validity of 24 hours and the "voip" scope for the new identity
const customId = "bob@contoso.com";
let identityTokenResponse = await identityClient.createUserAndToken(["voip"], { customId });
// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);
Segarkan token akses
Saat token kedaluwarsa, Anda perlu menyegarkannya. Untuk merefresh token, panggil getToken
lagi dengan identitas yang sama yang digunakan untuk mengeluarkan token. Anda juga perlu menyediakan scopes
token yang sudah diperbarui.
// 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 token akses
Anda mungkin perlu mencabut token akses. Misalnya, Anda melakukannya saat pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode revokeTokens
menghapus semua token akses aktif yang telah diterbitkan untuk identitas.
await identityClient.revokeTokens(identityResponse);
console.log(`\nSuccessfully revoked all access tokens for identity with ID: ${identityResponse.communicationUserId}`);
Menghapus identitas
Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah masalah token akses lebih lanjut untuk identitas tersebut. Menghapus semua konten tersimpan yang terkait dengan identitas juga dilakukan dengan cara ini.
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
- Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
- Python 3.8+.
- Sumber daya Layanan Komunikasi yang aktif dan string koneksi. Buat sumber daya Layanan Komunikasi.
Kode akhir
Temukan kode yang diselesaikan di GitHub.
Atur lingkungan Anda
Membuat aplikasi Python baru
Di jendela terminal atau 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 akar proyek. Kemudian tambahkan struktur untuk program, termasuk penanganan pengecualian dasar. Anda menambahkan semua kode sumber ke file ini.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 paketnya
Saat berada di direktori aplikasi, instal Azure Communication Services Identity SDK untuk Python menggunakan perintah pip install
.
pip install azure-communication-identity
Mengautentikasi klien
Buat instance CommunicationIdentityClient
menggunakan 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 >, Menyimpan string koneksi Anda.
# 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.
create_user
Gunakan metode untuk membuat entri baru di direktori dengan yang 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
Gunakan metode get_token
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. Properti expires_on
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, tentukan 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)
Segarkan token akses
Untuk memperbarui token akses, gunakan objek CommunicationUserIdentifier
untuk menerbitkan ulang token dengan memberikan 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 token akses
Anda mungkin perlu mencabut token akses secara eksplisit. Misalnya, ketika pengguna aplikasi mengubah kata sandi yang mereka gunakan untuk mengautentikasi ke layanan Anda. Metode revoke_tokens
menghapus semua token akses aktif yang telah diterbitkan untuk identitas.
client.revoke_tokens(identity)
print("\nSuccessfully revoked all access tokens for identity with ID: " + identity.properties['id'])
Menghapus identitas
Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Menghapus semua konten tersimpan yang terkait dengan identitas juga dilakukan dengan cara ini.
client.delete_user(identity)
print("\nDeleted the identity with ID: " + identity.properties['id'])
Menjalankan kode
Dari prompt konsol, buka direktori yang berisi issue-access-tokens.py
file, lalu jalankan perintah berikut python
untuk menjalankan aplikasi.
python ./issue-access-tokens.py
Output yang dihasilkan 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
- Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
- Java Development Kit (JDK) versi 8 atau yang lebih baru.
- Apache Maven.
- Sumber daya Layanan Komunikasi yang aktif dan string koneksi. Buat sumber daya Layanan Komunikasi.
Kode akhir
Temukan kode yang diselesaikan di GitHub.
Atur lingkungan Anda
Buat aplikasi Java baru
Di jendela terminal atau 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
Perhatikan 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
direktori berisi sumber pengujian, dan pom.xml
file adalah Project Object Model proyek, atau POM. File ini digunakan untuk parameter konfigurasi proyek.
Menginstal paket Layanan Komunikasi
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 perlu Anda gunakan nanti.
Atur kerangka aplikasi
Di direktori proyek, selesaikan langkah-langkah berikut:
-
/src/main/java/com/communication/quickstart
Buka direktori. -
App.java
Buka file di editor Anda. -
System.out.println("Hello world!");
Ganti pernyataan. - Tambahkan
import
direktif.
Gunakan kode berikut untuk 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 sebuah instans dari CommunicationIdentityClient
dengan kunci akses dan titik akhir sumber daya Anda. Untuk informasi selengkapnya, lihat >, Menyimpan string koneksi Anda.
Anda juga dapat menginisialisasi klien dengan klien HTTP kustom apa pun yang mengimplementasikan antarmuka com.azure.core.http.HttpClient
.
Dalam file App.java
, tambahkan kode berikut ke metode main
.
// 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.
createUser
Gunakan metode untuk membuat entri baru di direktori dengan yang 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
Gunakan metode getToken
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, tentukan 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);
Segarkan token akses
Untuk merefresh token akses, gunakan objek CommunicationUserIdentifier
untuk menerbitkannya 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
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 identitas
Saat menghapus identitas, Anda mencabut semua token akses aktif dan mencegah penerbitan token akses lebih lanjut untuk identitas tersebut. Menghapus semua konten tersimpan yang terkait dengan identitas juga dilakukan dengan cara ini.
communicationIdentityClient.deleteUser(user);
System.out.println("\nDeleted the user identity with ID: " + user.getId());
Menjalankan kode
Buka direktori yang berisi
pom.xml
file.Kompilasi proyek menggunakan perintah berikut
mvn
:mvn compile
buat paket:
mvn package
Jalankan perintah berikut
mvn
untuk menjalankan aplikasi:mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Output 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
- Sebuah sumber Azure Communication Services.
Membuat token akses
Di portal Microsoft Azure, navigasikan ke bilah Identitas & Token Akses Pengguna di sumber daya Communication Services Anda.
Pilih cakupan token akses. Anda dapat memilih tidak ada, satu, atau beberapa layanan.
Pilih Hasilkan.
Sistem menghasilkan identitas dan token akses pengguna yang sesuai.
Salin string ini dan gunakan di aplikasi sampel dan skenario pengujian lainnya.
Prasyarat
Sebuah akun Azure dengan langganan aktif. Buat akun Azure secara gratis.
Sumber daya aktif dari Azure Communication Services. Buat sumber daya Layanan Komunikasi.
Sumber daya Azure Logic Apps aktif (aplikasi logika). 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 menggunakan konektor Identitas Azure Communication Services. Buka alur Power Automate Anda dalam mode edit, lalu selesaikan langkah-langkah ini di Power Automate.
Buka perancang. Pada langkah di mana Anda ingin menambahkan tindakan baru, pilih Langkah baru. Atau, untuk menambahkan tindakan baru di antara langkah-langkah, arahkan mouse ke atas panah di antara langkah-langkah tersebut, pilih tanda plus (+), dan pilih Tambahkan tindakan.
Di kotak pencarian Pilih operasi, masukkan Identitas Layanan Komunikasi. Dari daftar tindakan, pilih Buat pengguna.
Berikan String Koneksi. Anda dapat menemukannya di portal Microsoft Azure, dalam Sumber Daya Azure Communication Service Anda. Pilih opsi Kunci di menu panel kiri untuk melihat Rantai Koneksi.
Berikan Nama Koneksi.
Klik Buat
Tindakan ini menghasilkan ID Pengguna, yang merupakan identitas pengguna Communication Services. Selain itu, jika Anda mengklik Tampilkan opsi tingkat lanjut dan pilih Cakupan Token, tindakan juga menghasilkan token akses dan waktu kedaluwarsanya dengan cakupan yang ditentukan.
Menerbitkan token akses pengguna
Setelah Anda memiliki identitas Communication Services, Anda dapat mengeluarkan token akses. Selesaikan langkah-langkah berikut:
Tambahkan tindakan baru dan masukkan Identitas Layanan Komunikasi di kotak pencarian. Dari daftar tindakan, pilih Terbitkan token akses pengguna.
Sekarang Anda dapat menggunakan output ID Pengguna dari langkah Buat pengguna sebelumnya.
Tentukan cakupan token: VoIP atau obrolan. Pelajari selengkapnya tentang token dan autentikasi.
Sistem 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. Selesaikan langkah-langkah berikut:
Tambahkan tindakan baru dan masukkan Identitas Layanan Komunikasi di kotak pencarian. Dari daftar tindakan, pilih Cabut token akses pengguna.
Tentukan ID Pengguna.
Sistem 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. Selesaikan langkah-langkah berikut:
Tambahkan tindakan baru dan masukkan Identitas Layanan Komunikasi di kotak pencarian. Dari daftar tindakan, pilih Hapus pengguna.
Tentukan ID Pengguna.
Sistem 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, dari toolbar perancang pilih Jalankan. Alur kerja membuat pengguna, mengeluarkan token akses untuk pengguna tersebut, kemudian menghapus token tersebut dan menghapus pengguna.
Untuk informasi selengkapnya, lihat cara menjalankan alur kerja Anda. Anda dapat memeriksa keluaran dari tindakan-tindakan ini setelah alur kerja berhasil dijalankan.
Menggunakan identitas untuk pemantauan dan metrik
ID pengguna bertindak sebagai kunci utama untuk log dan metrik yang dikumpulkan melalui Azure Monitor. Untuk melihat semua panggilan pengguna, misalnya, Anda dapat menyiapkan autentikasi untuk memetakan identitas Azure Communication Services tertentu (atau beberapa identitas) ke satu pengguna.
Untuk informasi selengkapnya, lihat:
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 >>.
Untuk membersihkan alur kerja aplikasi logika dan sumber daya terkait, lihat Membuat contoh alur kerja aplikasi logika Konsumsi menggunakan portal > Microsoft Azure Bersihkan sumber daya.
Langkah selanjutnya
Artikel ini menjelaskan cara membuat pengguna dan menghapus pengguna. Ini juga menjelaskan cara mengeluarkan token akses kepada pengguna dan menghapus token akses pengguna menggunakan konektor Identitas Azure Communication Services. Untuk informasi selengkapnya, lihat Azure Communication Services Identity Connector.
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.