Краткое руководство: создание маркеров доступа и управление ими

Маркеры доступа позволяют Службы коммуникации Azure пакетам SDK проходить проверку подлинности непосредственно в Службы коммуникации Azure в качестве определенного удостоверения. Вам потребуется создать маркеры доступа, если вы хотите, чтобы пользователи присоединялись к потоку звонков или чата в приложении.

В этом кратком руководстве вы узнаете, как использовать пакеты SDK Службы коммуникации Azure для создания удостоверений и управления маркерами доступа. Для рабочих вариантов использования рекомендуется создавать маркеры доступа на стороне сервера.

Необходимые компоненты

Установка

Добавление расширения

Добавьте расширение Службы коммуникации Azure для Azure CLI с помощью az extension команды.

az extension add --name communication

Вход в Azure CLI

Вам потребуется войти в Azure CLI. Вы можете выполнить команду из az login терминала и предоставить учетные данные.

(Необязательно) Использование операций идентификации Azure CLI без передачи строка подключения

Можно настроить AZURE_COMMUNICATION_CONNECTION_STRING переменную среды для использования операций идентификации Azure CLI без необходимости --connection_string передавать строка подключения. Чтобы настроить переменную среды, откройте окно консоли и выберите операционную систему на следующих вкладках. Замените <yourConnectionString> фактической строкой подключения.

Откройте окно консоли и введите следующую команду:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

После добавления переменной среды может потребоваться перезапустить все запущенные приложения, которым может понадобиться считать переменную среды, в том числе окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Хранение маркера доступа в переменной среды

Чтобы настроить переменную среды, откройте окно консоли и выберите операционную систему на следующих вкладках. Замените <yourAccessToken> фактическим маркером доступа.

Откройте окно консоли и введите следующую команду:

setx AZURE_COMMUNICATION_ACCESS_TOKEN "<yourAccessToken>"

После добавления переменной среды может потребоваться перезапустить все запущенные приложения, которым может понадобиться считать переменную среды, в том числе окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Операции

Создание удостоверения

Чтобы создать маркеры доступа, вам потребуется удостоверение. Службы коммуникации Azure позволяют использовать упрощенный каталог удостоверений. user create Используйте команду, чтобы создать новую запись в каталоге с уникальнымId. Удостоверение требуется позже для выдачи маркеров доступа.

az communication identity user create --connection-string "<yourConnectionString>"
  • Замените <yourConnectionString> строка подключения.

Создание удостоверения и выдача маркера доступа в том же запросе

Выполните следующую команду, чтобы создать удостоверение Служб коммуникации и выдать маркер доступа для него одновременно. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий проверки подлинности в Службы коммуникации Azure.

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

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.

Проблема маркера доступа

Выполните следующую команду, чтобы выдать маркер доступа для удостоверения служб коммуникации. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий проверки подлинности в Службы коммуникации Azure.

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

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.
  • Замените <userId> идентификатором пользователя.

Маркеры доступа — это недолговечные учетные данные, которые необходимо выдавать повторно. Это может привести к нарушению работы пользователей приложения. Свойство ответа expires_on указывает время существования маркера доступа.

Проблема маркера доступа с несколькими область

Выполните следующую команду, чтобы выдать маркер доступа с несколькими область для удостоверения служб коммуникации. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий в модели удостоверений.

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

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.
  • Замените <userId> идентификатором пользователя.

Маркеры доступа — это недолговечные учетные данные, которые необходимо выдавать повторно. Это может привести к нарушению работы пользователей приложения. Свойство ответа expires_on указывает время существования маркера доступа.

Exchange a Microsoft Entra access token of the Teams User for a Communication Identity access token

token get-for-teams-user Используйте команду для выдачи маркера доступа для пользователя Teams, который можно использовать с пакетами SDK Службы коммуникации Azure.

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

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.
  • Замените <yourAadUser> идентификатором пользователя Microsoft Entra.
  • Замените <yourAadApplication> идентификатор приложения Microsoft Entra.
  • Замените <yourAadToken> маркер доступа Microsoft Entra.

Отмена маркеров доступа

Иногда может потребоваться явно отозвать маркер доступа. Например, при изменении пароля, используемого пользователями приложений для проверки подлинности в службе. Команда token revoke отменяет все активные маркеры доступа, выданные удостоверению.

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

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.
  • Замените <userId> идентификатором пользователя.

Удаление удостоверения

При удалении удостоверения вы отменяете все активные маркеры доступа и предотвращаете дальнейшую выдачу маркеров доступа для удостоверения. Это также удаляет все сохраняемое содержимое, связанное с удостоверением.

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

Сделайте эту замену в коде:

  • Замените <yourConnectionString> строка подключения.
  • Замените <userId> идентификатором пользователя.

Необходимые компоненты

Окончательный код

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Настройка среды

Создание нового приложения C#

В окне командной строки, например cmd, PowerShell или Bash, выполните dotnet new команду, чтобы создать консольное приложение с именем AccessTokensQuickstart. Эта команда создает простой проект "Hello World" на языке C# с одним файлом исходного кода Program.cs.

dotnet new console -o AccessTokensQuickstart

Измените каталог на только что созданную папку приложения и выполните команду dotnet build, чтобы скомпилировать приложение.

cd AccessTokensQuickstart
dotnet build

Должен отображаться простой вывод Hello World. Если это так, ваша настройка работает правильно, и вы можете приступить к написанию кода Службы коммуникации Azure.

Установка пакета

Оставаясь в каталоге приложения, установите пакет библиотеки удостоверений Служб коммуникации Azure для .NET с помощью команды dotnet add package.

dotnet add package Azure.Communication.Identity

Настройка платформы приложения

В каталоге проекта выполните следующие действия.

  1. Откройте файл Program.cs в текстовом редакторе.
  2. Добавьте директиву using для включения Azure.Communication.Identity пространства имен.
  3. Обновите объявление метода Main, чтобы он поддерживал асинхронный код.

Чтобы начать, выполните следующий код:

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

аутентификация клиента;

Инициализация CommunicationIdentityClient с помощью строка подключения. Следующий код, добавляемый в Main метод, извлекает строка подключения ресурса из переменной среды с именемCOMMUNICATION_SERVICES_CONNECTION_STRING.

Дополнительные сведения см. в разделе "Сохранить строка подключения" в разделе "Создание ресурсов служб коммуникации и управление ими".

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

Кроме того, можно разделить конечную точку и ключ доступа, выполнив следующий код:

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

Если вы уже настроили приложение Microsoft Entra, вы можете пройти проверку подлинности с помощью идентификатора Microsoft Entra.

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

Создание удостоверения

Чтобы создать маркеры доступа, вам потребуется удостоверение. Службы коммуникации Azure позволяют использовать упрощенный каталог удостоверений. Чтобы создать новую запись в каталоге с уникальным идентификатором (Id), используйте метод createUser. Удостоверение требуется позже для выдачи маркеров доступа.

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

Сохраните полученное удостоверение с сопоставлением пользователей приложения (например, сохраняя его в базе данных сервера приложений).

Выдача маркера доступа

После того как у вас есть удостоверение служб коммуникации, используйте GetToken метод для выдачи маркера доступа. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий в модели удостоверений. Можно также создать новый экземпляр communicationUser на основе строкового представления удостоверения Службы коммуникации Azure.

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

Маркеры доступа — это недолговечные учетные данные, которые необходимо выдавать повторно. Это может привести к нарушению работы пользователей приложения. Свойство expiresOn обозначает время существования маркера доступа.

Установка срока действия пользовательского маркера

Срок действия маркера по умолчанию составляет 24 часа, но его можно настроить, предоставив значение от часа до 24 часов необязательному параметру tokenExpiresIn. При запросе нового маркера рекомендуется указать ожидаемую типичную длину сеанса связи в течение срока действия маркера.

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

Создание удостоверения и выдача маркера в том же запросе

Чтобы создать удостоверение Служб коммуникации и одновременно выдать маркер доступа для него, можно воспользоваться методом CreateUserAndTokenAsync. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий проверки подлинности в Службы коммуникации Azure.

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

Обновление маркера доступа

Чтобы обновить маркер доступа, передайте экземпляр объекта CommunicationUserIdentifier в метод GetTokenAsync. Если вы сохранили значение Id и вам нужно создать новый объект CommunicationUserIdentifier, для этого можно передать сохраненное значение Id в конструктор CommunicationUserIdentifier следующим образом:

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

Отмена маркеров доступа

Иногда может потребоваться явно отозвать маркер доступа. Например, при изменении пароля, используемого пользователями приложений для проверки подлинности в службе. Метод RevokeTokensAsync отменяет все активные маркеры доступа, выданные удостоверению.

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

Удаление удостоверения

При удалении удостоверения вы отменяете все активные маркеры доступа и предотвращаете дальнейшую выдачу маркеров доступа для удостоверения. Это также удаляет все сохраняемое содержимое, связанное с удостоверением.

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

Выполнение кода

Завершив создание маркера доступа, вы можете запустить приложение из каталога приложения с помощью dotnet run команды.

dotnet run

Выходные данные приложения описывают каждое завершенное действие:

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

Необходимые компоненты

Окончательный код

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Настройка среды

Создание нового приложения Node.js

В окне терминала или командной строки создайте новый каталог для приложения, а затем откройте его.

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

Воспользуйтесь командой npm init -y, чтобы создать файл package.json с параметрами по умолчанию.

npm init -y

Установка пакета

Используйте команду npm install, чтобы установить пакет SDK для Служб коммуникации Azure для удостоверений для JavaScript.

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

Параметр --save указывает библиотеку как зависимость в файле пакета package.json.

Настройка платформы приложения

  1. Создайте файл с именем issue-access-token.js в каталоге проекта и добавьте следующий код:

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

аутентификация клиента;

Создайте CommunicationIdentityClient экземпляр строка подключения. Следующий код, добавляемый в Main метод, извлекает строка подключения ресурса из переменной среды с именемCOMMUNICATION_SERVICES_CONNECTION_STRING.

Дополнительные сведения см. в разделе "Сохранить строка подключения" в разделе "Создание ресурсов служб коммуникации и управление ими".

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

Кроме того, можно разделить конечную точку и ключ доступа, выполнив следующий код:

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

Если вы уже настроили приложение Microsoft Entra, вы можете пройти проверку подлинности с помощью идентификатора Microsoft Entra.

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

Создание удостоверения

Чтобы создать маркеры доступа, вам потребуется удостоверение. Службы коммуникации Azure позволяют использовать упрощенный каталог удостоверений. Чтобы создать новую запись в каталоге с уникальным идентификатором (Id), используйте метод createUser. Удостоверение требуется позже для выдачи маркеров доступа.

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

Сохраните полученное удостоверение с сопоставлением пользователей приложения (например, сохраняя его в базе данных сервера приложений).

Выдача маркера доступа

getToken Используйте метод для выдачи маркера доступа для удостоверения служб коммуникации. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий в модели удостоверений. Вы также можете создать новый экземпляр communicationUser на основе строкового представления удостоверения Службы коммуникации Azure.

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

Маркеры доступа — это недолговечные учетные данные, которые необходимо выдавать повторно. Это может привести к нарушению работы пользователей приложения. Свойство expiresOn обозначает время существования маркера доступа.

Установка срока действия пользовательского маркера

Срок действия маркера по умолчанию составляет 24 часа (1440 минут), но его можно настроить, предоставив значение от 60 минут до 1440 минут необязательному параметру tokenExpiresInMinutes. При запросе нового маркера рекомендуется указать ожидаемую типичную длину сеанса связи в течение срока действия маркера.

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

Создание удостоверения и выдача маркера в одном вызове метода

Чтобы создать удостоверение Служб коммуникации и одновременно выдать маркер доступа для него, можно воспользоваться методом createUserAndToken. Параметр scopes определяет набор разрешений маркера доступа и ролей. Снова создайте его с помощью voip область.

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

// Get the token, its expiration date, and the user from the response
const { token, expiresOn, user } = identityTokenResponse;
console.log(`\nCreated an identity with ID: ${user.communicationUserId}`);
console.log(`\nIssued an access token with 'voip' scope that expires at ${expiresOn}:`);
console.log(token);

Обновление маркера доступа

Маркеры необходимо периодически обновлять по мере истечения срока их действия. Для обновления достаточно снова вызвать метод getToken с тем же идентификатором, который использовался для выдачи маркеров. Также необходимо указать scopes для обновляемых маркеров.

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

Отмена маркеров доступа

Иногда может потребоваться отозвать маркер доступа. Например, при изменении пароля, используемого пользователями приложений для проверки подлинности в службе. Метод revokeTokens отменяет все активные маркеры доступа, выданные удостоверению.

await identityClient.revokeTokens(identityResponse);

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

Удаление удостоверения

При удалении удостоверения вы отменяете все активные маркеры доступа и предотвращаете дальнейшую выдачу маркеров доступа для удостоверения. Это также удаляет все сохраняемое содержимое, связанное с удостоверением.

await identityClient.deleteUser(identityResponse);

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

Выполнение кода

В командной строке консоли перейдите в каталог, содержащий файл issue-access-token.js , а затем выполните следующую node команду, чтобы запустить приложение:

node ./issue-access-token.js

Выходные данные приложения описывают каждое завершенное действие:

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

Необходимые компоненты

Окончательный код

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Настройка среды

Создание приложения Python

  1. В окне терминала или командной строки создайте новый каталог для приложения, а затем откройте его.

    mkdir access-tokens-quickstart && cd access-tokens-quickstart
    
  2. Используйте текстовый редактор, чтобы создать файл с именем issue-access-tokens.py в корневом каталоге проекта и добавить структуру для программы, включая базовую обработку исключений. Вы добавите весь исходный код для этого краткого руководства в этот файл в следующих разделах.

    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)
    

Установка пакета

Пока вы все еще находитесь в каталоге приложений, установите пакет SDK для удостоверений Службы коммуникации Azure для Python с помощью pip install команды.

pip install azure-communication-identity

аутентификация клиента;

Создайте экземпляр CommunicationIdentityClient с использованием строки подключения. Следующий код, добавляемый в try блок, извлекает строка подключения ресурса из переменной среды с именем COMMUNICATION_SERVICES_CONNECTION_STRING.

Дополнительные сведения см. в разделе "Сохранить строка подключения" в разделе "Создание ресурсов служб коммуникации и управление ими".

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

Кроме того, если вы уже настроили приложение Microsoft Entra, вы можете пройти проверку подлинности с помощью идентификатора Microsoft Entra.

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

Создание удостоверения

Чтобы создать маркеры доступа, вам потребуется удостоверение. Службы коммуникации Azure позволяют использовать упрощенный каталог удостоверений. Чтобы создать новую запись в каталоге с уникальным идентификатором (Id), используйте метод create_user. Удостоверение требуется позже для выдачи маркеров доступа.

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

Сохраните полученное удостоверение с сопоставлением пользователей приложения (например, сохраняя его в базе данных сервера приложений).

Выдача маркера доступа

get_token Используйте метод для выдачи маркера доступа для удостоверения служб коммуникации. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий в модели удостоверений. Можно также создать новый экземпляр параметра CommunicationUserIdentifier на основе строкового представления удостоверения Службы коммуникации Azure.

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

Маркеры доступа — это недолговечные учетные данные, которые необходимо выдавать повторно. Это может привести к нарушению работы пользователей приложения. Свойство ответа expires_on указывает время существования маркера доступа.

Установка срока действия пользовательского маркера

Срок действия маркера по умолчанию составляет 24 часа, но его можно настроить, предоставив значение от часа до 24 часов необязательному параметру token_expires_in. При запросе нового маркера рекомендуется указать ожидаемую типичную длину сеанса связи в течение срока действия маркера.

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

Создание удостоверения и выдача маркера доступа в том же запросе

Чтобы создать удостоверение Служб коммуникации и одновременно выдать маркер доступа для него, можно воспользоваться методом create_user_and_token. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий проверки подлинности в Службы коммуникации Azure.

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

Обновление маркера доступа

Чтобы обновить маркер доступа, используйте объект CommunicationUserIdentifier, чтобы повторно выдать маркер, передав существующее удостоверение:

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

Отмена маркеров доступа

Иногда может потребоваться явно отозвать маркер доступа. Например, при изменении пароля, используемого пользователями приложений для проверки подлинности в службе. Метод revoke_tokens отменяет все активные маркеры доступа, выданные удостоверению.

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

Удаление удостоверения

При удалении удостоверения вы отменяете все активные маркеры доступа и предотвращаете дальнейшую выдачу маркеров доступа для удостоверения. Это также удаляет все сохраняемое содержимое, связанное с удостоверением.

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

Выполнение кода

В командной строке консоли перейдите в каталог, содержащий файл issue-access-tokens.py , а затем выполните следующую python команду, чтобы запустить приложение.

python ./issue-access-tokens.py

Выходные данные приложения описывают каждое завершенное действие:

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

Необходимые компоненты

Окончательный код

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Настройка среды

Создание нового приложения Java

В окне терминала или командной строки перейдите в каталог, в котором нужно создать приложение Java. Чтобы создать проект Java из шаблона maven-archetype-quickstart, выполните следующий код:

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

Вы заметите, что задача создает каталог с тем же именем, что generateartifactIdи . В этом каталоге каталог src/main/java содержит исходный код проекта, каталог src/test/java содержит источник теста, а файл pom.xml является объектной моделью проекта (POM). Этот файл используется для параметров конфигурации проекта.

Установка пакетов служб коммуникации

Откройте файл pom.xml в текстовом редакторе. Добавьте следующий элемент зависимостей в группу зависимостей:

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

Этот код предписывает Maven установить пакет SDK удостоверений служб коммуникации, который будет использоваться позже.

Настройка платформы приложения

В каталоге проекта выполните следующие действия.

  1. Перейдите в каталог /src/main/java/com/communication/quickstart .
  2. Откройте файл App.java в редакторе.
  3. Замените инструкцию System.out.println("Hello world!"); .
  4. Добавьте директивы import.

Используйте следующий код:

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

аутентификация клиента;

Создайте экземпляр CommunicationIdentityClient с помощью ключа доступа и конечной точки ресурса. Дополнительные сведения см. в разделе "Сохранить строка подключения" в разделе "Создание ресурсов служб коммуникации и управление ими".

Кроме того, вы можете инициализировать клиент с помощью любого пользовательского HTTP-клиента, реализующего интерфейс com.azure.core.http.HttpClient.

В файле App.java добавьте следующий код в main метод:

// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
String accessKey = "SECRET";

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

Вместо предоставления конечной точки и ключа доступа можно предоставить все строка подключения с помощью connectionString() метода.

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

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

Если вы уже настроили приложение Microsoft Entra, вы можете пройти проверку подлинности с помощью идентификатора Microsoft Entra.

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

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

Создание удостоверения

Чтобы создать маркеры доступа, вам потребуется удостоверение. Службы коммуникации Azure позволяют использовать упрощенный каталог удостоверений. Чтобы создать новую запись в каталоге с уникальным идентификатором (Id), используйте метод createUser.

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

Созданное удостоверение требуется позже для выдачи маркеров доступа. Сохраните полученное удостоверение с сопоставлением пользователей приложения (например, сохраняя его в базе данных сервера приложений).

Выдача маркера доступа

getToken Используйте метод для выдачи маркера доступа для удостоверения служб коммуникации. Параметр scopes определяет набор разрешений маркера доступа и ролей. Дополнительные сведения см. в списке поддерживаемых действий в модели удостоверений.

В следующем коде используйте пользовательную переменную, созданную на предыдущем шаге, чтобы получить маркер.

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

Маркеры доступа — это недолговечные учетные данные, которые необходимо выдавать повторно. Это может привести к нарушению работы пользователей приложения. Свойство expiresAt обозначает время существования маркера доступа.

Установка срока действия пользовательского маркера

Срок действия маркера по умолчанию составляет 24 часа, но его можно настроить, предоставив значение от часа до 24 часов необязательному параметру tokenExpiresIn. При запросе нового маркера рекомендуется указать ожидаемую типичную длину сеанса связи в течение срока действия маркера.

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

Создание удостоверения и выдача маркера в одном запросе

Кроме того, можно использовать метод createUserAndToken для создания новой записи в каталоге с уникальным Id и выдачой маркера доступа одновременно.

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

Обновление маркера доступа

Чтобы обновить маркер доступа, используйте CommunicationUserIdentifier объект для повторной отправки:

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

Отзыв маркера доступа

Иногда может потребоваться явно отозвать маркер доступа. Например, при изменении пароля, используемого пользователями приложений для проверки подлинности в службе. Метод revokeTokens делает недействительными все активные маркеры доступа для конкретного пользователя. В следующем коде можно использовать ранее созданного пользователя.

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

Удаление удостоверения

При удалении удостоверения вы отменяете все активные маркеры доступа и предотвращаете дальнейшую выдачу маркеров доступа для удостоверения. Это также удаляет все сохраняемое содержимое, связанное с удостоверением.

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

Выполнение кода

Перейдите в каталог, содержащий файл pom.xml , а затем скомпилируйте проект с помощью следующей mvn команды:

mvn compile

Затем создайте пакет:

mvn package

Выполните следующую mvn команду, чтобы выполнить приложение:

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

Выходные данные приложения описывают каждое завершенное действие:

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

Необходимые компоненты

Создание маркеров доступа

На портале Azure перейдите к колонке Удостоверения и маркеры доступа пользователей в ресурсе Служб коммуникации.

Выберите область действия маркеров доступа. Вы можете выбрать одну или несколько областей либо не выбирать ее вообще. Щелкните Создать.

Выберите области действия удостоверений и маркеров доступа.

Будут созданы удостоверение и соответствующий маркер доступа пользователя. Вы можете скопировать эти строки и использовать их в примерах приложений и других сценариях тестирования.

Создаются удостоверения и маркеры доступа, а также показывается дата окончания срока действия.

Необходимые компоненты

Создать пользователя

Добавьте новый шаг в рабочий процесс с помощью соединителя удостоверений Службы коммуникации Azure, выполните следующие действия в Power Automate с открытым потоком Power Automate в режиме редактирования.

  1. В конструкторе в шаге, где вы хотите добавить новое действие, выберите Создать шаг. Кроме того, чтобы добавить новое действие между шагами, переместите указатель на стрелку между этими шагами, выберите знак плюса (+) и нажмите кнопку "Добавить действие".

  2. В поле поиска по операции введите удостоверение служб коммуникации. В списке действий выберите "Создать пользователя".

    Снимок экрана: действие создания пользователя Службы коммуникации Azure соединителя удостоверений.

  3. Укажите строку Подключение ion. Это можно найти в Microsoft Azure в ресурсе Службы коммуникации Azure в разделе "Ключи" в меню > слева Подключение строка

    Снимок экрана: страница

  4. Укажите имя Подключение ion

  5. Нажмите кнопку Создать.

    Это действие выводит идентификатор пользователя, который является удостоверением пользователя служб коммуникации. Кроме того, если щелкнуть "Показать дополнительные параметры" и выбрать область маркера, действие также выводит маркер доступа и его срок действия с указанным область.

    Снимок экрана: действие создания пользователя Службы коммуникации Azure соединителя.

    Снимок экрана: расширенные параметры Службы коммуникации Azure соединителя Create user action advanced.

Выдача маркера доступа пользователя

После получения удостоверения служб коммуникации можно использовать действие маркера доступа пользователя для выдачи маркера доступа. Ниже показано, как:

  1. Добавьте новое действие и введите удостоверение служб коммуникации в поле поиска. В списке действий выберите "Проблема маркера доступа пользователя".

    Снимок экрана: действие маркера доступа Службы коммуникации Azure соединителя удостоверений.

  2. Затем можно использовать выходные данные идентификатора пользователя из предыдущего шага создания пользователя .

  3. Укажите маркер область: VoIP или чат. Дополнительные сведения о маркерах и проверке подлинности.

    Снимок экрана: действие маркера доступа Службы коммуникации Azure соединителя удостоверений с указанием маркера область.

Это приведет к выводу маркера доступа и его срока действия с указанным область.

Отзыв маркеров доступа пользователей

После получения удостоверения Служб коммуникации можно использовать действие маркера доступа пользователя для отзыва маркера доступа. Ниже показано, как:

  1. Добавьте новое действие и введите удостоверение служб коммуникации в поле поиска. В списке действий выберите "Отозвать маркеры доступа пользователей".

    Снимок экрана: действие маркера доступа Службы коммуникации Azure соединителя удостоверений.

  2. Укажите идентификатор пользователя

    Снимок экрана: входные данные действия маркера доступа Службы коммуникации Azure соединителя удостоверений.

Это приведет к отмене всех маркеров доступа пользователей для указанного пользователя, для этого действия нет выходных данных.

Удаление пользователя

После получения удостоверения служб коммуникации можно использовать действие маркера доступа пользователя для удаления маркера доступа. Ниже показано, как:

  1. Добавьте новое действие и введите удостоверение служб коммуникации в поле поиска. В списке действий выберите "Удалить пользователя".

    Снимок экрана: действие удаления пользователя Службы коммуникации Azure соединителя удостоверений.

  2. Укажите идентификатор пользователя

    Снимок экрана: входные данные действия пользователя Службы коммуникации Azure соединителя удостоверений.

    Это приведет к удалению пользователя и отмене всех маркеров доступа для указанного пользователя, нет выходных данных для этого действия.

Тестирование приложения логики

Чтобы вручную запустить рабочий процесс, на панели инструментов конструктора щелкните Запустить. Рабочий процесс должен создать пользователя, выдать маркер доступа для этого пользователя, а затем удалить его и удалить пользователя. Дополнительные сведения см. в статье о запуске рабочих процессов. Вы можете проверка выходные данные этих действий после успешного выполнения рабочего процесса.

Использование удостоверения для мониторинга и метрик

Идентификатор пользователя предназначен для использования в качестве первичного ключа для журналов и метрик, собираемых с помощью Azure Monitor. Чтобы просмотреть все вызовы пользователя, например, можно настроить проверку подлинности таким образом, чтобы сопоставить определенное удостоверение Службы коммуникации Azure (или удостоверения) с одним пользователем.

Узнайте больше о понятиях проверки подлинности, вызове диагностика с помощью log analytics и метрик, доступных для вас.

Очистка ресурсов

Чтобы очистить и удалить подписку на Службы коммуникации, удалите ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все другие ресурсы, связанные с ним. Дополнительные сведения см. в разделе "Очистка ресурсов" в разделе "Создание ресурсов служб коммуникации и управление ими".

Чтобы очистить рабочий процесс приложения логики и связанные ресурсы, ознакомьтесь с тем, как очистить ресурсы Azure Logic Apps.

Следующие шаги

Из этого руководства вы узнали, как выполнить следующие действия:

  • Выпуск маркеров доступа
  • Управление идентификаторами

Кроме того, вам может понадобиться следующее:

Следующие шаги

В этом кратком руководстве вы узнали, как создать пользователя, удалить пользователя, выдать пользователю маркер доступа и удалить маркер доступа пользователей с помощью соединителя удостоверения Службы коммуникации Azure. Дополнительные сведения проверка документации Службы коммуникации Azure Identity Подключение or.

Чтобы узнать, как маркеры используются другими соединителями, проверка, как отправить сообщение чата из Power Automate с помощью Службы коммуникации Azure.

Дополнительные сведения о отправке сообщения электронной почты с помощью соединителя электронной почты Службы коммуникации Azure проверка отправке сообщения электронной почты в Power Automate с помощью Службы коммуникации Azure.