Autentikasi
Saat melakukan Panggilan REST, beberapa langkah diperlukan untuk mengautentikasi dengan benar. Azure Communication Services SDK menangani proses ini untuk Anda, tetapi membuat permintaan secara manual berarti Anda harus menanganinya sendiri.
Jenis Autentikasi
Azure Communication Services memiliki tiga jenis Autentikasi, mereka digunakan untuk tujuan yang berbeda:
- Akses autentikasi Kunci untuk operasi SMS, Network Traversal, Call Automation, Identity, dan token akses. Autentikasi Kunci Akses cocok untuk aplikasi yang berjalan di lingkungan layanan tepercaya.
- Azure AD autentikasi yang berlaku sama seperti Autentikasi Kunci Akses. Kontrol akses lebih terperinci dan memanfaatkan Azure RBAC.
- Autentikasi Token Akses Pengguna untuk Obrolan dan Panggilan. Token akses pengguna memungkinkan aplikasi klien Anda mengautentikasi langsung terhadap Azure Communication Services. Token ini dihasilkan pada layanan provisi token sisi server yang Anda buat. Mereka kemudian diberikan kepada perangkat klien yang menggunakan token untuk menginisialisasi pustaka klien Obrolan dan Panggilan.
Akses Autentikasi Kunci
Autentikasi Kunci Akses digunakan saat permintaan tidak dibuat oleh aplikasi pengguna akhir Anda. Jalankan permintaan ini dalam lingkungan layanan tepercaya.
Dalam metode autentikasi ini, permintaan ditandatangani menggunakan kode autentikasi pesan berbasis hash yang dihasilkan klien (HMAC).
Sebelum memulai, pastikan Anda memiliki:
- Kunci Akses Azure Communication Services Anda
- Titik Akhir Azure Communication Service Anda
- Jalur URL dan Kata Kerja HTTP yang Anda panggil
- Lingkungan pengembangan, yang dapat menghasilkan HMAC, hash SHA256, dan operasi Base64.
Setelah memiliki item ini, Anda dapat melanjutkan penandatanganan permintaan Anda.
Menandatangani Permintaan HTTP
Tentukan tanda waktu Waktu Universal Terkoordinasi (UTC) untuk permintaan di
x-ms-dateheader atau di header HTTPDatestandar. Layanan memvalidasi tanda waktu ini untuk melindungi dari serangan keamanan tertentu, termasuk serangan pemutaran ulang.Hash isi permintaan HTTP menggunakan algoritma SHA256 lalu teruskan, dengan permintaan, melalui
x-ms-content-sha256header .Buat string yang akan ditandatangani dengan menggabungkan Kata Kerja HTTP (misalnya,
GETatauPUT), jalur permintaan HTTP, dan nilaiDateheader HTTP ,Hostdan dalamx-ms-content-sha256format berikut:VERB + "\n" URLPathAndQuery + "\n" DateHeaderValue + ";" + HostHeaderValue + ";" + ContentHashHeaderValueHasilkan tanda tangan HMAC-256 dari string yang dikodekan UTF-8 yang Anda buat di langkah sebelumnya. Selanjutnya, kodekan hasil Anda sebagai Base64. Anda juga perlu mendekode Base64 kunci akses Anda. Gunakan format berikut (ditampilkan sebagai pseudo-code):
Signature=Base64(HMAC-SHA256(UTF8(StringToSign), Base64.decode(<your_access_key>)))Tentukan header Otorisasi sebagai berikut:
Authorization="HMAC-SHA256 SignedHeaders=date;host;x-ms-content-sha256&Signature=<hmac-sha256-signature>"Di mana
<hmac-sha256-signature>adalah HMAC yang dihitung pada langkah sebelumnya.
Dengan semua detail lain yang diketahui dan kumpulan header, Anda sekarang dapat menentukan Authorization header formatnya adalah sebagai berikut: Authorization: "HMAC-SHA256 SignedHeaders=date;host;x-ms-content-sha256&Signature=<hmac-sha256-signature>"
Autentikasi Microsoft Azure AD
Azure AD autentikasi dapat digunakan saat pemohon adalah prinsip keamanan Azure RBAC. Perwakilan keamanan dapat berupa pengguna, grup, perwakilan layanan, atau identitas terkelola.
Sebelum memulai, pastikan Anda memiliki:
- Perwakilan layanan Azure Anda
- Jalur URL dan Kata Kerja HTTP yang Anda panggil
Untuk cara mendapatkan perwakilan layanan, lihat - Membuat aplikasi perwakilan layanan Azure Active Directory dari Azure CLI.
Setelah membuat perwakilan layanan, Anda dapat menggunakan salah satu rahasianya untuk autentikasi guna mengakses Communication Services untuk membuat pengguna, mengeluarkan token akses pengguna, atau mengirim pesan SMS.
Menggunakan kredensial utama keamanan dalam permintaan
Setelah Anda memiliki ID dan rahasia perwakilan keamanan, Anda dapat menggunakannya dalam permintaan Anda untuk Azure Communication Services' REST API dengan menyediakannya di header 'Otorisasi'.
authorizationHeaderValue = convertToBase64String(<security principal ID> + ":" + <secret of the security principal>)
Authorization="BASIC <authorizationHeaderValue>"
Autentikasi Token Akses Pengguna
Token akses pengguna memungkinkan aplikasi klien Anda mengautentikasi langsung terhadap Azure Communication Services sebagai pengguna atau identitas tertentu.
Menghasilkan / Mendapatkan Token Akses Pengguna
Token Akses Pengguna dihasilkan oleh Anda dalam lingkungan tepercaya. Menghasilkannya menggunakan Azure Communication Services Identity SDK adalah cara term mudah. Untuk informasi selengkapnya, lihat membuat dan mengelola token akses pengguna.
Menggunakan Token Akses Pengguna dalam permintaan
Setelah Anda memiliki Token Akses Pengguna yang sesuai, Anda dapat menyertakannya dalam permintaan Anda untuk Azure Communication Services REST API. Untuk melakukannya, Anda perlu menyediakannya di dalam Authorization header menggunakan skema Authorization: Bearer <token>autentikasi HTTP Pembawa .
Lihat juga
Untuk informasi tambahan tentang autentikasi Azure Communication Services, Anda juga dapat meninjau:
- Menandatangani permintaan HTTP
- Dokumentasi Autentikasi Konseptual - Menyediakan informasi tentang cara menggunakan SDK untuk mengautentikasi terhadap REST API
- Membangun Layanan Token Akses Pengguna - Tutorial Azure Communication Services, yang menunjukkan kepada Anda cara membuat layanan autentikasi tepercaya untuk menghasilkan Token Akses Pengguna dengan Azure Functions.