ApsaraVideo Live mendukung otentikasi callback untuk event stream ingest, recording, snapshots, dan dual-stream disaster recovery. Saat diaktifkan, ApsaraVideo Live menyertakan parameter otentikasi dalam header permintaan HTTP(S) saat menginisiasi permintaan callback, memungkinkan server penerima melakukan verifikasi signature dan stempel waktu guna mencegah permintaan yang tidak sah atau tidak valid.
Parameter otentikasi
Parameter otentikasi berikut ditambahkan ke header permintaan HTTP(S):
Parameter | Deskripsi |
ALI-LIVE-TIMESTAMP | Waktu saat permintaan callback diinisiasi, direpresentasikan sebagai Stempel waktu UNIX dalam satuan detik. |
ALI-LIVE-SIGNATURE | String signature, yaitu nilai MD5 sepanjang 32 karakter. Untuk perhitungan, lihat bagian berikut. |
Algoritma signature
Nilai ALI-LIVE-SIGNATURE dihitung dari bidang-bidang berikut:
Bidang | Contoh | Deskripsi |
Domain |
| Sumber domain bervariasi tergantung jenis callback:
|
ALI-LIVE-TIMESTAMP |
| Waktu saat permintaan callback diinisiasi, direpresentasikan sebagai Stempel waktu UNIX dalam satuan detik. |
NotifyAuthKey |
| Kunci otentikasi yang telah Anda konfigurasi. |
Penggabungan
Gabungkan ketiga bidang tersebut dengan tanda pipa (|) sebagai pemisah, lalu hitung nilai MD5-nya.
MD5Content = Domain|ALI-LIVE-TIMESTAMP|NotifyAuthKey
ALI-LIVE-SIGNATURE = md5sum(MD5Content)Contoh perhitungan
ALI-LIVE-SIGNATURE = md5sum(learn.aliyundoc.com|1519375990|yourkey)Verifikasi oleh server penerima
Server penerima callback melakukan hal-hal berikut:
Verifikasi tanda tangan
Tentukan domain callback berdasarkan jenis callback, seperti dijelaskan dalam tabel jenis dan domain callback di awal topik ini.
Gabungkan domain callback, nilai ALI-LIVE-TIMESTAMP, dan NotifyAuthKey dengan tanda pipa (
|) sebagai pemisah.Hitung nilai MD5 dari string yang digabungkan tersebut.
Bandingkan hasilnya dengan nilai header
ALI-LIVE-SIGNATURE. Jika tidak sesuai, tolak permintaan tersebut.
Verifikasi stempel waktu
Ambil waktu saat ini dan hitung selisihnya terhadap nilai ALI-LIVE-TIMESTAMP. Jika selisih tersebut melebihi ambang batas yang ditetapkan oleh server Anda, tolak permintaan tersebut.
Toleransi waktu selama 5 menit direkomendasikan. Perbedaan waktu dapat terjadi akibat clock skew antar server. Jika toleransi terlalu singkat, callback yang sah mungkin ditolak karena latensi jaringan. Anda dapat memilih apakah akan mengaktifkan pemeriksaan ini atau tidak.
Pertimbangan
Otentikasi callback bersifat opsional namun direkomendasikan. Setelah Anda menetapkan NotifyAuthKey, permintaan callback akan menyertakan header signature. Keputusan untuk memverifikasi signature tersebut sepenuhnya ada pada Anda. Menetapkan NotifyAuthKey tidak memengaruhi fungsionalitas callback yang sudah ada. Jika Anda tidak menetapkan NotifyAuthKey, callback Anda tidak terpengaruh.
NotifyAuthKey hanya berlaku setelah Anda melakukan reingest aliran. Callback untuk ingest yang sedang berlangsung tetap menggunakan NotifyAuthKey asli.