Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- autentikasi Kunci Akses untuk operasi SMS, Network Traversal, Automation Panggilan, Identitas, dan token akses. Autentikasi Kunci Akses cocok untuk aplikasi yang berjalan di lingkungan layanan tepercaya.
- autentikasi Azure RBAC untuk mengontrol akses ke sumber daya dengan memanfaatkan Azure RBAC dengan menetapkan peran Azure.
- 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 disediakan untuk perangkat klien yang menggunakan token untuk menginisialisasi pustaka klien Obrolan dan Panggilan.
Autentikasi Kunci Akses
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 (HMAC) yang dihasilkan klien.
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 melakukan operasi Base64.
Setelah memiliki item ini, Anda dapat melanjutkan penandatanganan permintaan Anda.
Menandatangani Permintaan HTTP
Pastikan Anda memiliki nilai berikut yang tersedia:
- Metode permintaan HTTP (misalnya,
GETatauPUT) - Tanda waktu Waktu Universal Terkoordinasi (UTC) untuk permintaan sesuai dengan standar RFC1123
- Host permintaan HTTP (komponen URI
<authority>seperti yang ditentukan dalam RFC2396) - Isi permintaan HTTP di-hash menggunakan algoritma SHA256
- Jalur permintaan HTTP (
<path>dan<query>digabungkan oleh komponen?seperti yang ditentukan dalam RFC2396)
Verb=<http_method> Timestamp=<current_datetime> Host=<uri_authority> ContentHash=SHA256(<request_body>) URIPathAndQuery=<uri_path>?<uri_query>- Metode permintaan HTTP (misalnya,
Buat string yang akan ditandatangani dengan menggabungkan nilai dengan cara berikut:
StringToSign=Verb + "\n" URIPathAndQuery + "\n" Timestamp + ";" + Host + ";" + ContentHashHasilkan tanda tangan HMAC-256 dari string yang dikodekan UTF-8 yang Anda buat di langkah sebelumnya. Selanjutnya, enkode hasil Anda sebagai Base64. Anda juga perlu mendekode kunci akses Base64. Gunakan format berikut (ditampilkan sebagai pseudo-code):
Signature=Base64(HMAC-SHA256(UTF8(StringToSign), Base64.decode(<your_access_key>)))Tambahkan header berikut ke permintaan:
x-ms-date: <Timestamp> x-ms-content-sha256: <ContentHash> host: <URIPathAndQuery> Authorization: "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=<Signature>"
Setelah menerima permintaan, layanan memvalidasi tanda tangan dan tanda waktu untuk melindungi dari serangan keamanan tertentu, termasuk serangan pemutaran ulang. Untuk mempelajari cara menandatangani permintaan HTTP dalam berbagai bahasa pemrograman, kunjungi tutorial penandatanganan header HMAC .
Autentikasi Azure RBAC
Platform Azure menyediakan akses berbasis peran (Azure RBAC) untuk mengontrol akses ke sumber daya. Prinsip keamanan Azure RBAC mewakili pengguna, grup, perwakilan layanan, atau identitas terkelola yang meminta akses ke sumber daya Azure.
Autentikasi Microsoft Entra memberikan keamanan yang unggul dan kemudahan penggunaan melalui opsi otorisasi lainnya. Misalnya, dengan menggunakan identitas terkelola, Anda menghindari harus menyimpan kunci akses akun dalam kode Anda, seperti yang Anda lakukan dengan autentikasi Kunci Akses. Meskipun Anda dapat terus menggunakan autentikasi Kunci Akses dengan aplikasi layanan komunikasi, Microsoft merekomendasikan untuk pindah ke ID Microsoft Entra jika memungkinkan.
Azure RBAC mencakup banyak peran bawaan, dapat ditetapkan pada cakupan yang berbeda, dan memungkinkan Anda membuat peran kustom Anda sendiri. Ini mencakup lebih dari 100 peran bawaan. Ada lima peran Dasar Azure - Pemilik, Kontributor, Pembaca, Administrator Kontrol Akses Berbasis Peran, dan Administrator Akses Pengguna. Untuk informasi selengkapnya tentang peran ini, kunjungi tutorial kontrol akses berbasis Peran .
Izin yang Didukung oleh Azure Communication Services (ACS)
ACS menawarkan izin tertentu (acs.read dan acs.write) yang memungkinkan akses terkontrol ke berbagai sumber daya.
- izin acs.read: memberikan kemampuan untuk mengambil atau melihat data.
- izin acs.write: mengizinkan modifikasi atau pembuatan data dalam jenis sumber daya yang sama.
Selain itu, ACS mendukung izin terkait email:
- acs.email.read: memungkinkan membaca atau mengakses data layanan terkait email.
- acs.email.write: memungkinkan modifikasi atau pembuatan data layanan terkait email.
Izin ini sangat penting untuk memastikan kontrol akses terperinci dan keamanan atas sumber daya ACS.
Mendapatkan Token RBAC Tambahan
Untuk memperoleh token untuk ACS, Anda dapat menggunakan MSAL (Microsoft Authentication Library). Berikut adalah panduan langkah demi langkah:
- Mendaftarkan Aplikasi di Microsoft Azure AD: Pastikan aplikasi Anda terdaftar di Microsoft Azure AD.
- Instal MSAL: Instal pustaka MSAL untuk platform Anda (misalnya,
Microsoft.Identity.Clientuntuk .NET). - Mengonfigurasi MSAL: Siapkan MSAL dengan ID klien, ID penyewa, dan rahasia klien aplikasi Anda.
- Memperoleh Token: Gunakan MSAL untuk memperoleh token dengan cakupan yang diperlukan (
https://communication.azure.com/.default).
Untuk petunjuk terperinci dan contoh kode, lihat dokumentasi MSAL resmi dan dokumentasi Token Akses .
Contoh Permintaan HTTP untuk Menerbitkan Token Akses ACS
Minta:
POST https://my-resource.communication.azure.com/identities/{identity}/:issueAccessToken?api-version=2023-10-01
Authorization: Bearer <your-access-token>
Content-Type: application/json
{
"scopes": [
"chat",
"voip"
]
}
Jawaban:
{
"token": "token",
"expiresOn": "2023-10-10T21:39:39.3244584+00:00"
}
Tautan bermanfaat di Azure RBAC
- Langkah-langkah untuk menetapkan peran Azure.
- Mencantumkan penetapan peran Azure menggunakan portal Microsoft Azure.
- Mendelegasikan manajemen penetapan peran Azure kepada orang lain dengan kondisi.
- peran kustom Azure.
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 ke REST API Azure Communication Services. Untuk melakukannya, Anda perlu menyediakannya dalam header Authorization menggunakan skema autentikasi HTTP Pembawa Authorization: Bearer <token>.
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.
- Membuat 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.