Untuk melindungi resource ApsaraVideo Live dari penggunaan yang tidak sah, gunakan Penandatanganan URL, daftar hitam IP, dan daftar putih IP, serta otentikasi jarak jauh. Metode-metode ini meningkatkan keamanan dan pengalaman pengguna pada aliran video langsung Anda.
Ikhtisar
Kontrol akses untuk domain ingest sangat penting untuk mengamankan resource Anda dan mencegah akses tidak sah. Fitur ini mencakup metode berikut:
URL signing: Mengatasi keterbatasan perlindungan hotlink berbasis Referer dengan memverifikasi legitimasi setiap permintaan.
IP blacklist and whitelist: Membatasi atau mengizinkan akses dari alamat IP tertentu, memungkinkan identifikasi dan penyaringan pengunjung.
Remote authentication: Meneruskan permintaan pengguna ke server otentikasi yang ditentukan untuk validasi, memberikan fleksibilitas lebih besar dan keamanan yang ditingkatkan.
URL signing
Pendahuluan
URL signing bekerja bersama server bisnis Anda untuk menyediakan metode aman dalam melindungi resource aliran langsung. Alur kerjanya sebagai berikut:
Server bisnis Anda menghasilkan signed URL yang berisi informasi otentikasi.
End user menggunakan signed URL ini untuk mengirim permintaan stream ingest ke ApsaraVideo Live.
Node edge ApsaraVideo Live mendekode dan memvalidasi signature URL tersebut. Jika tidak valid, permintaan ditolak.
Setelah ApsaraVideo Live mengotentikasi request URL, karakter khusus dalam URL (seperti = dan +) akan di-escape.
Untuk informasi lebih lanjut mengenai skenario penerapan, struktur signed URL, dan prinsip kerjanya, lihat Signed ingest and streaming URLs.
Prosedur
- Masuk ke ApsaraVideo Live console.
Di panel navigasi kiri, klik Domain Names. Halaman Domain Management akan muncul.
Temukan domain ingest yang ingin Anda kelola, lalu klik Domain Settings di kolom Actions.
Pilih Streaming Management > Access Control.
Klik tab URL Signing, lalu klik Modify.
Bagian konfigurasi otentikasi mencakup toggle URL Signing, Authentication Type (misalnya, Type A), Primary Key, Secondary Key, dan Validity Period (dalam menit).
CatatanURL signing diaktifkan secara default saat Anda menambahkan domain. Untuk menonaktifkannya pertama kali, Anda harus mengakui risiko penggunaan tidak sah dan menandatangani Perjanjian Pernyataan Tanggung Jawab.
Jika URL signing diaktifkan, klik Modify untuk memperbarui pengaturan. Jika sebelumnya Anda telah menonaktifkan URL signing, cukup aktifkan kembali toggle URL Signing untuk mengonfigurasinya ulang.
Konfigurasikan pengaturan URL signing, lalu klik OK.
Parameter
Deskripsi
Authentication Type
Domain ingest hanya mendukung penandatanganan Type A.
CatatanSemua error URL signing mengembalikan error 403. Jika Anda mengalami hal ini, hitung ulang signature-nya.
Untuk mendiagnosis penyebab pasti kegagalan, periksa header
X-Tengine-Errordalam respons HTTP:Error perhitungan MD5
Contoh:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd760beError timestamp
Contoh:
X-Tengine-Error:denied by req auth: expired timestamp=1439469547
Primary Key
Saat Anda menambahkan domain, konsol secara acak menghasilkan primary key. Anda juga dapat memasukkan primary key kustom.
Secondary Key
Masukkan password cadangan untuk otentikasi URL.
CatatanPrimary key dan secondary key memiliki validitas yang sama. Secondary key terutama digunakan untuk rotasi kunci yang lancar.
Jika Anda memperbarui primary key, semua URL yang ditandatangani dengan primary key lama menjadi tidak valid. Untuk menghindari gangguan, salin primary key lama ke field secondary key agar tetap berfungsi selama masa transisi.
Validity Period
Periode validitas menentukan berapa lama signed URL tetap valid untuk memulai ingest atau pemutaran. Ingest dan pemutaran langsung menggunakan koneksi berdurasi panjang. Setelah dimulai dalam periode validitas, sesi tersebut tetap berlanjut meskipun periode validitas telah berakhir. Namun, permintaan ingest atau pemutaran baru akan gagal jika URL telah kedaluwarsa.
Periode validitas default untuk domain yang baru ditambahkan adalah 1 hari (1440 menit). Anda dapat menyesuaikan nilai ini dalam satuan menit.
IP blacklist and whitelist
Pendahuluan
IP blacklist: Alamat IP yang ditambahkan ke daftar hitam akan ditolak aksesnya ke domain yang dipercepat.
IP whitelist: Hanya alamat IP yang ditambahkan ke daftar putih yang diizinkan mengakses domain yang dipercepat.
Baik daftar hitam maupun daftar putih mendukung alamat IPv6 dengan aturan format berikut:
Huruf heksadesimal dalam alamat IPv6 harus menggunakan huruf kapital, seperti
2001:DB8:0:23:8:800:200C:417A.Format IPv6 singkat yang menggunakan double colon (
::) tidak didukung, seperti2001:0DB8::0008:0800:200C:417A.
Baik daftar hitam maupun daftar putih mendukung Blok CIDR. Contohnya,
192.168.0.0/24.
Prosedur
- Masuk ke ApsaraVideo Live console.
Di panel navigasi kiri, klik Domain Names. Halaman Domain Management akan muncul.
Temukan domain ingest yang ingin Anda kelola, lalu klik Domain Settings di kolom Actions.
Pilih Streaming Management > Access Control.
Klik tab IP Blacklist or Whitelist dan aktifkan fitur tersebut.
Tetapkan List Type dan Rule, lalu klik OK.
Daftar hitam dan daftar putih bersifat saling eksklusif; hanya satu yang dapat aktif pada satu waktu. Anda dapat mengonfigurasi maksimal 1.000 alamat IPv6 atau 3.000 alamat IPv4. Pisahkan entri dengan baris baru, tanpa duplikasi. Notasi CIDR didukung (misalnya,
127.0.0.0/24). Alamat IPv6 tidak peka huruf besar/kecil dan tidak mendukung format singkat::.Jenis
Deskripsi
IP Blacklist
Alamat IP yang ditambahkan ke daftar hitam akan ditolak aksesnya ke domain yang dipercepat.
Whitelist
Hanya alamat IP yang ditambahkan ke daftar putih yang diizinkan mengakses domain yang dipercepat.
Remote authentication
Pendahuluan
Baik remote authentication maupun URL signing melindungi resource aliran langsung dengan memastikan hanya pengguna yang sah yang dapat mengaksesnya. Keduanya berbeda dalam implementasinya:
URL signing: Anda memberikan aturan otentikasi ke live center, yang menangani seluruh proses otentikasi.
Remote authentication: Anda mengelola server otentikasi sendiri. Saat live center menerima permintaan pengguna, permintaan tersebut diteruskan ke server otentikasi Anda untuk divalidasi. Anda bertanggung jawab atas penyiapan dan pengelolaan server ini. Remote authentication tidak mendukung HTTP Live Streaming (HLS).
Alur data untuk remote authentication adalah sebagai berikut:
Langkah | Deskripsi |
① | Pengguna mengirim permintaan akses resource yang berisi parameter otentikasi ke live center. |
② | Live center menerima permintaan dan meneruskannya langsung (atau setelah menerapkan aturan tertentu) ke server otentikasi. |
③ | Server otentikasi mengevaluasi permintaan menggunakan parameter yang diberikan dan mengembalikan hasilnya ke live center. |
④ | Live center mengambil tindakan berdasarkan hasil otentikasi dan mengembalikan data ke pengguna.
|
Prosedur
- Masuk ke ApsaraVideo Live console.
Di panel navigasi kiri, klik Domain Names. Halaman Domain Management akan muncul.
Temukan domain ingest yang ingin Anda kelola, lalu klik Domain Settings di kolom Actions.
Pilih Streaming Management > Access Control.
Klik tab Remote Authentication, aktifkan toggle-nya, dan konfigurasikan parameter sesuai petunjuk.
CatatanSetelah mengaktifkan remote authentication, setiap permintaan pengguna akan diteruskan ke server otentikasi Anda. Di bawah trafik tinggi, pastikan server Anda mampu menangani beban dan berkinerja baik.
Parameter
Deskripsi
Authentication Server Address
Alamat publik server otentikasi Anda. Sistem memvalidasi format dan nilai alamat yang Anda masukkan. Anda dapat menggunakan URL tetap atau URL berbasis variabel.
URL tetap: Mendukung HTTP(S). Nilainya tidak boleh mencakup 127.0.0.1 atau localhost karena tidak valid. Contoh:
http(s)://example.aliyundoc.com/auth
http(s)://192.0.2.1/auth
URL berbasis variabel: Bangun URL otentikasi menggunakan variabel. Untuk detailnya, lihat Variable-Based URLs.
Request Method
Menentukan metode permintaan HTTP yang digunakan live center untuk mengirim permintaan otentikasi ke server otentikasi Anda. Nilai yang valid: GET dan POST.
Pass Through URL Parameters
Mengontrol parameter mana dari URL permintaan pengguna yang digunakan untuk otentikasi. Pilih Specified Parameters Passed, Specified Parameters Not Passed, atau None.
CatatanJika Anda memilih Specified Parameters Passed atau Specified Parameters Not Passed, masukkan nama parameter di field di bawah ini, dipisahkan dengan koma (,). Contoh:
key1,key2,key3.HTTP Status Code to Return
Kode status HTTP yang dikembalikan server otentikasi Anda ke live center setelah otentikasi berhasil. Pilih salah satu dari berikut:
Successful Authentication: Setelah memilih opsi ini, masukkan kode status sukses kustom. Live center hanya mengizinkan permintaan jika server Anda mengembalikan kode ini secara tepat. Semua kode lainnya mengakibatkan penolakan.
Contoh: Tetapkan kode status sukses ke 200. Jika server Anda mengembalikan 200, otentikasi berhasil.
Failed Authentication: Setelah memilih opsi ini, masukkan kode status kegagalan kustom. Live center hanya memblokir permintaan jika server Anda mengembalikan kode ini secara tepat. Semua kode lainnya mengakibatkan persetujuan.
Contoh: Tetapkan kode status kegagalan ke 403. Jika server Anda mengembalikan 403, otentikasi gagal.
Authentication Duration (s)
Ini mengukur waktu sejak live center mengirim permintaan otentikasi hingga menerima respons dari server Anda.
Masukkan bilangan bulat antara 0 hingga 30.
Retries on Timeout
Jumlah kali live center mencoba kembali menghubungi server otentikasi Anda setelah timeout. Setelah percobaan habis, live center menjalankan tindakan yang ditentukan di bawah "Action After Timeout."
Action After Timeout
Tindakan yang diambil live center saat otentikasi timeout. Tindakan yang didukung adalah Allow dan Deny:
Allow: Saat timeout, live center mengizinkan permintaan pengguna.
Deny: Saat timeout, live center menolak permintaan dan mengembalikan kode status kegagalan (misalnya, 403) kepada pengguna.
Asynchronous Authentication
Jika diaktifkan, pemutaran dimulai tanpa menunggu hasil otentikasi jarak jauh. Jika otentikasi kemudian gagal, pemutaran dihentikan. Ini menghindari peningkatan waktu hingga frame pertama akibat penundaan otentikasi jarak jauh sinkron. Setelah beralih antara otentikasi sinkron dan asinkron, uji untuk memastikan berfungsi sesuai harapan.
Klik OK untuk menyelesaikan konfigurasi.
Setelah mengonfigurasi remote authentication, Anda dapat memodifikasi atau menonaktifkannya di tab Remote Authentication.
Buat URL dengan variabel
Anda dapat membuat URL server otentikasi menggunakan variabel seperti yang dijelaskan di bawah ini:
Jenis | Deskripsi |
Variabel Numerik | Variabel numerik seperti Sebagai contoh, jika URL ingest adalah |
Variabel Alfabet | Variabel alfabet seperti Sebagai contoh, jika URL ingest adalah |
Variabel Kustom | Variabel kustom diawali dengan awalan |
Variabel NGX | Semua variabel Semua nilai yang direferensikan diproses oleh fungsi escape URL |
Variabel Nama Aliran | Anda dapat menggunakan |
Jika URL ingest atau pemutaran adalah rtmp://domain.aliyundoc.com/app/stream?token=***&name=xrc,
dan alamat server otentikasi jarak jauh dikonfigurasi sebagai http://auth.aliyundoc.com/?app=${udv_host}&streamname=${2}&appname=${1}&token=${arg_token},
maka URL otentikasi aktual menjadi http://auth.aliyundoc.com/?app=domain.aliyundoc.com&streamname=stream&appname=app&token=***.
Izinkan stream ingest hanya dari AppName tertentu
Gunakan variabel numerik ${1} untuk meneruskan AppName dari URL ingest ke server otentikasi Anda, yang memeriksa nilai tersebut terhadap daftar putih. StreamName tidak dibatasi, sehingga setiap aliran di bawah AppName yang diizinkan dapat di-ingest, memberikan keamanan ingest per aplikasi tanpa perlu menandatangani setiap aliran secara individual. Atur Authentication Server Address menjadi http://auth.aliyundoc.com/check?AppName=${1}. Jika URL ingest adalah rtmp://domain.aliyundoc.com/myapp/stream001?token=***, live center mengirim permintaan otentikasi ke http://auth.aliyundoc.com/check?AppName=myapp. Server otentikasi Anda kemudian memeriksa apakah myapp ada dalam daftar putih dan mengembalikan kode status HTTP yang Anda konfigurasikan untuk Successful Authentication (misalnya, 200), yang membuat live center menerima ingest aliran, atau kode status HTTP yang Anda konfigurasikan untuk Failed Authentication (misalnya, 403), yang membuat live center menolaknya.