Bagikan melalui


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

Gambaran Umum

Diagram untuk arsitektur layanan tepercaya

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.

Cuplikan layar memperlihatkan contoh Respons untuk Azure Function yang dibuat.

Menyebarkan Fungsi ke Azure

Untuk menyebarkan Fungsi Azure, Anda dapat mengikuti instruksi langkah demi langkah ini

Singkatnya, Anda harus:

  1. Masuk ke Azure dari Visual Studio
  2. Menerbitkan proyek ke akun Azure Anda. Di sini Anda harus memilih langganan yang sudah ada.
  3. 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.
  4. Menunggu penyebaran selesai
  5. 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: