Поделиться через


Краткое руководство: Аутентификация с помощью идентификатора Microsoft Entra

Начало работы со службами коммуникации Azure с помощью идентификатора Microsoft Entra. Пакеты SDK для идентификации и SMS служб коммуникации поддерживают проверку подлинности Microsoft Entra.

В этом кратком руководстве показано, как авторизовать доступ к пакетам SDK для удостоверений и SMS из среды Azure, поддерживающей Active Directory. В нем также описывается, как протестировать код в среде разработки, создав учетную запись службы для вашей работы.

Предпосылки

Дополнительные предварительные требования

Настройка

При использовании Active Directory для других ресурсов Azure следует использовать управляемые удостоверения. Чтобы узнать, как включить управляемые удостоверения для ресурсов Azure, ознакомьтесь с одной из следующих статей:

Проверка подлинности зарегистрированного приложения в среде разработки

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

Создание зарегистрированного приложения Microsoft Entra

Чтобы создать зарегистрированное приложение из Azure CLI, необходимо войти в учетную запись Azure, в которой будут выполняться операции. Для этого можно использовать az login команду и ввести учетные данные в браузере. После входа в учетную запись Azure из интерфейса командной строки можно вызвать az ad sp create-for-rbac команду, чтобы создать зарегистрированное приложение и учетную запись службы.

В следующем примере azure CLI используется для создания нового зарегистрированного приложения:

az ad sp create-for-rbac --name <application-name> --role Contributor --scopes /subscriptions/<subscription-id>

Команда az ad sp create-for-rbac вернет список свойств субъекта-службы в формате JSON. Скопируйте эти значения, чтобы использовать их для создания необходимых переменных среды на следующем шаге.

{
    "appId": "generated-app-ID",
    "displayName": "service-principal-name",
    "name": "http://service-principal-uri",
    "password": "generated-password",
    "tenant": "tenant-ID"
}

Это важно

Для распространения назначений ролей Azure может потребоваться несколько минут.

Настройка переменных среды

SDK Azure Identity считывает значения из трёх переменных окружения во время выполнения для аутентификации приложения. В следующей таблице описывается значение, заданное для каждой переменной среды.

Переменная среды Ценность
AZURE_CLIENT_ID appId значение из созданного JSON
AZURE_TENANT_ID tenant значение из созданного JSON
AZURE_CLIENT_SECRET password значение из созданного JSON

Это важно

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

После установки этих переменных вы сможете использовать объект DefaultAzureCredential в коде для проверки подлинности в выбранном клиенте службы.

Замечание

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

Обзор

В этом кратком руководстве показано, как использовать управляемые удостоверения посредством основных служб Azure для аутентификации в Службах коммуникации Azure. В нем приведены примеры выдачи маркера доступа для вызовов голосовой связи по IP-адресу (VoIP) и отправки SMS-сообщений.

Настройка

Создайте новое приложение на C#

Цель — создать консольное приложение в C# для запуска кода быстрого запуска. Откройте окно терминала (например, командную строку, PowerShell или Bash) и выполните следующую команду, чтобы создать новое консольное приложение с именем ActiveDirectoryAuthenticationQuickstart:

dotnet new console -o ActiveDirectoryAuthenticationQuickstart

Эта команда создаст простой проект C# Hello World, включая один исходный файл: Program.cs

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

Перейдите к созданной папке приложения и скомпилируйте приложение с помощью dotnet build команды:

cd ActiveDirectoryAuthenticationQuickstart
dotnet build

Установка необходимых пакетов SDK

Чтобы взаимодействовать со службами коммуникации Azure и удостоверением Azure, добавьте в проект следующие пакеты NuGet:

dotnet add package Azure.Communication.Identity
dotnet add package Azure.Communication.Sms
dotnet add package Azure.Identity

Обновление файла Program.cs

Чтобы использовать установленные пакеты azure SDK, включите следующие using директивы в верхней части Program.cs файла:

using Azure.Identity;
using Azure.Communication.Identity;
using Azure.Communication.Sms;
using Azure.Core;
using Azure;

Проверка подлинности с помощью метода DefaultAzureCredential

В этом кратком руководстве мы будем использовать DefaultAzureCredential, который подходит как для разработки, так и для рабочих сред. Объявите экземпляр этой учетной записи на уровне класса в Program.cs:

private DefaultAzureCredential credential = new DefaultAzureCredential();

Выпуск токена с учетными записями служб

Добавьте следующий метод в Program.cs файл. Этот метод использует пакет SDK служб коммуникации Azure для выдачи маркера доступа VoIP:

public AccessToken CreateIdentityAndGetTokenAsync(Uri resourceEndpoint)
{
    var client = new CommunicationIdentityClient(resourceEndpoint, this.credential);
    var result = client.CreateUserAndToken(scopes: new[] { CommunicationTokenScope.VoIP });
    var (user, token) = response.Value;
    return token;
}

Отправка SMS с субъектами-службами

Чтобы продемонстрировать отправку SMS, добавьте в файл следующий метод Program.cs . Этот метод использует пакет SDK служб коммуникации Azure для отправки SMS-сообщения:

public SmsSendResult SendSms(Uri resourceEndpoint, string from, string to, string message)
{
    SmsClient smsClient = new SmsClient(resourceEndpoint, this.credential);
    SmsSendResult sendResult = smsClient.Send(
            from: from,
            to: to,
            message: message,
            new SmsSendOptions(enableDeliveryReport: true) // optional
        );

    return sendResult;
}

Написать метод Main

В методе Main вашего файла Program.cs добавьте код для вызова методов, созданных для выдачи токена и отправки SMS. Метод Main должен выглядеть примерно так:

static void Main(string[] args)
{
    // Replace <RESOURCE_NAME> with your Communication Services resource name,
    // for example: "https://<RESOURCE_NAME>.communication.azure.com".
    Uri endpoint = new("https://<RESOURCENAME>.communication.azure.com/");

    // Create an instance of the Program class to invoke instance methods.
    Program instance = new();

    Console.WriteLine("Retrieving new Access Token, using Service Principals");
    AccessToken response = instance.CreateIdentityAndGetTokenAsync(endpoint);
    Console.WriteLine($"Retrieved Access Token: {response.Token}");

    Console.WriteLine("Sending SMS using Service Principals");

    // Replace with your Azure Communication Services phone number and the target phone number.
    SmsSendResult result = instance.SendSms(endpoint, "<Your Azure Communication Services Phone Number>", "<The Phone Number you'd like to send the SMS to.>", "Hello from using Service Principals");
    Console.WriteLine($"Sms id: {result.MessageId}");
    Console.WriteLine($"Send Result Successful: {result.Successful}");
}

Окончательный Program.cs файл должен выглядеть следующим образом:

class Program
     {
          private DefaultAzureCredential credential = new DefaultAzureCredential();
          static void Main(string[] args)
          {
               // Replace <RESOURCE_NAME> with your Communication Services resource name,
               // for example: "https://<RESOURCE_NAME>.communication.azure.com".
               Uri endpoint = new("https://acstestingrifox.communication.azure.com/");

               // Create an instance of the Program class to invoke instance methods.
               Program instance = new();

               Console.WriteLine("Retrieving new Access Token, using Service Principals");
               AccessToken response = instance.CreateIdentityAndGetTokenAsync(endpoint);
               Console.WriteLine($"Retrieved Access Token: {response.Token}");

               Console.WriteLine("Sending SMS using Service Principals");

               // Replace with your Azure Communication Services phone number and the target phone number.
               SmsSendResult result = instance.SendSms(endpoint, "<Your Azure Communication Services Phone Number>", "<The Phone Number you'd like to send the SMS to.>", "Hello from Service Principals");
               Console.WriteLine($"Sms id: {result.MessageId}");
               Console.WriteLine($"Send Result Successful: {result.Successful}");
          }
          public AccessToken CreateIdentityAndGetTokenAsync(Uri resourceEndpoint)
          {
               var client = new CommunicationIdentityClient(resourceEndpoint, this.credential);
               var result = client.CreateUserAndToken(scopes: new[] { CommunicationTokenScope.VoIP });
               var (user, token) = response.Value;
               return token;
          }
          public SmsSendResult SendSms(Uri resourceEndpoint, string from, string to, string message)
          {
               SmsClient smsClient = new SmsClient(resourceEndpoint, this.credential);
               SmsSendResult sendResult = smsClient.Send(
                    from: from,
                    to: to,
                    message: message,
                    new SmsSendOptions(enableDeliveryReport: true) // optional
               );

               return sendResult;
          }
    }

Запуск программы

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

     dotnet run

Выходные данные консоли должны отображаться следующим образом:

     Retrieving new Access Token, using Service Principals
     Retrieved Access Token: ...
     Sending SMS using Service Principals
     Sms id: ...
     Send Result Successful: True

Замечание

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

Настройка

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

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

mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart

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

npm init -y

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

npm install @azure/communication-identity
npm install @azure/communication-common
npm install @azure/communication-sms
npm install @azure/identity

Создание нового файла

Откройте новый файл с текстовым редактором и сохраните его как index.js, мы поместим код в этот файл.

Использование пакетов SDK

Добавьте следующие require директивы в начало index.js, чтобы использовать пакеты SDK для Azure Identity и Azure Storage.

const { DefaultAzureCredential } = require("@azure/identity");
const { CommunicationIdentityClient, CommunicationUserToken } = require("@azure/communication-identity");
const { SmsClient, SmsSendRequest } = require("@azure/communication-sms");

Создайте DefaultAzureCredential

В этой краткой инструкции мы будем использовать DefaultAzureCredential. Эти учетные данные подходят для рабочих сред и сред разработки. Поскольку это необходимо для каждой операции, давайте разместим его в верхней части файла index.js.

    const credential = new DefaultAzureCredential();

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

Затем мы напишем функцию, которая создает новое удостоверение и выдает токен для этого удостоверения; позже мы используем его, чтобы протестировать нашу настройку основного сервиса.

async function createIdentityAndIssueToken(resourceEndpoint) {
    const client = new CommunicationIdentityClient(resourceEndpoint, credential);
    return await client.createUserAndToken(["chat"]);
}

Отправка SMS с субъектами-службами

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

async function sendSms(resourceEndpoint, fromNumber, toNumber, message) {
    const smsClient = new SmsClient(resourceEndpoint, credential);
    const sendRequest = {
        from: fromNumber,
        to: [toNumber],
        message: message
    };
    return await smsClient.send(
        sendRequest,
        {} //Optional SendOptions
    );
}

Напишите основную функцию

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

async function main() {
    // You can find your endpoint and access key from your resource in the Azure portal
    // e.g. "https://<RESOURCE_NAME>.communication.azure.com";
    const endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"

    
    console.log("Retrieving new Access Token, using Service Principals");
    const result = await createIdentityAndIssueToken(endpoint);
    console.log(`Retrieved Access Token: ${result.token}`);

    console.log("Sending SMS using Service Principals");

    // You will need a phone number from your resource to send an SMS.
    const smsResult = await sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
    console.log(`SMS ID: ${smsResult[0].messageId}`);
    console.log(`Send Result Successful: ${smsResult[0].successful}`);
}

main();

Окончательный index.js файл должен выглядеть следующим образом:

const { DefaultAzureCredential } = require("@azure/identity");
const { CommunicationIdentityClient, CommunicationUserToken } = require("@azure/communication-identity");
const { SmsClient, SmsSendRequest } = require("@azure/communication-sms");

const credential = new DefaultAzureCredential();

async function createIdentityAndIssueToken(resourceEndpoint) {
    const client = new CommunicationIdentityClient(resourceEndpoint, credential);
    return await client.createUserAndToken(["chat"]);
}

async function sendSms(resourceEndpoint, fromNumber, toNumber, message) {
    const smsClient = new SmsClient(resourceEndpoint, credential);
    const sendRequest = {
        from: fromNumber,
        to: [toNumber],
        message: message
    };
    return await smsClient.send(
        sendRequest,
        {} //Optional SendOptions
    );
}

async function main() {
    // You can find your endpoint and access key from your resource in the Azure portal
    // e.g. "https://<RESOURCE_NAME>.communication.azure.com";
    const endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"

    
    console.log("Retrieving new Access Token, using Service Principals");
    const result = await createIdentityAndIssueToken(endpoint);
    console.log(`Retrieved Access Token: ${result.token}`);

    console.log("Sending SMS using Service Principals");

    // You will need a phone number from your resource to send an SMS.
    const smsResult = await sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
    console.log(`SMS ID: ${smsResult[0].messageId}`);
    console.log(`Send Result Successful: ${smsResult[0].successful}`);
}

main();

Запуск программы

Все готово, вы можете запустить файл, введя node index.js из каталога проекта. Если все пошло хорошо, вы должны увидеть что-то похожее на следующее.

    $ node index.js
    Retrieving new Access Token, using Service Principals
    Retrieved Access Token: ey...Q
    Sending SMS using Service Principals
    SMS ID: ...
    Send Result Successful: true

Дополнительные предварительные требования для Java

Для Java также потребуется:

Замечание

Вы можете найти окончательный код для этого краткого руководства на 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

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

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

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

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

Использование пакетов SDK

Добавьте в код следующие import директивы, чтобы использовать SDK Azure Identity и Azure Communication.

import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.communication.sms.*;
import com.azure.communication.sms.models.*;
import com.azure.core.credential.*;
import com.azure.identity.*;

import java.util.*;

Создайте DefaultAzureCredential

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

private TokenCredential credential = new DefaultAzureCredentialBuilder().build();

Выпуск токена с учетными записями служб

Теперь мы добавим код, который использует созданные учетные данные для выдачи VoIP токена доступа. Далее мы вызовем этот код;

    public AccessToken createIdentityAndGetTokenAsync(String endpoint) {
          CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
                    .endpoint(endpoint)
                    .credential(this.credential)
                    .buildClient();

          CommunicationUserIdentifierAndToken result =  communicationIdentityClient.createUserAndToken(new ArrayList<>(Arrays.asList(CommunicationTokenScope.CHAT)));
          return result.getUserToken();
    }

Отправка SMS с субъектами-службами

В качестве другого примера использования субъектов-служб мы добавим этот код, который использует те же учетные данные для отправки SMS:

     public SmsSendResult sendSms(String endpoint, String from, String to, String message) {
          SmsClient smsClient = new SmsClientBuilder()
                    .endpoint(endpoint)
                    .credential(this.credential)
                    .buildClient();

          // Send the message and check the response for a message id
          return smsClient.send(from, to, message);
     }

Написать метод Main

У вас уже должен быть метод Main. Давайте добавим код, который вызовет ранее созданный код, чтобы продемонстрировать использование служебных принципалов.

    public static void main(String[] args) {
          App instance = new App();
          // You can find your endpoint and access key from your resource in the Azure portal
          // e.g. "https://<RESOURCE_NAME>.communication.azure.com";
          String endpoint = "https://<RESOURCE_NAME>.communication.azure.com/";

          System.out.println("Retrieving new Access Token, using Service Principals");
          AccessToken token = instance.createIdentityAndGetTokenAsync(endpoint);
          System.out.println("Retrieved Access Token: "+ token.getToken());

          System.out.println("Sending SMS using Service Principals");
          // You will need a phone number from your resource to send an SMS.
          SmsSendResult result = instance.sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
          System.out.println("Sms id: "+ result.getMessageId());
          System.out.println("Send Result Successful: "+ result.isSuccessful());
    }

Ваш результат App.java должен выглядеть следующим образом:

package com.communication.quickstart;

import com.azure.communication.common.*;
import com.azure.communication.identity.*;
import com.azure.communication.identity.models.*;
import com.azure.communication.sms.*;
import com.azure.communication.sms.models.*;
import com.azure.core.credential.*;
import com.azure.identity.*;

import java.util.*;

public class App 
{

    private TokenCredential credential = new DefaultAzureCredentialBuilder().build();

    public SmsSendResult sendSms(String endpoint, String from, String to, String message) {
          SmsClient smsClient = new SmsClientBuilder()
               .endpoint(endpoint)
               .credential(this.credential)
               .buildClient();

          // Send the message and check the response for a message id
          return smsClient.send(from, to, message);
    }
    
    public AccessToken createIdentityAndGetTokenAsync(String endpoint) {
          CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
                    .endpoint(endpoint)
                    .credential(this.credential)
                    .buildClient();

          CommunicationUserIdentifierAndToken result =  communicationIdentityClient.createUserAndToken(new ArrayList<>(Arrays.asList(CommunicationTokenScope.CHAT)));
          return result.getUserToken();
    }

    public static void main(String[] args) {
          App instance = new App();
          // You can find your endpoint and access key from your resource in the Azure portal
          // e.g. "https://<RESOURCE_NAME>.communication.azure.com";
          String endpoint = "https://<RESOURCE_NAME>.communication.azure.com/";

          System.out.println("Retrieving new Access Token, using Service Principals");
          AccessToken token = instance.createIdentityAndGetTokenAsync(endpoint);
          System.out.println("Retrieved Access Token: "+ token.getToken());

          System.out.println("Sending SMS using Service Principals");
          // You will need a phone number from your resource to send an SMS.
          SmsSendResult result = instance.sendSms(endpoint, "<FROM NUMBER>", "<TO NUMBER>", "Hello from Service Principals");
          System.out.println("Sms id: "+ result.getMessageId());
          System.out.println("Send Result Successful: "+ result.isSuccessful());
    }
}

Запустите код

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

mvn compile

Затем выполните сборку пакета.

mvn package

Выполните следующую команду mvn для запуска приложения.

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

Окончательные выходные данные должны выглядеть следующим образом:

Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey..A
Sending SMS using using Service Principals
Sms id: ...
Send Result Successful: true

Замечание

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

Настройка

Создайте новое приложение на Python

Давайте настроим рабочий каталог для приложения. Для этого откройте терминал или командное окно, создайте новый каталог и перейдите к нему:

mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart

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

Затем необходимо установить необходимые пакеты Azure SDK. Выполните следующие команды:

pip install azure-identity
pip install azure-communication-identity
pip install azure-communication-sms

Создание нового файла

Теперь нам нужен файл Python для хранения кода. Создайте и сохраните новый файл с именем authentication.py в вашем каталоге.

Использование пакетов SDK

Наша следующая цель — импортировать необходимые модули azure SDK для работы с удостоверениями и SMS. Добавьте следующие инструкции в верхней части файла:

from azure.identity import DefaultAzureCredential
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.sms import SmsClient

Создайте DefaultAzureCredential

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

Поместите эту строку с DefaultAzureCredential после ранее вставленных строк.

     credential = DefaultAzureCredential()

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

Создайте удостоверение и запросите токен доступа для голосового протокола интернета (VoIP).

def create_identity_and_get_token(resource_endpoint):
     client = CommunicationIdentityClient(resource_endpoint, credential)
     user, token_response = client.create_user_and_token(scopes=["voip"])

     return token_response

Отправка SMS с субъектами-службами

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

def send_sms(resource_endpoint, from_phone_number, to_phone_number, message_content):
     sms_client = SmsClient(resource_endpoint, credential)

     sms_client.send(
          from_=from_phone_number,
          to_=[to_phone_number],
          message=message_content,
          enable_delivery_report=True  # optional property
     )

Написание основного кода

Теперь у нас есть все необходимые блоки кода для выполнения задач по созданию идентификатора, получению токена доступа и отправке SMS.

Включите основной код, вызывающий функции:

# Retrieve your endpoint and access key from your resource in the Azure portal
# For example: "https://<RESOURCE_NAME>.communication.azure.com"
endpoint = "https://<RESOURCE_NAME>.communication.azure.com/"

print("Retrieving new Access Token, using Service Principals");
result = create_identity_and_get_token(endpoint);
print(f'Retrieved Access Token: {result.token}');

print("Sending SMS using Service Principals");

# Provide a valid phone number from your Azure resource to send an SMS.
sms_result = send_sms(endpoint, "<FROM_NUMBER>", "<TO_NUMBER>", "Hello from Service Principals");
print(f'SMS ID: {sms_result[0].message_id}');
print(f'Send Result Successful: {sms_result[0].successful}');

Вот как выглядит authentication.py после всех внесенных вами изменений:

from azure.identity import DefaultAzureCredential
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.sms import SmsClient

credential = DefaultAzureCredential()

def create_identity_and_get_token(resource_endpoint):
     client = CommunicationIdentityClient(resource_endpoint, credential)
     user, token_response = client.create_user_and_token(scopes=["voip"])

     return token_response

def send_sms(resource_endpoint, from_phone_number, to_phone_number, message_content):
     sms_client = SmsClient(resource_endpoint, credential)

     response = sms_client.send(
          from_=from_phone_number,
          to=[to_phone_number],
          message=message_content,
          enable_delivery_report=True  # optional property
     )
     return response

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

print("Retrieving new Access Token, using Service Principals");
result = create_identity_and_get_token(endpoint);
print(f'Retrieved Access Token: {result.token}');

print("Sending SMS using Service Principals");

# You will need a phone number from your resource to send an SMS.
sms_result = send_sms(endpoint, "<FROM_NUMBER>", "<TO_NUMBER>", "Hello from Service Principals");
print(f'SMS ID: {sms_result[0].message_id}');
print(f'Send Result Successful: {sms_result[0].successful}');

Запуск программы

Пришло время запустить ваш скрипт Python для проверки функциональности. Запустите файл из каталога проекта с помощью команды:

python authentication.py

При успешном выполнении вы увидите выходные данные, аналогичные следующему:

    $ python authentication.py
    Retrieving new Access Token, using Service Principals
    Retrieved Access Token: ...
    Sending SMS using Service Principals
    SMS ID: ...
    Send Result Successful: true

Дальнейшие шаги