Mulai cepat: Membuat dan mengelola token akses

Token akses memungkinkan Azure Communication Services SDK 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

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 dapat mulai menulis kode khusus Azure Communication Services Anda.

Instal 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 --version 1.0.0

Siapkan kerangka kerja aplikasi

Di direktori proyek, lakukan hal berikut:

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

Untuk memulai, jalankan kode berikut:

using System;
using Azure;
using Azure.Core;
using Azure.Communication.Identity;

namespace AccessTokensQuickstart
{
    class Program
    {
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            Console.WriteLine("Azure Communication Services - Access Tokens Quickstart");

            // Quickstart code goes here
        }
    }
}

Mengautentikasi klien

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

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

// This code demonstrates how to retrieve your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
var client = new CommunicationIdentityClient(connectionString);

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

// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
string endpoint = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ENDPOINT");
string accessKey = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_ACCESSKEY");
var client = new CommunicationIdentityClient(new Uri(endpoint), new AzureKeyCredential(accessKey));

Jika Anda sudah menyiapkan aplikasi Azure Active Directory (Azure AD), Anda dapat mengautentikasi dengan menggunakan Azure AD.

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

Membuat identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan metode createUser untuk membuat entri baru di direktori dengan Id yang unik. Identitas diperlukan nanti untuk menerbitkan 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 menentukan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services. Anda juga dapat membuat instans communicationUser baru berdasarkan representasi string identitas Azure Communication Service.

// Issue an access token with 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;

// Write the token details to the screen
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.

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 menentukan 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 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;

// Print the details to the screen
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);

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

Jalankan kode

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

dotnet run

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Buat 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

Menginstal paket

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

npm install @azure/communication-identity --save

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

Siapkan kerangka kerja aplikasi

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

    const { CommunicationIdentityClient } = require('@azure/communication-identity');
    
    const main = async () => {
      console.log("Azure Communication Services - Access Tokens Quickstart")
    
      // Quickstart code goes here
    };
    
    main().catch((error) => {
      console.log("Encountered an error");
      console.log(error);
    })
    

Mengautentikasi klien

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

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

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];

// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(connectionString);

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

// This code demonstrates how to fetch your endpoint and access key
// from an environment variable.
const endpoint = process.env["COMMUNICATION_SERVICES_ENDPOINT"];
const accessKey = process.env["COMMUNICATION_SERVICES_ACCESSKEY"];

// Create the credential
const tokenCredential = new AzureKeyCredential(accessKey);

// Instantiate the identity client
const identityClient = new CommunicationIdentityClient(endpoint, tokenCredential)

Jika Anda sudah menyiapkan aplikasi Azure Active Directory (Azure AD), Anda dapat mengautentikasi dengan menggunakan Azure AD.

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

Membuat identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan metode createUser untuk membuat entri baru di direktori dengan Id yang unik. Identitas diperlukan nanti untuk menerbitkan 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 menentukan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services. Anda juga dapat membuat instans communicationUser baru berdasarkan representasi string identitas Azure Communication Service.

// Issue an access token with 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;

// Print the expiration date and token to the screen
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.

Membuat identitas dan mengeluarkan token dalam satu panggilan metode

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

// Issue an identity and an access token with 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;

// print these details to the screen
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);

Menyegarkan token akses

Saat token kedaluwarsa, Anda harus merefreshnya secara berkala. Penyegaran mudah hanya memanggil 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}`);

Jalankan 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

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Membuat aplikasi Python baru

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

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

    import os
    from 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)
    

Menginstal 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

Autentikasi klien

Beri contoh 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 Azure Active Directory (Azure AD), Anda dapat mengautentikasi dengan menggunakan Azure AD.

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

Membuat identitas

Untuk membuat token akses, Anda memerlukan identitas. Azure Communication Services mempertahankan direktori identitas ringan untuk tujuan ini. Gunakan metode create_user untuk membuat entri baru di direktori dengan Id yang unik. Identitas diperlukan nanti untuk menerbitkan 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 menentukan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services. Anda juga dapat membuat instans parameter CommunicationUserIdentifier baru berdasarkan representasi string identitas Azure Communication Service.

# Issue an access token with the "voip" scope for an identity
token_result = client.get_token(identity, ["voip"])
expires_on = token_result.expires_on.strftime("%d/%m/%y %I:%M %S %p")

# Print the details to the screen
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token_result.token)

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

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 untuk itu secara bersamaan. Parameter scopes menentukan 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 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.strftime("%d/%m/%y %I:%M %S %p")

# Print the details to the screen
print("\nCreated an identity with ID: " + identity.properties['id'])
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token)

Menyegarkan 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'])

Jalankan kode

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

python ./issue-access-tokens.py

Prasyarat

Kode akhir

Menemukan kode final untuk mulai cepat ini di GitHub.

Menyiapkan lingkungan Anda

Membuat aplikasi Java baru

Di terminal atau jendela Wantian 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 artifactIdyang sama dengan . Di bawah direktori ini, direktori src/main/java berisi kode sumber proyek, direktori src/test/java berisi sumber pengujian, dan file pom.xml adalah Project Object Model, atau POM proyek. 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.1.1</version>
</dependency>

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

Menyiapkan kerangka kerja aplikasi

Di direktori proyek, lakukan hal berikut:

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

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

Autentikasi 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 connectionString() metode .

// 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 Azure Active Directory (Azure AD), Anda dapat mengautentikasi dengan menggunakan Azure AD.

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

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

Membuat identitas

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

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 menentukan sekumpulan izin dan peran token akses. Untuk informasi selengkapnya, lihat daftar tindakan yang didukung di Mengautentikasi ke Azure Communication Services.

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

// Issue an access token with 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);

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 terbitkan secara bersamaan.

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

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.

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

Jalankan 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 30/03/21 08:09 09 AM:
<token signature here>

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 30/03/21 08:09 09 AM:
<token signature here>

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

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 "Membersihkan sumber daya" di Membuat dan mengelola sumber daya Communication Services.

Langkah berikutnya

Dalam mulai cepat ini, Anda mempelajari cara:

  • Mengelola identitas
  • Mengeluarkan token akses
  • Menggunakan Communication Services Identity SDK

Anda mungkin juga ingin: