Mulai cepat: Mengautentikasi menggunakan ID Microsoft Entra
Mulai menggunakan Azure Communication Services dengan menggunakan ID Microsoft Entra. Identitas Communication Services dan SDK SMS mendukung autentikasi Microsoft Entra.
Mulai cepat ini menunjukkan cara mengotorisasi akses ke Identitas dan SDK SMS dari lingkungan Azure yang mendukung Direktori Aktif. Panduan ini juga menjelaskan cara menguji kode Anda dalam lingkungan pengembangan dengan membuat perwakilan layanan untuk pekerjaan Anda.
Prasyarat
- Akun Azure dengan langganan aktif. Membuat akun secara gratis
- Sumber daya Azure Communication Services aktif, lihat membuat sumber daya Communication Services jika Anda tidak memilikinya.
- Untuk mengirim SMS, Anda memerlukan Nomor Telepon.
- Menyiapkan Perwakilan Layanan untuk lingkungan pengembangan, lihat Mengotorisasi akses dengan perwakilan layanan
Prasyarat Tambahan
- Azure CLI. Panduan Penginstalan
Persiapan
Saat menggunakan Direktori Aktif untuk Sumber Daya Azure lainnya, Anda harus menggunakan Identitas terkelola. Untuk mempelajari cara mengaktifkan identitas terkelola untuk Azure Resources, lihat salah satu artikel berikut:
- Portal Azure
- Azure PowerShell
- Azure CLI
- Templat Azure Resource Manager
- SDK Azure Resource Manager
- Layanan aplikasi
Autentikasi aplikasi terdaftar di lingkungan pengembangan
Jika lingkungan pengembangan Anda tidak mendukung akses menyeluruh atau masuk melalui browser web, Maka Anda dapat menggunakan aplikasi terdaftar untuk mengautentikasi dari lingkungan pengembangan.
Membuat Aplikasi terdaftar Microsoft Entra
Untuk membuat aplikasi terdaftar dari Azure CLI, Anda harus masuk ke akun Azure tempat Anda ingin operasi berlangsung. Untuk melakukan ini, Anda dapat menggunakan az login
perintah dan memasukkan informasi masuk Anda di browser. Setelah Anda masuk ke akun Azure Anda dari CLI, kita dapat memanggil az ad sp create-for-rbac
perintah untuk membuat aplikasi terdaftar dan perwakilan layanan.
Contoh berikut menggunakan Azure CLI untuk membuat aplikasi terdaftar baru:
az ad sp create-for-rbac --name <application-name> --role Contributor --scopes /subscriptions/<subscription-id>
az ad sp create-for-rbac
Perintah akan menghasilkan daftar properti perwakilan layanan dalam format JSON. Salin nilai-nilai ini sehingga dapat Anda gunakan untuk membuat variabel lingkungan yang diperlukan di langkah berikutnya.
{
"appId": "generated-app-ID",
"displayName": "service-principal-name",
"name": "http://service-principal-uri",
"password": "generated-password",
"tenant": "tenant-ID"
}
Penting
Penetapan peran Azure mungkin memerlukan waktu hingga lima menit untuk disebarluaskan.
Atur variabel lingkungan
Azure Identity SDK membaca nilai dari tiga variabel lingkungan pada waktu runtime untuk mengautentikasi aplikasi. Tabel berikut menjelaskan nilai yang akan ditetapkan untuk setiap variabel lingkungan.
Variabel lingkungan | Nilai |
---|---|
AZURE_CLIENT_ID |
appId nilai dari JSON yang dihasilkan |
AZURE_TENANT_ID |
tenant nilai dari JSON yang dihasilkan |
AZURE_CLIENT_SECRET |
password nilai dari JSON yang dihasilkan |
Penting
Setelah Anda mengatur variabel lingkungan, tutup dan buka kembali jendela konsol Anda. Jika Anda menggunakan Visual Studio atau lingkungan pengembangan lain, Anda mungkin perlu memulai ulang agar dapat mendaftarkan variabel lingkungan baru.
Setelah variabel ini ditetapkan, Anda harus dapat menggunakan objek DefaultAzureCredential dalam kode Anda untuk mengautentikasi ke klien layanan pilihan Anda.
Catatan
Temukan kode final untuk mulai cepat ini di GitHub
Menyiapkan
Membuat aplikasi C# baru
Di jendela konsol (seperti cmd, PowerShell, atau Bash), gunakan perintah dotnet new
untuk membuat aplikasi konsol baru dengan nama ActiveDirectoryQuickstart
. Perintah ini membuat proyek C# "Halo Dunia" sederhana dengan satu file sumber: Program.cs
.
dotnet new console -o ActiveDirectoryAuthenticationQuickstart
Ubah direktori Anda ke folder aplikasi yang baru dibuat dan gunakan perintah dotnet build
untuk mengompilasi aplikasi Anda.
cd ActiveDirectoryAuthenticationQuickstart
dotnet build
Menginstal paket SDK
dotnet add package Azure.Communication.Identity
dotnet add package Azure.Communication.Sms
dotnet add package Azure.Identity
Menggunakan paket SDK
Tambahkan arahan using
berikut ke Program.cs
untuk menggunakan Azure Identity dan Azure Storage SDK.
using Azure.Identity;
using Azure.Communication.Identity;
using Azure.Communication.Sms;
using Azure.Core;
using Azure;
Membuat DefaultAzureCredential
Kita akan menggunakan DefaultAzureCredential untuk mulai cepat ini. Info masuk ini cocok untuk lingkungan produksi dan pengembangan. Karena dibutuhkan untuk setiap operasi, mari kita buat di dalam kelas Program.cs
. Tambahkan berikut ini ke bagian atas file .
private DefaultAzureCredential credential = new DefaultAzureCredential();
Menerbitkan token dengan perwakilan layanan
Sekarang kita akan menambahkan kode yang menggunakan info masuk yang dibuat, untuk mengeluarkan Token Akses VoIP. Kami akan memanggil kode ini nanti.
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;
}
Kirim SMS dengan perwakilan layanan
Sebagai contoh lain dalam menggunakan perwakilan layanan, kami akan menambahkan kode ini yang menggunakan info masuk yang sama untuk mengirim 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;
}
Menulis Metode utama
Program.cs
Anda seharusnya sudah memiliki metode Main, mari tambahkan beberapa kode yang akan memanggil kode yang kita buat sebelumnya untuk mendemonstrasikan penggunaan perwakilan layanan:
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}");
}
File Program.cs
terakhir Anda akan terlihat seperti ini:
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;
}
}
Jalankan program
Anda seharusnya sekarang dapat menjalankan aplikasi Anda, menggunakan dotnet run
dari folder aplikasi Anda. Outputnya harus menyerupai berikut ini:
Retrieving new Access Token, using Service Principals
Retrieved Access Token: ey....
Sending SMS using Service Principals
Sms id: Outgoing_..._noam
Send Result Successful: True
Catatan
Temukan kode final untuk mulai cepat ini di GitHub
Menyiapkan
Membuat aplikasi Node.js baru
Buka terminal atau jendela perintah buat direktori baru untuk aplikasi Anda, dan navigasikan ke sana.
mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart
Jalankan npm init -y
untuk membuat file package.json dengan pengaturan default.
npm init -y
Menginstal paket SDK
npm install @azure/communication-identity
npm install @azure/communication-common
npm install @azure/communication-sms
npm install @azure/identity
Buat file baru
Buka file baru dengan editor teks dan simpan sebagai index.js
, kita akan menempatkan kode di dalam file ini.
Menggunakan paket SDK
Tambahkan instruksi require
berikut ke bagian atas index.js
untuk menggunakan SDK Azure Identity dan Azure Storage.
const { DefaultAzureCredential } = require("@azure/identity");
const { CommunicationIdentityClient, CommunicationUserToken } = require("@azure/communication-identity");
const { SmsClient, SmsSendRequest } = require("@azure/communication-sms");
Membuat DefaultAzureCredential
Kita akan menggunakan DefaultAzureCredential untuk mulai cepat ini. Info masuk ini cocok untuk lingkungan produksi dan pengembangan. Karena diperlukan untuk setiap operasi, mari kita membuatnya di bagian atas file index.js
.
const credential = new DefaultAzureCredential();
Membuat identitas dan keluarkan token dengan perwakilan layanan
Selanjutnya, kita akan menulis fungsi yang membuat identitas baru dan mengeluarkan token untuk identitas ini, kita akan menggunakannya nanti untuk menguji pengaturan perwakilan layanan kita.
async function createIdentityAndIssueToken(resourceEndpoint) {
const client = new CommunicationIdentityClient(resourceEndpoint, credential);
return await client.createUserAndToken(["chat"]);
}
Kirim SMS dengan perwakilan layanan
Sekarang, mari kita tulis fungsi yang menggunakan perwakilan layanan untuk mengirim 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
);
}
Menulis fungsi utama
Dengan fungsi yang dibuat, sekarang kita dapat menulis fungsi utama untuk memanggilnya dan mendemonstrasikan penggunaan Perwakilan Layanan:
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();
File index.js
akhir tersebut akan terlihat seperti ini:
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();
Jalankan program
Setelah semuanya selesai, Anda dapat menjalankan file dengan memasukkan node index.js
dari direktori proyek Anda. Jika semuanya berjalan dengan baik, Anda akan melihat sesuatu yang mirip dengan yang berikut ini.
$ 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
Prasyarat tambahan untuk Java
Untuk Java, Anda juga memerlukan:
- Java Development Kit (JDK) versi 8 atau lebih tinggi.
- Apache Maven.
Catatan
Temukan kode final untuk mulai cepat ini di GitHub
Menyiapkan
Membuat aplikasi Java baru
Buka jendela perintah atau terminal Anda. Arahkan ke direktori tempat Anda ingin membuat aplikasi Java. Jalankan perintah di bawah ini untuk menghasilkan proyek Java dari templat maven-arketipe-quickstart.
mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Anda akan melihat bahwa tugas 'hasilkan' membuat direktori dengan nama yang sama dengan artifactId
. Di direktori ini, direktori src/main/java berisi kode sumber proyek, src/test/java directory
berisi sumber pengujian, dan file pom.xml
tersebut adalah Project Object Model atau POM proyek.
Pasang paket
Buka file pom.xml di editor teks Anda. Tambahkan elemen dependensi berikut ke grup dependensi.
<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>
Menggunakan paket SDK
Tambahkan arahan import
berikut ke kode Anda untuk menggunakan Identitas Azure dan SDK Komunikasi Azure.
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.*;
Membuat DefaultAzureCredential
Kita akan menggunakan DefaultAzureCredential untuk mulai cepat ini. Info masuk ini cocok untuk lingkungan produksi dan pengembangan. Karena dibutuhkan untuk setiap operasi, mari kita buat di dalam kelas App.java
. Tambahkan hal berikut ke bagian atas kelas App.java
.
private TokenCredential credential = new DefaultAzureCredentialBuilder().build();
Menerbitkan token dengan perwakilan layanan
Sekarang kita akan menambahkan kode yang menggunakan info masuk yang dibuat, untuk mengeluarkan Token Akses VoIP. Kami akan memanggil kode ini nanti;
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();
}
Kirim SMS dengan perwakilan layanan
Sebagai contoh lain dalam menggunakan perwakilan layanan, kami akan menambahkan kode ini yang menggunakan info masuk yang sama untuk mengirim 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);
}
Menulis Metode utama
App.java
Anda seharusnya sudah memiliki metode Main, mari tambahkan beberapa kode yang akan memanggil kode yang kita buat sebelumnya untuk mendemonstrasikan penggunaan perwakilan layanan:
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
final Anda akan terlihat seperti ini:
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());
}
}
Menjalankan kode
Buka direktori yang berisi file pom.xml dan kompilasikan proyek dengan perintah mvn
berikut.
mvn compile
Kemudian, bangun paketnya.
mvn package
Jalankan perintah mvn
berikut untuk menjalankan aplikasi.
mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false
Output final harus menyerupai berikut ini:
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
Catatan
Temukan kode final untuk mulai cepat ini di GitHub
Menyiapkan
Membuat aplikasi Python baru
Buka terminal atau jendela perintah buat direktori baru untuk aplikasi Anda, dan navigasikan ke sana.
mkdir active-directory-authentication-quickstart && cd active-directory-authentication-quickstart
Menginstal paket SDK
pip install azure-identity
pip install azure-communication-identity
pip install azure-communication-sms
Buat file baru
Buka dan simpan file baru dalam folder yang Anda buat yang disebut authentication.py
, kami akan menempatkan kode kami di dalam file ini.
Menggunakan paket SDK
Tambahkan pernyataan import
berikut ke bagian atas file Anda untuk menggunakan SDK yang kita pasang.
from azure.identity import DefaultAzureCredential
from azure.communication.identity import CommunicationIdentityClient
from azure.communication.sms import SmsClient
Membuat DefaultAzureCredential
Kita akan menggunakan DefaultAzureCredential. Info masuk ini cocok untuk lingkungan produksi dan pengembangan. Karena kita akan menggunakannya sepanjang mulai cepat ini kita akan membuatnya di bagian atas file.
credential = DefaultAzureCredential()
Membuat identitas dan keluarkan token dengan perwakilan layanan
Sekarang kita akan menambahkan kode yang menggunakan info masuk yang dibuat, untuk mengeluarkan Token Akses VoIP. Kita akan memanggil kode ini nanti:
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
Kirim SMS dengan perwakilan layanan
Sebagai contoh lain dalam menggunakan perwakilan layanan, kami akan menambahkan kode ini yang menggunakan info masuk yang sama untuk mengirim 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
)
Tulis kode utama kita
Dengan fungsi dibuat, kita sekarang dapat menulis kode utama yang akan memanggil fungsi yang telah kita tulis sebelumnya.
# 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}');
File authentication.py
final akan terlihat seperti ini:
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}');
Jalankan program
Setelah semuanya selesai, Anda dapat menjalankan file dengan memasukkan python authentication.py
dari direktori proyek Anda. Jika semuanya berjalan dengan baik, Anda akan melihat sesuatu yang mirip dengan yang berikut ini.
$ 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