Membangun layanan akses pengguna tepercaya menggunakan Azure Functions
Artikel ini menjelaskan cara menggunakan Azure Functions untuk membangun layanan akses pengguna tepercaya.
Penting
Titik akhir yang dibuat di akhir tutorial ini tidak aman. Pastikan untuk membaca detail keamanan di artikel Azure Function Security. Anda perlu menambahkan keamanan ke titik akhir untuk memastikan pelaku kejahatan tidak dapat menyediakan token.
Mengunduh Kode
Temukan kode yang diselesaikan untuk panduan mulai cepat ini di GitHub
Prasyarat
- Akun Azure dengan langganan aktif. Untuk mengetahui detailnya, lihat Membuat akun secara gratis.
- Visual Studio Code pada salah satu platform yang didukung.
- Node.js, versi LTS Aktif dan LTS Pemeliharaan (direkomendasikan 10.14.1). Gunakan perintah
node --version
untuk memeriksa versi Anda. - Ekstensi Azure Functions untuk Visual Studio Code.
- String koneksi dan sumber daya Communication Services yang aktif. Membuat sumber daya Communication Services.
Gambaran Umum
Ini adalah tutorial membuat Fungsi Azure yang akan berfungsi sebagai layanan provisi token tepercaya. Anda dapat menggunakan tutorial ini untuk melakukan bootstrap pada layanan provisi token Anda sendiri.
Layanan ini bertanggung jawab untuk mengautentikasi pengguna ke Azure Communication Services. Pengguna aplikasi Communication Services Anda akan memerlukan Access Token
agar dapat berpartisipasi dalam thread obrolan dan panggilan VoIP. Fungsi Azure akan berfungsi sebagai perantara tepercaya antara pengguna dan Communication Services. Ini memungkinkan Anda untuk memprovisikan token akses tanpa menampilkan string koneksi sumber daya kepada pengguna Anda.
Untuk informasi selengkapnya, lihat arsitektur klien-server serta dokumentasi konseptual autentikasi dan otorisasi.
Persiapan
Pengaturan Azure Functions
Pertama-tama, kita menyiapkan struktur dasar untuk fungsi Azure. Petunjuk penyiapan langkah demi langkah dapat ditemukan di sini: Membuat fungsi menggunakan Visual Studio Code
Fungsi Azure memerlukan konfigurasi berikut:
- Bahasa: JavaScript
- Templat: Pemicu HTTP
- Tingkat Otorisasi: Anonim (Ini dapat diganti nanti jika Anda lebih suka model otorisasi lain)
- Nama Fungsi: Ditentukan pengguna
Setelah mengikuti instruksi Azure Functions dengan konfigurasi di atas, Anda akan memiliki proyek di Visual Studio Code untuk Fungsi Azure dengan file index.js
yang berisi fungsi itu sendiri. Kode dalam file ini harus sebagai berikut:
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
const name = (req.query.name || (req.body && req.body.name));
const responseMessage = name
? "Hello, " + name + ". This HTTP triggered function executed successfully."
: "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
context.res = {
// status: 200, /* Defaults to 200 */
body: responseMessage
};
}
Sekarang, kita akan melanjutkan ke penginstalan pustaka Azure Communication Services.
Menginstal pustaka layanan komunikasi
Kita akan menggunakan pustaka Identity
untuk membuat User Access Tokens
.
Gunakan perintah npm install
untuk menginstal Azure Communication Services Identity SDK untuk JavaScript.
npm install @azure/communication-identity --save
Opsi --save
mencantumkan pustaka tersebut sebagai dependensi di file package.json Anda.
Di bagian atas file index.js
, impor antarmuka untuk CommunicationIdentityClient
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Pembuatan token akses
Agar Fungsi Azure dapat membuat User Access Tokens
, pertama-tama kita harus menggunakan string koneksi untuk sumber daya Communication Services.
Lihat mulai cepat provisi sumber daya untuk informasi lebih lanjut tentang cara mengambil string koneksi Anda.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
Selanjutnya, kita akan mengubah fungsi asli untuk membuat User Access Tokens
.
User Access Tokens
dihasilkan dengan membuat pengguna melalui metode createUser
. Setelah pengguna dibuat, kita dapat menggunakan metode getToken
untuk membuat token pengguna yang ditampilkan Fungsi Azure.
Untuk contoh ini, kita akan mengonfigurasi cakupan token ke voip
. Cakupan lain mungkin diperlukan untuk aplikasi Anda. Pelajari cakupan lebih lanjut
module.exports = async function (context, req) {
let tokenClient = new CommunicationIdentityClient(connectionString);
const user = await tokenClient.createUser();
const userToken = await tokenClient.getToken(user, ["voip"]);
context.res = {
body: userToken
};
}
Untuk Communication Services CommunicationUser
yang sudah ada, Anda dapat melewati langkah pembuatan dan langsung membuat token akses. Lihat detail selengkapnya di Mulai cepat membuat token akses pengguna.
Menguji Fungsi Azure
Jalankan Fungsi Azure secara lokal menggunakan F5
. Ini akan memulai Fungsi Azure secara lokal dan membuatnya dapat diakses melalui: http://localhost:7071/api/FUNCTION_NAME
. Lihat dokumentasi tambahan tentang menjalankan secara lokal
Buka URL di browser, lalu Anda akan melihat respons yang berisi ID Pengguna Komunikasi, token, dan tanggal kedaluwarsa token.
Menyebarkan Fungsi ke Azure
Untuk menyebarkan Fungsi Azure, Anda dapat mengikuti instruksi langkah demi langkah ini
Singkatnya, Anda harus:
- Masuk ke Azure dari Visual Studio
- Menerbitkan proyek ke akun Azure Anda. Di sini Anda harus memilih langganan yang sudah ada.
- Membuat sumber daya baru Fungsi Azure menggunakan wizard Visual Studio atau sumber daya yang sudah ada. Untuk sumber daya baru, Anda harus mengonfigurasinya ke wilayah yang Anda inginkan, runtime, dan pengenal unik yang diinginkan.
- Menunggu penyebaran selesai
- Menjalankan fungsinya 🎉
Menjalankan Fungsi Azure
Jalankan fungsi Azure menggunakan url http://<function-appn-ame>.azurewebsites.net/api/<function-name>
Anda dapat menemukan URL-nya dengan mengklik kanan fungsi pada Visual Studio Code dan menyalin URL Fungsi.
Untuk informasi selengkapnya, lihat menjalankan fungsi Azure
Mengamankan Azure Function
Sebagai bagian dari penyiapan layanan tepercaya untuk menyediakan token akses bagi pengguna, kita perlu mempertimbangkan keamanan titik akhir tersebut untuk memastikan tidak ada pelaku kejahatan yang dapat membuat token secara acak untuk layanan Anda. Azure Functions menyediakan fitur keamanan bawaan yang bisa digunakan untuk mengamankan titik akhir menggunakan berbagai jenis kebijakan autentikasi. Baca selengkapnya tentang Azure Function Security
Membersihkan sumber daya
Jika ingin membersihkan dan menghapus langganan Azure Communication Services, Anda bisa menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga dapat menghapus sumber daya lain yang terkait dengannya. Anda dapat mengetahui selengkapnya mengenai pembersihan sumber daya Azure Communication Service dan pembersihan Azure Function Resources.
Langkah berikutnya
Anda mungkin juga membutuhkan:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk