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

  1. Tentukan tanda waktu Waktu Universal Terkoordinasi (UTC) untuk permintaan di x-ms-date header atau di header HTTP Date standar. Layanan memvalidasi tanda waktu ini untuk melindungi dari serangan keamanan tertentu, termasuk serangan pemutaran ulang.

  2. Hash isi permintaan HTTP menggunakan algoritma SHA256 lalu teruskan, dengan permintaan, melalui x-ms-content-sha256 header .

  3. Buat string yang akan ditandatangani dengan menggabungkan Kata Kerja HTTP (misalnya, GET atau PUT), jalur permintaan HTTP, dan nilai Dateheader HTTP , Host dan dalam x-ms-content-sha256 format berikut:

    VERB + "\n"
    URLPathAndQuery + "\n"
    DateHeaderValue + ";" + HostHeaderValue + ";" + ContentHashHeaderValue
    
  4. Hasilkan 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>)))
    
  5. 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: