Rychlý start: Ověřování pomocí ID Microsoft Entra

Začínáme se službou Azure Communication Services pomocí ID Microsoft Entra. Identity komunikačních služeb a sady SMS SDK podporují ověřování Microsoft Entra.

V tomto rychlém startu se dozvíte, jak autorizovat přístup k sadm SDK identity a SMS z prostředí Azure, které podporuje Službu Active Directory. Popisuje také, jak otestovat kód ve vývojovém prostředí vytvořením instančního objektu pro vaši práci.

Požadavky

Další požadavky

Nastavení

Pokud používáte Active Directory pro jiné prostředky Azure, měli byste používat spravované identity. Informace o povolení spravovaných identit pro prostředky Azure najdete v jednom z těchto článků:

Ověření registrované aplikace ve vývojovém prostředí

Pokud vaše vývojové prostředí nepodporuje jednotné přihlašování nebo přihlášení prostřednictvím webového prohlížeče, můžete k ověření z vývojového prostředí použít zaregistrovanou aplikaci.

Vytvoření registrované aplikace Microsoft Entra

Pokud chcete vytvořit zaregistrovanou aplikaci z Azure CLI, musíte být přihlášeni k účtu Azure, kde se mají provádět operace. K tomu můžete použít az login příkaz a zadat přihlašovací údaje v prohlížeči. Jakmile se přihlásíte ke svému účtu Azure z rozhraní příkazového řádku, můžeme volat az ad sp create-for-rbac příkaz k vytvoření registrované aplikace a instančního objektu.

Následující příklad používá Azure CLI k vytvoření nové registrované aplikace:

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

Příkaz az ad sp create-for-rbac vrátí seznam vlastností instančního objektu ve formátu JSON. Tyto hodnoty zkopírujte, abyste je mohli použít k vytvoření nezbytných proměnných prostředí v dalším kroku.

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

Důležité

Rozšíření přiřazení rolí Azure může trvat několik minut.

Nastavení proměnných prostředí

Sada Azure Identity SDK načítá hodnoty ze tří proměnných prostředí za běhu za účelem ověření aplikace. Následující tabulka popisuje hodnotu, která se má nastavit pro každou proměnnou prostředí.

Proměnná prostředí Hodnota
AZURE_CLIENT_ID appId hodnota z vygenerovaného JSON
AZURE_TENANT_ID tenant hodnota z vygenerovaného JSON
AZURE_CLIENT_SECRET password hodnota z vygenerovaného JSON

Důležité

Po nastavení proměnných prostředí zavřete a znovu otevřete okno konzoly. Pokud používáte Visual Studio nebo jiné vývojové prostředí, možná ho budete muset restartovat, aby mohl zaregistrovat nové proměnné prostředí.

Jakmile jsou tyto proměnné nastaveny, měli byste být schopni použít defaultAzureCredential objekt v kódu k ověření pro klienta služby podle vašeho výběru.

Poznámka:

Vyhledání finalizovaného kódu pro tento rychlý start na GitHubu

Nastavení

Vytvoření nové aplikace jazyka C#

V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new příkazu vytvořte novou konzolovou aplikaci s názvem ActiveDirectoryQuickstart. Tento příkaz vytvoří jednoduchý projekt "Hello World" C# s jedním zdrojovým souborem: Program.cs.

dotnet new console -o ActiveDirectoryAuthenticationQuickstart

Změňte adresář na nově vytvořenou složku aplikace a pomocí dotnet build příkazu zkompilujte aplikaci.

cd ActiveDirectoryAuthenticationQuickstart
dotnet build

Instalace balíčků sady SDK

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

Použití balíčků sady SDK

Přidejte následující using direktivy pro Program.cs použití sad SDK azure Identity a Azure Storage.

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

Vytvoření defaultAzureCredential

Pro účely tohoto rychlého startu použijeme defaultAzureCredential . Tyto přihlašovací údaje jsou vhodné pro produkční a vývojová prostředí. Jak je potřeba pro každou operaci, vytvoříme ji v rámci Program.cs třídy. Na začátek souboru přidejte následující konstanty ():

private DefaultAzureCredential credential = new DefaultAzureCredential();

Vystavení tokenu s instančními objekty

Teď přidáme kód, který používá vytvořené přihlašovací údaje k vydání přístupového tokenu VoIP. Tento kód budeme později volat.

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

Odeslání sms s instančními objekty

Jako další příklad použití instančních objektů přidáme tento kód, který k odeslání SMS používá stejné přihlašovací údaje:

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

Zápis metody Main

Už byste Program.cs měli mít metodu Main, pojďme přidat nějaký kód, který bude volat dříve vytvořený kód, který předvede použití instančních objektů:

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

    // We need an instance of the program class to use within this method.
    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");

    // You will need a phone number from your resource to send an SMS.
    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}");
}

Konečný Program.cs soubor by měl vypadat takto:

class Program
     {
          private DefaultAzureCredential credential = new DefaultAzureCredential();
          static void Main(string[] args)
          {
               // You can find your endpoint and access key from your resource in the Azure portal
               // e.g. "https://<RESOURCE_NAME>.communication.azure.com";
               Uri endpoint = new("https://acstestingrifox.communication.azure.com/");

               // We need an instance of the program class to use within this method.
               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");

               // You will need a phone number from your resource to send an SMS.
               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;
          }
    }

Spuštění programu

Teď byste měli být schopni spustit aplikaci pomocí dotnet run složky aplikace. Výstup by měl vypadat přibližně takto:

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

Poznámka:

Vyhledání finalizovaného kódu pro tento rychlý start na GitHubu

Nastavení

Vytvoření nové aplikace Node.js

Otevřete terminál nebo příkazové okno, vytvořte pro aplikaci nový adresář a přejděte na něj.

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

Spuštěním příkazu npm init -y vytvořte soubor package.json s výchozím nastavením.

npm init -y

Instalace balíčků sady SDK

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

Vytvoření nového souboru

Otevřete nový soubor v textovém editoru a uložte ho jako index.js, umístíme kód do tohoto souboru.

Použití balíčků sady SDK

Do horní části index.js přidejte následující require direktivy pro použití sad SDK azure Identity a Azure Storage.

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

Vytvoření defaultAzureCredential

Pro účely tohoto rychlého startu použijeme defaultAzureCredential . Tyto přihlašovací údaje jsou vhodné pro produkční a vývojová prostředí. Protože je potřeba pro každou operaci, vytvoříme ji v horní části index.js souboru.

    const credential = new DefaultAzureCredential();

Vytvoření identity a vystavení tokenu s instančními objekty

Dále napíšeme funkci, která vytvoří novou identitu a vydá token pro tuto identitu, použijeme ji později k otestování nastavení instančního objektu.

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

Odeslání sms s instančními objekty

Teď umožňuje napsat funkci, která k odeslání SMS používá instanční objekty:

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

Zápis hlavní funkce

S vytvořenými funkcemi teď můžeme napsat hlavní funkci, která je zavolá a předvede použití instančních objektů:

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

Konečný index.js soubor by měl vypadat takto:

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

Spuštění programu

Po dokončení můžete soubor spustit zadáním node index.js z adresáře projektu. Pokud všechno proběhlo dobře, měli byste vidět něco podobného jako v následujícím příkladu.

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

Další požadavky pro Javu

Pro Javu budete také potřebovat:

Poznámka:

Vyhledání finalizovaného kódu pro tento rychlý start na GitHubu

Nastavení

Vytvoření nové aplikace v Javě

Otevřete terminál nebo příkazové okno. Přejděte do adresáře, do kterého chcete vytvořit aplikaci v Javě. Spuštěním následujícího příkazu vygenerujte projekt Java ze šablony maven-archetype-quickstart.

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

Všimněte si, že úloha generování vytvořila adresář se stejným názvem jako .artifactId V tomto adresáři obsahuje adresář src/main/java zdrojový kód projektu, src/test/java directory zdroj testů a pom.xml soubor je projektový objektový model nebo POM projektu.

Nainstalujte balíček .

Otevřete soubor pom.xml v textovém editoru. Do skupiny závislostí přidejte následující prvek závislosti.

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

Použití balíčků sady SDK

Přidejte do kódu následující import direktivy pro použití sad SDK Azure Identity a 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.*;

Vytvoření defaultAzureCredential

Pro účely tohoto rychlého startu použijeme defaultAzureCredential . Tyto přihlašovací údaje jsou vhodné pro produkční a vývojová prostředí. Jak je potřeba pro každou operaci, vytvoříme ji v rámci App.java třídy. Přidejte následující položky do horní části App.java třídy.

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

Vystavení tokenu s instančními objekty

Teď přidáme kód, který používá vytvořené přihlašovací údaje k vydání přístupového tokenu VoIP. Tento kód budeme později volat;

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

Odeslání sms s instančními objekty

Jako další příklad použití instančních objektů přidáme tento kód, který k odeslání SMS používá stejné přihlašovací údaje:

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

Zápis metody Main

Už byste App.java měli mít metodu Main, pojďme přidat nějaký kód, který bude volat dříve vytvořený kód, který předvede použití instančních objektů:

    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 Konečný by měl vypadat takto:

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

Spuštění kódu

Pomocí následujícího mvn příkazu přejděte do adresáře obsahujícího soubor pom.xml a zkompilujte projekt.

mvn compile

Pak balíček sestavte.

mvn package

Spuštěním následujícího mvn příkazu spusťte aplikaci.

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

Konečný výstup by měl vypadat přibližně takto:

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

Poznámka:

Vyhledání finalizovaného kódu pro tento rychlý start na GitHubu

Nastavení

Vytvoření nové aplikace v Pythonu

Otevřete terminál nebo příkazové okno, vytvořte pro aplikaci nový adresář a přejděte na něj.

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

Instalace balíčků sady SDK

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

Vytvoření nového souboru

Otevřete a uložte nový soubor do vytvořené složky s názvem authentication.py, umístíme kód do tohoto souboru.

Použití balíčků sady SDK

Do horní části souboru přidejte následující import příkazy pro použití sad SDK, které jsme nainstalovali.

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

Vytvoření defaultAzureCredential

Budeme používat DefaultAzureCredential. Tyto přihlašovací údaje jsou vhodné pro produkční a vývojová prostředí. Jak ho budeme používat v průběhu tohoto rychlého startu, vytvoříme ho v horní části souboru.

     credential = DefaultAzureCredential()

Vytvoření identity a vystavení tokenu s instančními objekty

Teď přidáme kód, který používá vytvořené přihlašovací údaje k vydání přístupového tokenu VoIP. Tento kód budeme později volat:

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

Odeslání sms s instančními objekty

Jako další příklad použití instančních objektů přidáme tento kód, který k odeslání SMS používá stejné přihlašovací údaje:

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
     )

Napište náš hlavní kód.

S vytvořenými funkcemi teď můžeme napsat hlavní kód, který bude volat funkce, které jsme předtím napsali.

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

Konečný authentication.py soubor by měl vypadat přibližně takto:

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

Spuštění programu

Po dokončení můžete soubor spustit zadáním python authentication.py z adresáře projektu. Pokud všechno proběhlo dobře, měli byste vidět něco podobného jako v následujícím příkladu.

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

Další kroky