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

Erişim belirteçleri, Azure İletişim Hizmetleri SDK'ların belirli bir kimlik olarak doğrudan Azure İletişim Hizmetleri kimlik doğrulaması yapmasına olanak sağlar. Kullanıcılarınızın uygulamanızdaki bir çağrıya veya sohbet yazışmasına katılmasını istiyorsanız erişim belirteçleri oluşturmanız gerekir.

Bu hızlı başlangıçta kimlik oluşturmak ve erişim belirteçlerinizi yönetmek için Azure İletişim Hizmetleri SDK'larını kullanmayı öğreneceksiniz. Üretim kullanım örnekleri için, sunucu tarafı hizmetinde erişim belirteçleri oluşturmanızı öneririz.

Önkoşullar

Ayarlama

Uzantıyı ekleme

komutunu kullanarak Azure CLI için Azure İletişim Hizmetleri uzantısını az extension ekleyin.

az extension add --name communication

Azure CLI'da oturum açma

Azure CLI'da oturum açmanız gerekir. Terminalden komutunu çalıştırarak az login ve kimlik bilgilerinizi sağlayarak oturum açabilirsiniz.

(İsteğe bağlı) Bağlantı dizesi geçirmeden Azure CLI kimlik işlemlerini kullanma

ortam değişkeniniAZURE_COMMUNICATION_CONNECTION_STRING, bağlantı dizesi geçirmek için kullanmak zorunda kalmadan Azure CLI kimlik işlemlerini kullanacak --connection_string şekilde yapılandırabilirsiniz. Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin. değerini gerçek bağlantı dizesi ile değiştirin<yourConnectionString>.

Bir konsol penceresi açın ve aşağıdaki komutu girin:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.

Erişim belirtecinizi bir ortam değişkeninde depolama

Ortam değişkenini yapılandırmak için bir konsol penceresi açın ve aşağıdaki sekmelerden işletim sisteminizi seçin. değerini gerçek erişim belirtecinizle değiştirin <yourAccessToken> .

Bir konsol penceresi açın ve aşağıdaki komutu girin:

setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"

Ortam değişkenini ekledikten sonra, konsol penceresi de dahil olmak üzere ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatmanız gerekebilir. Örneğin, düzenleyici olarak Visual Studio kullanıyorsanız, örneği çalıştırmadan önce Visual Studio'yu yeniden başlatın.

Operations

Kimlik oluşturma

Erişim belirteçleri oluşturmak için bir kimliğe ihtiyacınız vardır. Azure İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar. dizininde user create benzersiz Idbir ile yeni bir giriş oluşturmak için komutunu kullanın. Kimlik daha sonra erişim belirteçleri verme için gereklidir.

az communication identity user create --connection-string "<yourConnectionString>"
  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.

Kimlik oluşturma ve aynı istekte erişim belirteci verme

İletişim Hizmetleri kimliği oluşturmak ve aynı anda bu kimlik için bir erişim belirteci vermek için aşağıdaki komutu çalıştırın. scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri için kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.

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

Kodda bu değişikliği yapın:

  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.

Sorun erişim belirteci

İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek için aşağıdaki komutu çalıştırın. scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri için kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.

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

Kodda bu değişikliği yapın:

  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.
  • değerini userId değerinizle değiştirin <userId> .

Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir. expires_on Yanıt özelliği erişim belirtecinin ömrünü belirtir.

Birden çok kapsamla erişim belirteci verme

İletişim Hizmetleri kimliğiniz için birden çok kapsama sahip bir erişim belirteci vermek için aşağıdaki komutu çalıştırın. scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın.

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

Kodda bu değişikliği yapın:

  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.
  • değerini userId değerinizle değiştirin <userId> .

Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir. expires_on Yanıt özelliği erişim belirtecinin ömrünü belirtir.

İletişim Kimliği erişim belirteci için Teams Kullanıcısının Microsoft Entra erişim belirtecini değiştirme

Teams kullanıcısına token get-for-teams-user Azure İletişim Hizmetleri SDK'larla kullanılabilecek bir erişim belirteci vermek için komutunu kullanın.

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

Kodda bu değişikliği yapın:

  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.
  • değerini Microsoft Entra userId değerinizle değiştirin <yourAadUser> .
  • değerini Microsoft Entra uygulama kimliğiniz ile değiştirin <yourAadApplication> .
  • değerini Microsoft Entra erişim belirtecinizle değiştirin <yourAadToken> .

Erişim belirteçlerini iptal etme

Bazen bir erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. token revoke komutu, kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.

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

Kodda bu değişikliği yapın:

  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.
  • değerini userId değerinizle değiştirin <userId> .

Kimlik silme

Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunun yapılması, kimlikle ilişkili tüm kalıcı içeriği de kaldırır.

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

Kodda bu değişikliği yapın:

  • değerini bağlantı dizesi ile değiştirin<yourConnectionString>.
  • değerini userId değerinizle değiştirin <userId> .

Önkoşullar

Kodun son hali

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun.

Ortamınızı ayarlama

Yeni bir C# uygulaması oluşturma

Cmd, PowerShell veya Bash gibi bir Komut İstemi penceresinde komutunu çalıştırarak dotnet new adlı AccessTokensQuickstartyeni bir konsol uygulaması oluşturun. Bu komut, Program.cs tek bir kaynak dosyasıyla basit bir "Merhaba Dünya" C# projesi oluşturur.

dotnet new console -o AccessTokensQuickstart

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

cd AccessTokensQuickstart
dotnet build

Basit bir "Merhaba Dünya" çıkışı görüntülenmelidir. Doğruysa, kurulumunuz doğru şekilde çalışır ve Azure İletişim Hizmetleri özgü kodunuzu yazmaya başlayabilirsiniz.

paketini yükleyin

Uygulama dizinindeyken komutunu kullanarak .NET paketi için Azure İletişim Hizmetleri Kimlik kitaplığını dotnet add package yükleyin.

dotnet add package Azure.Communication.Identity

Uygulama çerçevesini ayarlama

Proje dizininde aşağıdakileri yapın:

  1. Program.cs dosyasını bir metin düzenleyicisinde açın.
  2. Ad alanını içerecek Azure.Communication.Identity bir using yönerge ekleyin.
  3. Main Zaman uyumsuz kodu desteklemek için yöntem bildirimini güncelleştirin.

Başlamak için aşağıdaki kodu çalıştırı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

bağlantı dizesi ile başlatınCommunicationIdentityClient. yöntemine Main eklediğiniz aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRINGbir ortam değişkeninden kaynağın bağlantı dizesi alır.

Daha fazla bilgi için İletişim Hizmetleri kaynaklarını oluşturma ve yönetme bölümünün "bağlantı dizesi depolama" bölümüne bakın.

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

Alternatif olarak, aşağıdaki kodu çalıştırarak uç noktayı 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));

Zaten bir Microsoft Entra uygulaması ayarladıysanız, Microsoft Entra Id kullanarak 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 İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar. dizininde createUser benzersiz Idbir ile yeni bir giriş oluşturmak için yöntemini kullanın. Kimlik daha sonra erişim belirteçleri verme için 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 eşleme ile depolayın (örneğin, uygulama sunucusu veritabanınızda depolayarak).

Erişim belirteci verme

İletişim Hizmetleri kimliğiniz olduktan sonra, bu kimlik için bir erişim belirteci vermek için yöntemini kullanın GetToken . scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın. Ayrıca, Azure İletişim Hizmeti kimliğinin communicationUser dize gösterimini temel alan yeni bir örneği de oluşturabilirsiniz.

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

Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir. expiresOn özelliği, erişim belirtecinin ömrünü gösterir.

Özel belirteç süre sonu zamanı ayarlama

Varsayılan belirtecin süre sonu 24 saattir, ancak isteğe bağlı parametresine tokenExpiresInbir saat ile 24 saat arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için bir iletişim oturumunun beklenen tipik uzunluğunu belirtmeniz önerilir.

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

Kimlik oluşturma ve aynı istekte belirteç verme

İletişim Hizmetleri kimliği oluşturmak ve bunun için aynı anda bir erişim belirteci vermek için yöntemini kullanabilirsiniz CreateUserAndTokenAsync . scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri için kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.

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

Erişim belirtecini yenileme

Erişim belirtecini yenilemek için nesnesinin bir örneğini CommunicationUserIdentifier içine geçirin GetTokenAsync. Bunu Id depoladıysanız ve yeni CommunicationUserIdentifierbir oluşturmanız gerekiyorsa, depoladığınız öğesini Id oluşturucuya CommunicationUserIdentifier şu şekilde geçirerek bunu yapabilirsiniz:

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

Erişim belirteçlerini iptal etme

Bazen bir erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. yöntemi, RevokeTokensAsync kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.

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

Kimlik silme

Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunun yapılması, kimlikle 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

Erişim belirtecini oluşturmayı bitirdiğinizde komutunu kullanarak dotnet run uygulamayı uygulama dizininizden çalıştırabilirsiniz.

dotnet run

Uygulamanın çıkışı, 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 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

Önkoşullar

Kodun son hali

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun.

Ortamınızı ayarlama

Yeni bir Node.js uygulaması oluşturma

Terminal veya Komut İstemi penceresinde uygulamanız için yeni bir dizin oluşturun ve ardından açın.

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

Varsayılan ayarlarla bir package.json dosyası oluşturmak için komutunu çalıştırınnpm init -y.

npm init -y

paketini yükleyin

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

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

seçeneği--save, kitaplığı package.json dosyanızda bağımlılık olarak listeler.

Uygulama çerçevesini ayarlama

  1. Proje dizininde adlı issue-access-token.js bir dosya oluşturun ve aşağıdaki kodu ekleyin:

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

İstemcinin kimliğini doğrulama

CommunicationIdentityClient bağlantı dizesi örneğinizi oluşturma. yöntemine Main eklediğiniz aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRINGbir ortam değişkeninden kaynağın bağlantı dizesi alır.

Daha fazla bilgi için İletişim Hizmetleri kaynaklarını oluşturma ve yönetme bölümünün "bağlantı dizesi depolama" bölümüne bakın.

// 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, aşağıdaki kodu çalıştırarak uç noktayı ve erişim anahtarını ayırabilirsiniz:

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

Zaten bir Microsoft Entra uygulaması ayarladıysanız, Microsoft Entra Id kullanarak kimlik doğrulaması yapabilirsiniz.

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 bu amaçla basit bir kimlik dizini tutar. dizininde createUser benzersiz Idbir ile yeni bir giriş oluşturmak için yöntemini kullanın. Kimlik daha sonra erişim belirteçleri verme için gereklidir.

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

Alınan kimliği uygulamanızın kullanıcılarına eşleme ile depolayın (örneğin, uygulama sunucusu veritabanınızda depolayarak).

Erişim belirteci verme

getToken İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek için yöntemini kullanın. scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın. Azure İletişim Hizmeti kimliğinin communicationUser dize gösterimini temel alan yeni bir örneğini de oluşturabilirsiniz.

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

Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir. expiresOn özelliği, erişim belirtecinin ömrünü gösterir.

Özel belirteç süre sonu zamanı ayarlama

Varsayılan belirteç süre sonu 24 saattir (1440 dakika), ancak isteğe bağlı parametresine tokenExpiresInMinutes60 dakika ile 1440 dakika arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için bir iletişim oturumunun beklenen tipik uzunluğunu belirtmeniz önerilir.

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

Bir yöntem çağrısında kimlik oluşturma ve belirteç verme

İletişim Hizmetleri kimliği oluşturmak ve bunun için aynı anda bir erişim belirteci vermek için yöntemini kullanabilirsiniz createUserAndToken . scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Yine kapsamıyla voip oluşturursunuz.

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

Erişim belirtecini yenileme

Belirteçlerin süresi doldukçe bunları düzenli aralıklarla yenilemeniz gerekir. Yenileme, belirteçleri vermek için kullanılan kimlikle yeniden çağırmak getToken kolaydır. Ayrıca yenilenen belirteçlerin de sağlanması scopes gerekir.

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

Bazen erişim belirtecini iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. yöntemi, revokeTokens kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.

await identityClient.revokeTokens(identityResponse);

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

Kimlik silme

Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunun yapılması, 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, issue-access-token.js dosyasını içeren dizine gidin ve ardından aşağıdaki node komutu yürüterek uygulamayı çalıştırın:

node ./issue-access-token.js

Uygulamanın çıkışı, 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 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

Önkoşullar

Kodun son hali

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun.

Ortamınızı ayarlama

Yeni Python uygulaması oluşturma

  1. Terminal veya Komut İstemi penceresinde uygulamanız için yeni bir dizin oluşturun ve ardından açın.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Proje kök dizininde issue-access-tokens.py adlı bir dosya oluşturmak 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ıcın tüm kaynak kodunu aşağıdaki bölümlerde bu dosyaya ekleyeceksiniz.

    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)
    

paketini yükleyin

Uygulama dizinindeyken komutunu kullanarak Python için Azure İletişim Hizmetleri Kimlik SDK'sını pip install yükleyin.

pip install azure-communication-identity

İstemcinin kimliğini doğrulama

bağlantı dizesi ile bir CommunicationIdentityClient örneği oluşturma. Bloğuna try eklediğiniz aşağıdaki kod, adlı COMMUNICATION_SERVICES_CONNECTION_STRINGbir ortam değişkeninden kaynağın bağlantı dizesi alır.

Daha fazla bilgi için İletişim Hizmetleri kaynaklarını oluşturma ve yönetme bölümünün "bağlantı dizesi depolama" bölümüne bakın.

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

Alternatif olarak, zaten bir Microsoft Entra uygulaması ayarladıysanız Microsoft Entra Kimliğini kullanarak kimlik doğrulaması 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 İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar. dizininde create_user benzersiz Idbir ile yeni bir giriş oluşturmak için yöntemini kullanın. Kimlik daha sonra erişim belirteçleri verme için 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 eşleme ile depolayın (örneğin, uygulama sunucusu veritabanınızda depolayarak).

Erişim belirteci verme

get_token İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek için yöntemini kullanın. scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın. Ayrıca Azure İletişim Hizmeti kimliğinin dize gösterimini temel alan yeni bir parametre CommunicationUserIdentifier örneği de oluşturabilirsiniz.

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

Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir. expires_on Yanıt özelliği erişim belirtecinin ömrünü belirtir.

Özel belirteç süre sonu zamanı ayarlama

Varsayılan belirtecin süre sonu 24 saattir, ancak isteğe bağlı parametresine token_expires_inbir saat ile 24 saat arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için bir iletişim oturumunun beklenen tipik uzunluğunu belirtmeniz önerilir.

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

Kimlik oluşturma ve aynı istekte erişim belirteci verme

İletişim Hizmetleri kimliği oluşturmak ve bunun için aynı anda bir erişim belirteci vermek için yöntemini kullanabilirsiniz create_user_and_token . scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Azure İletişim Hizmetleri için kimlik doğrulaması bölümünde desteklenen eylemlerin listesine bakın.

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

Erişim belirtecini yenileme

Erişim belirtecini CommunicationUserIdentifier yenilemek için nesnesini kullanarak mevcut kimliği geçirerek bir belirteci yeniden gönderin:

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

Erişim belirteçlerini iptal etme

Bazen bir erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. yöntemi, revoke_tokens kimliğe verilen tüm etkin erişim belirteçlerini geçersiz kılır.

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

Kimlik silme

Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunun yapılması, kimlikle 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 isteminden, issue-access-tokens.py dosyasını içeren dizine gidin ve ardından aşağıdaki python komutu yürüterek uygulamayı çalıştırın.

python ./issue-access-tokens.py

Uygulamanın çıkışı, 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 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

Önkoşullar

Kodun son hali

GitHub'da bu hızlı başlangıcın son halini alan kodu bulun.

Ortamınızı ayarlama

Yeni java uygulaması oluşturma

Terminalde veya Komut İstemi penceresinde, Java uygulamanızı oluşturmak istediğiniz dizine gidin. maven-archetype-quickstart şablonundan bir Java projesi oluşturmak için aşağıdaki kodu çalıştırın:

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

Görevin ile aynı ada artifactIdsahip bir dizin oluşturduğunu generate göreceksiniz. Bu dizin altında src /main/java dizini proje kaynak kodunu, src/test/java dizini test kaynağını içerir ve pom.xml dosyası projenin Proje Nesne Modeli veya POM'sidir. Bu dosya proje yapılandırma parametreleri için kullanılır.

İletişim Hizmetleri paketlerini yükleme

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

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

Bu kod Maven'a, daha sonra kullanacağınız İletişim Hizmetleri Kimlik SDK'sını yüklemesini ister.

Uygulama çerçevesini ayarlama

Proje dizininde aşağıdakileri yapın:

  1. /src/main/java/com/communication/quickstart dizinine gidin.
  2. App.java dosyasını düzenleyicinizde açın.
  3. deyimini System.out.println("Hello world!"); değiştirin.
  4. Yönergeleri ekleyin import .

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

Kaynağınızın erişim anahtarı ve uç noktasıyla örneği CommunicationIdentityClient oluşturun. Daha fazla bilgi için İletişim Hizmetleri kaynaklarını oluşturma ve yönetme bölümünün "bağlantı dizesi depolama" bölümüne bakın.

Ayrıca, istemcisini arabirimini uygulayan com.azure.core.http.HttpClient herhangi bir özel HTTP istemcisiyle başlatabilirsiniz.

App.java dosyasında yöntemine main aşağıdaki kodu ekleyin:

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

Uç nokta ve erişim anahtarı sağlamak yerine yöntemini kullanarak connectionString() bağlantı dizesi tamamını sağlayabilirsiniz.

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

Zaten bir Microsoft Entra uygulaması ayarladıysanız, Microsoft Entra Id kullanarak 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 İletişim Hizmetleri bu amaçla basit bir kimlik dizini tutar. dizininde createUser benzersiz Idbir ile yeni bir giriş oluşturmak için yöntemini kullanın.

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

Oluşturulan kimlik daha sonra erişim belirteçleri oluşturmak için gereklidir. Alınan kimliği uygulamanızın kullanıcılarına eşleme ile depolayın (örneğin, uygulama sunucusu veritabanınızda depolayarak).

Erişim belirteci verme

getToken İletişim Hizmetleri kimliğiniz için bir erişim belirteci vermek için yöntemini kullanın. scopes parametresi bir erişim belirteci izinleri ve rolleri kümesini tanımlar. Daha fazla bilgi için Kimlik modelinde desteklenen eylemlerin listesine bakın.

Aşağıdaki kodda, bir belirteç almak için önceki adımda oluşturduğunuz kullanıcı değişkenini kullanın.

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

Erişim belirteçleri, yeniden verilmesi gereken kısa süreli kimlik bilgileridir. Bunu yapmamak, uygulama kullanıcılarınızın deneyiminin kesintiye uğramasına neden olabilir. expiresAt özelliği, erişim belirtecinin ömrünü gösterir.

Özel belirteç süre sonu zamanı ayarlama

Varsayılan belirtecin süre sonu 24 saattir, ancak isteğe bağlı parametresine tokenExpiresInbir saat ile 24 saat arasında bir değer sağlayarak bunu yapılandırabilirsiniz. Yeni bir belirteç istediğinizde, belirteç süre sonu süresi için bir iletişim oturumunun beklenen tipik uzunluğunu belirtmeniz önerilir.

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

Kimlik oluşturma ve bir istekte belirteç verme

Alternatif olarak, dizinde benzersiz Id bir giriş oluşturmak ve aynı anda bir erişim belirteci vermek için 'createUserAndToken' yöntemini kullanabilirsiniz.

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

Erişim belirtecini yenileme

Erişim belirtecini CommunicationUserIdentifier yenilemek için nesnesini kullanarak yeniden gönderin:

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

Erişim belirtecini iptal etme

Bazen bir erişim belirtecini açıkça iptal etmeniz gerekebilir. Örneğin, uygulama kullanıcıları hizmetinizde kimlik doğrulaması yapmak için kullandıkları parolayı değiştirdiğinde bunu yaparsınız. yöntemi, revokeTokens belirli bir kullanıcı için tüm etkin erişim belirteçlerini geçersiz hale döndürür. Aşağıdaki kodda, daha önce oluşturulan kullanıcıyı kullanabilirsiniz.

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

Kimlik silme

Bir kimliği sildiğinizde, tüm etkin erişim belirteçlerini iptal eder ve kimlik için erişim belirteçlerinin daha fazla verilmesini engellersiniz. Bunun yapılması, kimlikle 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

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

mvn compile

Ardından paketi derleyin:

mvn package

Uygulamayı yürütmek için aşağıdaki mvn komutu çalıştırın:

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

Uygulamanın çıkışı, 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 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

Önkoşullar

Erişim belirteçlerini oluşturma

Azure portalında İletişim Hizmetleri kaynağınızdaki Kimlikler ve Kullanıcı Erişim Belirteçleri dikey penceresine gidin.

Erişim belirteçlerinin kapsamını seçin. Hiçbiri, bir veya birden çok seçeneğini belirleyebilirsiniz. Generate (Oluştur) düğmesine tıklayın.

Kimlik ve erişim belirteçlerinin kapsamlarını seçin.

Bir kimlik ve buna karşılık gelen kullanıcı erişim belirtecinin oluşturulduğunu görürsünüz. Bu dizeleri kopyalayıp örnek uygulamalarda ve diğer test senaryolarında kullanabilirsiniz.

Kimlik ve erişim belirteçleri oluşturulur ve son kullanma tarihini gösterir.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı veya ücretsiz bir Azure hesabı oluşturun.

  • Etkin bir Azure İletişim Hizmetleri kaynağı veya bir İletişim Hizmetleri kaynağı oluşturun.

  • Etkin bir Azure Logic Apps kaynağı (mantıksal uygulama) veya kullanmak istediğiniz tetikleyiciyle bir Tüketim mantıksal uygulaması iş akışı oluşturun. Şu anda Azure İletişim Hizmetleri Identity bağlayıcısı yalnızca eylemler sağladığından mantıksal uygulamanız en azından bir tetikleyici gerektirir.

Kullanıcı oluşturma

Azure İletişim Hizmetleri Kimlik bağlayıcısını kullanarak iş akışınıza yeni bir adım ekleyin. Power Automate akışınızın düzenleme modunda açılmasıyla Power Automate'te bu adımları izleyin.

  1. Tasarımcıda, yeni eylemi eklemek istediğiniz adımın altında Yeni adım'ı seçin. Alternatif olarak, adımlar arasına yeni eylem eklemek için işaretçinizi bu adımlar arasındaki oka getirin, artı işaretini (+) seçin ve Eylem ekle'yi seçin.

  2. İşlem seçin arama kutusuna İletişim Hizmetleri Kimliği girin. Eylemler listesinden Kullanıcı oluştur'u seçin.

    Azure İletişim Hizmetleri Kimlik bağlayıcısı Kullanıcı oluştur eylemini gösteren ekran görüntüsü.

  3. Bağlan ion Dizesini sağlayın. Bu, Microsoft Azure'da, Azure İletişim Hizmeti Kaynağınızın içindeki Sol menüdeki > Anahtarlar seçeneğinde Bağlan Dize'de bulunabilir

    Azure İletişim Hizmetleri Kaynağındaki Anahtarlar sayfasını gösteren ekran görüntüsü.

  4. Bağlan Ion Adı sağlayın

  5. Oluştur seçeneğine tıklayın

    Bu eylem, İletişim Hizmetleri kullanıcı kimliği olan bir Kullanıcı Kimliği verir. Buna ek olarak, "Gelişmiş seçenekleri göster" seçeneğine tıklayıp Belirteç Kapsamı'nı seçerseniz, eylem ayrıca bir erişim belirteci ve belirtilen kapsama sahip süre sonu çıkışı da sağlar.

    Azure İletişim Hizmetleri bağlayıcısı Kullanıcı oluştur eylemini gösteren ekran görüntüsü.

    Azure İletişim Hizmetleri bağlayıcısı Kullanıcı eylemi oluşturma gelişmiş seçeneklerini gösteren ekran görüntüsü.

Kullanıcı erişim belirteci verme

İletişim Hizmetleri kimliğiniz olduktan sonra, erişim belirteci vermek için Kullanıcı erişim belirteci verme eylemini kullanabilirsiniz. Aşağıdaki adımlar size nasıl yapılacağını gösterir:

  1. Yeni bir eylem ekleyin ve arama kutusuna İletişim Hizmetleri Kimliği yazın. Eylemler listesinden Kullanıcı erişim belirteci ver'i seçin.

    Azure İletişim Hizmetleri Kimlik bağlayıcısı Sorun erişim belirteci eylemini gösteren ekran görüntüsü.

  2. Ardından, önceki Kullanıcı oluşturma adımındaki Kullanıcı Kimliği çıkışını kullanabilirsiniz.

  3. Belirteç kapsamını belirtin: VoIP veya sohbet. Belirteçler ve kimlik doğrulaması hakkında daha fazla bilgi edinin.

    belirteç kapsamını belirten Azure İletişim Hizmetleri Kimlik bağlayıcısı Erişim belirteci sorunu eylemini gösteren ekran görüntüsü.

Bu, bir erişim belirteci ve belirtilen kapsamla süre sonu döndürür.

Kullanıcı erişim belirteçlerini iptal etme

İletişim Hizmetleri kimliğiniz olduktan sonra, erişim belirtecini iptal etmek için Kullanıcı erişim belirteci verme eylemini kullanabilirsiniz. Aşağıdaki adımlar size nasıl yapılacağını gösterir:

  1. Yeni bir eylem ekleyin ve arama kutusuna İletişim Hizmetleri Kimliği yazın. Eylemler listesinden Kullanıcı erişim belirteçlerini iptal et'i seçin.

    Azure İletişim Hizmetleri Kimlik bağlayıcısı Erişim belirtecini iptal et eylemini gösteren ekran görüntüsü.

  2. Kullanıcı Kimliğini belirtin

    Azure İletişim Hizmetleri Kimlik bağlayıcısı Erişim belirtecini iptal et eylem girişini gösteren ekran görüntüsü.

Bu işlem, belirtilen kullanıcı için tüm kullanıcı erişim belirteçlerini iptal eder, bu eylem için çıkış yoktur.

Kullanıcı silme

İletişim Hizmetleri kimliğiniz olduktan sonra, erişim belirtecini silmek için Kullanıcı erişim belirteci verme eylemini kullanabilirsiniz. Aşağıdaki adımlar size nasıl yapılacağını gösterir:

  1. Yeni bir eylem ekleyin ve arama kutusuna İletişim Hizmetleri Kimliği yazın. Eylemler listesinden Kullanıcı sil'i seçin.

    Azure İletişim Hizmetleri Kimlik bağlayıcısını sil kullanıcı eylemini gösteren ekran görüntüsü.

  2. Kullanıcı Kimliğini belirtin

    Azure İletişim Hizmetleri Kimlik bağlayıcısı Kullanıcı eylemi girişini sil'i gösteren ekran görüntüsü.

    Bu işlem kullanıcıyı kaldırır ve belirtilen kullanıcı için tüm kullanıcı erişim belirteçlerini iptal eder, bu eylem için çıkış yoktur.

Mantıksal uygulamanızı test edin

İş akışınızı el ile başlatmak için tasarımcı araç çubuğunda Çalıştır'ı seçin. İş akışı bir kullanıcı oluşturmalı, bu kullanıcı için bir erişim belirteci vermeli, ardından bu belirteci kaldırmalı ve kullanıcıyı silmelidir. Daha fazla bilgi için iş akışınızı çalıştırmayı gözden geçirin. İş akışı başarıyla çalıştırıldıktan sonra bu eylemlerin çıkışlarını de kontrol edebilirsiniz.

İzleme ve ölçümler için kimlik kullanma

Kullanıcı kimliği, Azure İzleyici aracılığıyla toplanan günlükler ve ölçümler için birincil anahtar görevi görmesine yöneliktir. Örneğin, kullanıcının tüm çağrılarını görüntülemek için, kimlik doğrulamanızı belirli bir Azure İletişim Hizmetleri kimliği (veya kimlikleri) tek bir kullanıcıyla eşleştirecek şekilde ayarlayabilirsiniz.

Kimlik doğrulama kavramları hakkında daha fazla bilgi edinin, log analytics aracılığıyla tanılamayı arayın ve kullanabileceğiniz ölçümler.

Kaynakları temizleme

İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak için kaynağı veya kaynak grubunu silin. Bir kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler. Daha fazla bilgi için İletişim Hizmetleri kaynaklarını oluşturma ve yönetme makalesinin "Kaynakları temizleme" bölümüne bakın.

Mantıksal uygulama iş akışınızı ve ilgili kaynakları temizlemek için Azure Logic Apps kaynaklarını temizlemeyi gözden geçirin.

Sonraki adımlar

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

  • Erişim belirteçleri verme
  • Kimlikleri yönetme

Ayrıca şunları da yapmak isteyebilirsiniz:

Sonraki adımlar

Bu hızlı başlangıçta, Azure İletişim Hizmetleri Identity bağlayıcısını kullanarak kullanıcı oluşturmayı, kullanıcıyı silmeyi, kullanıcıya erişim belirteci verme ve kullanıcı erişim belirtecini kaldırmayı öğrendiniz. Daha fazla bilgi edinmek için Azure İletişim Hizmetleri Kimlik Bağlan veya belgelerine bakın.

Belirteçlerin diğer bağlayıcılar tarafından nasıl kullanıldığını görmek için Azure İletişim Hizmetleri kullanarak Power Automate'ten nasıl sohbet iletisi gönderebilirsiniz?

Azure İletişim Hizmetleri E-posta bağlayıcısını kullanarak e-posta gönderme hakkında daha fazla bilgi edinmek için Power Automate'te Azure İletişim Hizmetleri ile e-posta iletisi gönderme seçeneğini işaretleyin.