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
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Aktivní prostředek služby Azure Communication Services najdete v tématu Vytvoření prostředku komunikační služby, pokud ho nemáte.
- K odeslání sms budete potřebovat číslo Telefon.
- Instalační instanční objekt pro vývojové prostředí najdete v tématu Autorizace přístupu pomocí instančního objektu.
Další požadavky
- Rozhraní příkazového řádku Azure. Průvodce instalací
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ů:
- Azure Portal
- Azure PowerShell
- Azure CLI
- Šablona Azure Resource Manageru
- Sady SDK Azure Resource Manageru
- App Services
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:
- Java Development Kit (JDK) verze 8 nebo novější.
- Apache Maven
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