Hızlı Başlangıç: Erişim belirteçleri oluşturma ve yönetme

Erişim belirteçleri, ACS SDK'lerinin belirli bir kimlik Azure İletişim Hizmetleri doğrudan kimlik doğrulamasına izin verme. Kullanıcılarının uygulamanıza bir çağrı veya sohbet iş parçacığına katılmasını istediğiniz durumlarda oluşturmanız gerekir.

Kimlikler oluşturmak ve erişim belirteçlerinizi yönetmek için ACS SDK'larını da kullanabilirsiniz. Bu hızlı başlangıçta bunu nasıl yapacağız? Üretim kullanım örnekleri için sunucu tarafı hizmette erişim belirteçleri oluşturmamız önerilir.

Bu öğretici boyunca görüntülerde görülen fiyatlar yalnızca tanıtım amaçlıdır.

Önkoşullar

Son kod

Bu hızlı başlangıçta GitHubiçin son kodu bulun.

Ayarlanıyor

Yeni bir C# uygulaması oluşturma

Konsol penceresinde (cmd, PowerShell veya Bash gibi), dotnet new adıyla yeni bir konsol uygulaması oluşturmak için komutunu kullanın AccessTokensQuickstart . Bu komut, tek bir kaynak dosyası olan basit bir "Merhaba Dünya" C# projesi oluşturur: Program.cs .

dotnet new console -o AccessTokensQuickstart

Dizininizi yeni oluşturulan uygulama klasörüyle değiştirin ve dotnet build uygulamanızı derlemek için komutunu kullanın.

cd AccessTokensQuickstart
dotnet build

Basit bir "Merhaba Dünya" çıkışı görmeniz gerekir. Her şey çalışırsa, kurulum uygulamanızın doğru şekilde çalıştığı ve ACS 'ye özgü kodumuzu yazmaya başladığımız anlamına gelir.

Paketi yükler

Hala uygulama dizininde, komutunu kullanarak .NET için Azure Iletişim Hizmetleri kimlik kitaplığı 'nı yükleyebilirsiniz dotnet add package .

dotnet add package Azure.Communication.Identity --version 1.0.0

Uygulama çerçevesini ayarlama

Proje dizininden:

  1. Program.csDosyayı bir metin düzenleyicisinde aç
  2. usingAd alanını dahil etmek için bir yönerge ekleyin Azure.Communication.Identity
  3. MainZaman uyumsuz kodu desteklemek için yöntem bildirimini güncelleştirme

Başlamak için aşağıdaki kodu kullanın:

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

İstemcinin kimliğini doğrulama

Şimdi CommunicationIdentityClient bağlantı dizeniz ile bir başlatacağız. Aşağıdaki kod, adlı bir ortam değişkeninden kaynak için bağlantı dizesini alır COMMUNICATION_SERVICES_CONNECTION_STRING . Kaynağınızın bağlantı dizesini yönetmehakkında bilgi edinin.

Main yöntemine aşağıdaki kodu ekleyin:

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

Alternatif olarak, uç nokta ve erişim anahtarını ayırabilirsiniz.

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

ayarlanmış bir Azure Active Directory (AD) uygulamanız varsa, bkz. hizmet sorumlularını kullanma, AD ile de kimlik doğrulaması yapabilirsiniz.

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

Kimlik oluşturma

Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure Iletişim Hizmetleri, bu amaçla hafif bir kimlik dizini sağlar. createUserDizinde benzersiz olan yeni bir giriş oluşturmak için yöntemini kullanın Id . Daha sonra erişim belirteçleri vermek için kimlik gereklidir.

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

Alınan kimliği, uygulamanızın kullanıcılarına bir eşleme ile depolamanız gerekir. Örneğin, bunları uygulama sunucunuzun veritabanında depolayarak.

Kimlik erişim belirteçleri verme

Bir kimliğiniz olduğunda, GetToken kimlik için bir erişim belirteci vermek için yöntemini kullanın. scopesParametresi, bu erişim belirtecinin gerçekleştirebileceği izinler/yetenekler kümesini tanımlar. Desteklenen eylemlerin listesinebakın. Bir communicationUser Azure Iletişim hizmeti kimliğinin dize gösterimine göre yeni bir örneği de oluşturulabilir.

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

Erişim belirteçleri yeniden verilmesini gerektiren kısa ömürlü kimlik bilgileridir. Bunu yapmamak, uygulamanızın kullanıcı deneyiminin kesintiye uğramasına neden olabilir. expiresOnResponse özelliği, erişim belirtecinin ömrünü gösterir.

Aynı istek içinde bir kimlik oluşturma ve erişim belirteci verme

CreateUserAndTokenAsyncYöntemini kullanarak bir Iletişim Hizmetleri kimliği oluşturabilir ve aynı zamanda bir erişim belirteci verebilirsiniz. scopesParametresi, bu erişim belirtecinin gerçekleştirebileceği izinler/yetenekler kümesini tanımlar. Desteklenen eylemlerin listesinebakın.

// 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 expiry date from the response
var identity = identityAndTokenResponse.Value.User;
var token = identityAndTokenResponse.Value.AccessToken.Token;
var expiresOn = identityAndTokenResponse.Value.AccessToken.ExpiresOn;

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

Erişim belirtecini yenileme

Bir erişim belirtecini yenilemek için nesnesinin bir örneğini geçirin CommunicationUserIdentifier GetTokenAsync . Bunu depoladıysanız Id ve yeni bir oluşturmanız gerekiyorsa CommunicationUserIdentifier , bu durumda, Id aşağıdaki gibi, depolama alanınızı oluşturucuya geçirerek bunu yapabilirsiniz CommunicationUserIdentifier :

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

Erişim belirteçlerini iptal et

Bazı durumlarda, erişim belirteçlerini açıkça iptal etmeniz gerekebilir. Örneğin, bir uygulamanın kullanıcısı hizmetinize kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde. RevokeTokensAsyncYöntemi, kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılar.

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

Kimlik silme

Bir kimlik silindiğinde tüm etkin erişim belirteçleri iptal olur ve kimlikler için erişim belirteçleri yayınınızdan sonra. Ayrıca, kimlik ile ilişkili tüm kalıcı içeriği de kaldırır.

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

Kodu çalıştırma

Tamamlandıktan sonra, komutuyla uygulamayı uygulama dizininizden çalıştırabilirsiniz dotnet run .

dotnet run

Önkoşullar

Son Kod

bu hızlı başlangıç için son kodu GitHub.

Ayarlama

Yeni Node.js Oluşturma

Terminal veya komut pencerenizi açın, uygulama için yeni bir dizin oluşturun ve bu dizine gidin.

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

Varsayılan npm init -y ayarlarla bir package.json dosya oluşturmak için çalıştırın.

npm init -y

Paketi yükleme

npm installJavaScript için Azure İletişim Hizmetleri Identity SDK'sı yüklemek için komutunu kullanın.

npm install @azure/communication-identity --save

--saveseçeneği, kitaplığı dosyanıza bağımlılık olarak package.json listeler.

Uygulama çerçevesini ayarlama

Başlamak için proje dizininde aşağıdaki kodu kullanın:

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

Tamamlandıktan sonra yeni dosyayı proje issue-access-token.js dizininde olarak kaydedin.

İstemcinin kimliğini doğrulama

Bağlantı dizeniz CommunicationIdentityClient ile bir örneği. Aşağıdaki kod, adlı bir ortam değişkenden kaynağın bağlantı dizesini COMMUNICATION_SERVICES_CONNECTION_STRING alır. Kaynağınız için bağlantı dizesini yönetmeyi öğrenin.

main yöntemine aşağıdaki kodu ekleyin:

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

Alternatif olarak uç noktayı ve erişim anahtarını ayırarak da kullanabilirsiniz.

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

Azure Active Directory (Azure AD) Uygulaması kurulumunuz varsa bkz. Hizmet sorumlularını kullanma,Azure AD ile kimlik doğrulaması da yapma.

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

Kimlik oluşturma

Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri basit bir kimlik dizini sağlar. dizininde createUser benzersiz bir ile yeni bir giriş oluşturmak için yöntemini Id kullanın. Oluşturulan kimlik daha sonra erişim belirteçleri yapmak için gereklidir.

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

Alınan kimlikleri, uygulama kullanıcılarının eşlemesi ile depolamanız gerekir. Örneğin, uygulama sunucusunun veritabanında.

Erişim belirteçleri sorun

Zaten var getToken olan bir İletişim Hizmetleri kimliği için erişim belirteci almak üzere yöntemini kullanın. parametresi, scopes bu belirteci gerçekleştirecek/kullanabileceği izinlerin/rollerin listesini tanımlar. Desteklenen eylemlerin listesine bakın. Azure İletişim Hizmeti communicationUser kimliğinin dize gösterimine göre yeni bir parametre örneği oluşturulur.

// Issue an access token with the "voip" scope for an identity
let tokenResponse = await identityClient.getToken(identityResponse, ["voip"]);

// retrieve the token and its expiry date from the response
const { token, expiresOn } = tokenResponse;

// Print the expiry date and token to the screen
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);

Erişim belirteçleri, yeniden vermeleri gereken kısa süreli kimlik bilgileridir. Bunu yapmaması, uygulama kullanıcı deneyiminin bozulmasına neden olabilir. özelliği, expiresOn erişim belirtecin ömrünü gösterir.

Kimlik oluşturma ve bir yöntem çağrısı içinde erişim belirteci oluşturma

yöntemini kullanarak createUserAndToken bir İletişim Hizmetleri kimliği oluşturabilir ve bu kimlik için bir erişim belirteci oluşturabilirsiniz. scopesparametresi, yukarıdakiyle aynıdır. Bir kez daha kapsamı olan bir tane voip oluşturacağız.

// Issue an identity and an access token with the "voip" scope for the new identity
let identityTokenResponse = await identityClient.createUserAndToken(["voip"]);

// retrieve the token, its expiry date and 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);

Erişim belirteçlerini yenileme

Belirteçlerin süresi dolduğunda bunları düzenli aralıklarla yenilemeniz gerekir. Yenileme kolaydır; yalnızca getToken belirteçleri almak için kullanılan kimlikle yeniden çağrı yapmak kolaydır. Ayrıca yenilenmiş scopes belirteçlerin de belirteci sağlamış oluruz.

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

Erişim belirteçlerini iptal etme

Bazı durumlarda erişim belirteçlerini iptal etmek istiyor olabilirsiniz. Örneğin, bir uygulamanın kullanıcısı hizmetinize kimlik doğrulaması yapmak için kullandığı parolayı değiştirse. yöntemi, revokeTokens kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılacak.

await identityClient.revokeTokens(identityResponse);

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

Kimliği silme

Bir kimliğin silinmesi tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçleri vermenizi önler. Ayrıca kimlikle ilişkili tüm kalıcı içeriği de kaldırır.

await identityClient.deleteUser(identityResponse);

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

Kodu çalıştırma

Konsol isteminden, dosyasını içeren dizine issue-access-token.js gidin ve uygulamayı çalıştırmak için aşağıdaki komutu node yürütün.

node ./issue-access-token.js

Önkoşullar

Son kod

Bu hızlı başlangıçta GitHubiçin son kodu bulun.

Ayarlanıyor

Yeni Python uygulaması oluşturma

  1. Terminal veya komut pencerenizi açın, uygulamanız için yeni bir dizin oluşturun ve bu dizine gidin.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Proje kök dizininde adlı bir dosya oluşturmak issue-access-tokens.py ve temel özel durum işleme dahil olmak üzere programın yapısını eklemek için bir metin düzenleyicisi kullanın. Bu hızlı başlangıç için tüm kaynak kodu aşağıdaki bölümlerde bu dosyaya ekleyeceksiniz.

    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)
    

Paketi yükler

Hala uygulama dizininde, komutunu kullanarak Python için Azure Communication Services Identity SDK 'sını yükleyebilirsiniz pip install .

pip install azure-communication-identity

İstemcinin kimliğini doğrulama

Daha sonra CommunicationIdentityClient bağlantı dizeniz ile bir olarak örnekliyoruz. Aşağıdaki kod, adlı bir ortam değişkeninden kaynak için bağlantı dizesini alır COMMUNICATION_SERVICES_CONNECTION_STRING . Kaynağınızın bağlantı dizesini yönetmehakkında bilgi edinin.

Bu kodu bloğunun içine ekleyin try :

# This code demonstrates how to fetch 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)

alternatif olarak, ayarlanmış bir Azure Active Directory (Azure AD) uygulamanız varsa, bkz. hizmet sorumlularını kullanma, Azure AD ile kimlik doğrulaması de yapabilirsiniz.

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

Kimlik oluşturma

Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure Iletişim Hizmetleri, hafif bir kimlik dizini sağlar. create_userDizinde benzersiz olan yeni bir giriş oluşturmak için yöntemini kullanın Id . Daha sonra erişim belirteçleri vermek için kimlik gereklidir.

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

Alınan kimliği, uygulamanızın kullanıcılarına bir eşleme ile depolamanız gerekir. Örneğin, bunları uygulama sunucunuzun veritabanında depolayarak.

Erişim belirteçleri verme

get_tokenZaten var olan Iletişim Hizmetleri kimliği için bir erişim belirteci vermek üzere metodunu kullanın. scopesParametresi, bu erişim belirtecinin gerçekleştirebileceği izinler/yetenekler kümesini tanımlar. Desteklenen eylemlerin listesinebakın. bir parametresinin yeni bir örneği CommunicationUserIdentifier de Azure Iletişim hizmeti kimliğinin dize gösterimine göre oluşturulabilir.

# 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 these details to the screen
print("\nIssued an access token with 'voip' scope that expires at " + expires_on + ":")
print(token_result.token)

Erişim belirteçleri yeniden verilmesini gerektiren kısa ömürlü kimlik bilgileridir. Bunu yapmamak, uygulamanızın kullanıcı deneyiminin kesintiye uğramasına neden olabilir. expires_onResponse özelliği, erişim belirtecinin ömrünü gösterir.

Aynı istek içinde bir kimlik oluşturma ve erişim belirteci verme

create_user_and_tokenYöntemini kullanarak bir Iletişim Hizmetleri kimliği oluşturabilir ve bunun için bir erişim belirteci verebilirsiniz. scopesParametresi, bu erişim belirtecinin gerçekleştirebileceği izinler/yetenekler kümesini tanımlar. Desteklenen eylemlerin listesinebakın.

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

Erişim belirteçlerini yenileme

Bir erişim belirtecini yenilemek için, CommunicationUserIdentifier var olan kimliği geçirerek bir belirteci yeniden vermek üzere nesnesini kullanın:

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

Erişim belirteçlerini iptal et

Bazı durumlarda, erişim belirteçlerini açıkça iptal etmek isteyebilirsiniz. Örneğin, bir uygulamanın kullanıcısı hizmetinize kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde. revoke_tokensYöntemi, kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılar.

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

Kimlik silme

Bir kimlik silindiğinde tüm etkin erişim belirteçleri iptal olur ve kimlik için erişim belirteçleri yayınınızdan sonra. Ayrıca, kimlik ile ilişkili tüm kalıcı içeriği de kaldırır.

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

Kodu çalıştırma

Konsol isteminde dosyayı içeren dizine gidin issue-access-tokens.py ve python uygulamayı çalıştırmak için aşağıdaki komutu yürütün.

python ./issue-access-tokens.py

Önkoşullar

Son kod

Bu hızlı başlangıçta GitHubiçin son kodu bulun.

Ayarlanıyor

Yeni bir Java uygulaması oluşturma

Terminal veya komut pencerenizi açın. Java uygulamanızı oluşturmak istediğiniz dizine gidin. Maven-,-hızlı başlangıç şablonundan Java projesi oluşturmak için aşağıdaki komutu çalıştırın.

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

' Oluştur ' görevinin ile aynı ada sahip bir dizin oluşturduğunu fark edeceksiniz artifactId . bu dizin altında src/main/java dizini proje kaynak kodunu içerir, src/test/java directory test kaynağını içerir ve pom.xml dosya projenin Project nesne modeli veya pod olur. Bu dosya proje yapılandırma parametreleri için kullanılır.

ACS paketlerini yükler

pom.xml dosyasını metin düzenleyicinizde açın. Aşağıdaki bağımlılık öğesini bağımlılıklar grubuna ekleyin.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
    <version>1.0.0</version>
</dependency>

Bu, Maven 'i daha sonra kullanırken ACS Identity SDK 'sını yüklemeye yönlendirir.

Uygulama çerçevesini ayarlama

Proje dizininden:

  1. /src/main/java/com/communication/quickstart dizinine gidin
  2. App.javaDosyayı Düzenleyicinizde açın
  3. İfadesini Değiştir System.out.println("Hello world!");
  4. importYönergeler ekleme

Başlamak için aşağıdaki kodu kullanın:

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

İstemcinin kimliğini doğrulama

CommunicationIdentityClientKaynağınızın erişim anahtarı ve uç noktasıyla bir a örneği oluşturun. Kaynağınızın bağlantı dizesini yönetmehakkında bilgi edinin. Ayrıca, istemcisini uygulayan herhangi bir özel HTTP istemcisiyle istemciyi başlatabilirsiniz com.azure.core.http.HttpClient .

Aşağıdaki kodu main içindeki yöntemine ekleyin App.java :

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

Ayrıca, connectionString() uç nokta ve erişim anahtarı sağlamak yerine yöntemi kullanarak tüm bağlantı dizesini de sağlayabilirsiniz.

// Your can find your connection string from your ACS resource in the Azure portal
String connectionString = "<connection_string>";

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .connectionString(connectionString)
    .buildClient();

ayarlanmış bir Azure Active Directory (Azure AD) uygulamanız varsa bkz. hizmet sorumlularını kullanma, Azure AD ile de kimlik doğrulaması yapabilirsiniz.

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

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

Kimlik oluşturma

Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure Iletişim Hizmetleri, hafif bir kimlik dizini sağlar. createUserDizinde benzersiz olan yeni bir giriş oluşturmak için yöntemini kullanın Id .

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

Oluşturulan kimliğin daha sonra erişim belirteçleri vermesi gerekir. Bu nedenle, alınan tüm kimlikleri uygulamanızın kullanıcısına eşleme ile depolamanız gerekir. Örneğin, bunları uygulama sunucunuzun veritabanında depolayarak.

Erişim belirteçleri verme

getTokenZaten var olan Iletişim Hizmetleri kimliği için bir erişim belirteci vermek üzere metodunu kullanın. scopesParametresi, bu belirtecin gerçekleştirebileceği izin ve yetenekler kümesini tanımlar. Geçerli değerler için desteklenen eylemlerin listesine bakın. Bu durumda, bir belirteç almak için önceki adımda oluşturulan kullanıcı değişkenimizi kullanacağız.

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

Bir istekte kimlik ve sorun belirteci oluşturma

Alternatif olarak, dizinde benzersiz olan yeni bir giriş oluşturmak Id ve erişim belirteci vermek için ' createUserAndToken ' metodunu kullanabilirsiniz.

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

Erişim belirteçleri yeniden verilmesini gerektiren kısa ömürlü kimlik bilgileridir. Bunu yapmamak, uygulamanızın kullanıcı deneyiminin kesintiye uğramasına neden olabilir. expiresAtÖzelliği, erişim belirtecinin ömrünü gösterir.

Erişim belirteçlerini yenileme

Bir erişim belirtecini yenilemek için, öğesini kullanarak yeniden CommunicationUserIdentifier yayımlayın:

// existingIdentity represents identity of Azure Communication Services stored during identity creation
CommunicationUserIdentifier identity = new CommunicationUserIdentifier(existingIdentity.getId());
AccessToken response = communicationIdentityClient.getToken(identity, scopes);

Erişim belirtecini iptal etme

Bazı durumlarda, erişim belirteçlerini açıkça iptal edebilirsiniz. Örneğin, bir uygulamanın kullanıcısı hizmetinize kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde. revokeTokensYöntemi belirli bir kullanıcı için tüm etkin erişim belirteçlerini geçersiz kılar. Bu durumda, daha önce oluşturulan kullanıcıyı yeniden kullanacağız.

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

Kimlik silme

Bir kimlik silindiğinde tüm etkin erişim belirteçleri iptal olur ve kimlik için erişim belirteçleri yayınınızdan sonra. Ayrıca, kimlik ile ilişkili tüm kalıcı içeriği de kaldırır.

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

Kodu çalıştırma

Dosyayı içeren dizine gidin pom.xml ve aşağıdaki komutu kullanarak projeyi derleyin mvn .

mvn compile

Ardından, paketini oluşturun.

mvn package

mvnUygulamayı yürütmek için aşağıdaki komutu çalıştırın.

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

Uygulamanın çıktısı, tamamlanan her eylemi açıklar:

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

Kaynakları temizleme

İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak için kaynağı veya kaynak grubunu silebilirsiniz. Kaynak grubunun silinmesi, kaynak grubuyla ilişkilendirilmiş diğer tüm kaynakları da siler. Kaynakları temizleme hakkında daha fazla bilgi.

Sonraki Adımlar

Bu hızlı başlangıçta şunları öğrendiniz:

  • Kimlikleri yönetme
  • Erişim belirteçleri sorun
  • İletişim Hizmetleri Kimlik SDK'sı kullanma

Şunları da yapmak istiyor olabilir: