Konten yang didistribusikan melalui ApsaraVideo VOD bersifat publik secara default. Untuk mencegah pengunduhan dan hotlinking tidak sah, Anda dapat mengaktifkan Penandatanganan URL bersama dengan langkah-langkah lain seperti Perlindungan hotlink berbasis referer dan daftar izin/blokir alamat IP. Penandatanganan URL memvalidasi string signature dan timestamp dalam URL permintaan untuk melindungi sumber daya server origin Anda.
Cara kerja
Penandatanganan URL ApsaraVideo VOD mengoordinasikan antara POP CDN Alibaba Cloud dan server aplikasi Anda untuk mencegah akses tidak sah. Komponen-komponen berikut terlibat:
-
Application server: Menghasilkan URL yang ditandatangani berdasarkan aturan yang telah ditentukan, termasuk algoritma penandatanganan dan kunci.
-
Aplikasi atau browser pengguna: Meminta resource dengan mengirimkan URL yang ditandatangani ke POP CDN untuk divalidasi.
-
POP CDN: Memvalidasi informasi dalam URL yang ditandatangani, seperti string signature dan timestamp.
Proses autentikasi bekerja sebagai berikut:
-
Anda mengonfigurasi aturan untuk menghasilkan URL yang ditandatangani di server aplikasi Anda.
-
Sebuah client meminta URL yang ditandatangani dari server aplikasi Anda.
-
Server aplikasi Anda mengembalikan URL yang ditandatangani untuk resource yang diminta.
-
Client menggunakan URL yang ditandatangani tersebut untuk meminta resource dari POP CDN.
-
POP CDN memvalidasi informasi autentikasi dalam URL yang ditandatangani.
-
Jika autentikasi gagal, permintaan ditolak.
-
Jika autentikasi berhasil, POP CDN memproses permintaan tersebut.
-
-
Jika autentikasi berhasil, POP CDN menyajikan resource berdasarkan logika caching-nya.
Catatan-
Jika permintaan menghasilkan cache miss, POP CDN melakukan origin fetch. Sebelum melakukannya, POP CDN menghapus parameter autentikasi dari URL yang ditandatangani untuk mengembalikan URL aslinya (misalnya,
http://DomainName/FileName). POP CDN kemudian menggunakan URL asli ini untuk menghasilkan kunci cache atau mengambil konten dari server origin Anda. -
Setelah CDN mengautentikasi URL permintaan, CDN melakukan escaping karakter khusus dalam URL, seperti
=dan+.
-
Aktifkan dan konfigurasikan Penandatanganan URL
-
Pastikan Anda telah mengonfigurasi aturan untuk menghasilkan URL yang ditandatangani di server aplikasi Anda, termasuk algoritma penandatanganan dan kunci.
-
Logika Penandatanganan URL di ApsaraVideo VOD harus sesuai dengan logika di server aplikasi Anda.
-
Masuk ke Konsol ApsaraVideo VOD.
-
Di panel navigasi sebelah kiri, pilih Configuration Management > CDN Configuration > Domain Names.
-
Temukan nama domain yang akan dikonfigurasi dan klik Configure pada kolom Actions.
-
Klik Resource Access Control.
-
Buka tab URL Signing dan klik Modify di bagian Set URL Signing.
-
Aktifkan URL Signing dan konfigurasikan parameter autentikasi.
Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
Type
ApsaraVideo VOD mendukung tiga metode penandatanganan. Pilih metode yang sesuai dengan format URL yang ditandatangani yang Anda butuhkan:
CatatanKesalahan Penandatanganan URL mengembalikan kode status 403.
-
Kesalahan Hash MD5
Contoh:
X-Tengine-Error:denied by req auth: invalid md5hash=de7bfdc915ced05e17380a149bd7**** -
Kesalahan Timestamp
Contoh:
X-Tengine-Error:denied by req auth: expired timestamp=143946****
Primary Key
Masukkan primary key untuk metode penandatanganan yang dipilih. Kunci harus terdiri dari 6 hingga 32 karakter dan hanya boleh berisi huruf kapital, huruf kecil, dan angka.
Secondary Key
Masukkan secondary key untuk metode penandatanganan yang dipilih. Kunci harus terdiri dari 6 hingga 32 karakter dan hanya boleh berisi huruf kapital, huruf kecil, dan angka. Anda harus menyediakan setidaknya satu kunci (Primary atau Secondary).
CatatanPenggunaan secondary key mencegah gangguan layanan dengan menjaga validitas URL yang ditandatangani menggunakan kunci lama selama proses rotasi kunci.
Default Validity Period
Durasi validitas URL yang ditandatangani. Akses diperbolehkan hingga timestamp URL ditambah periode validitas ini.
-
Default: 30. Satuan: Menit.
-
Contoh: Jika server penandatanganan menghasilkan URL yang ditandatangani pada 2020-08-15 15:00:00 (UTC+8) dan Default Validity Period diatur menjadi 30 menit, maka URL tersebut akan kedaluwarsa pada 2020-08-15 15:30:00 (UTC+8).
Support Previewing
Fitur pratinjau memungkinkan pengguna menonton atau mendengarkan sebagian file media, misalnya lima menit pertama. Fitur ini umum digunakan untuk konten berbasis langganan atau bayar-per-tayang. Untuk informasi lebih lanjut, lihat Preview videos.
-
-
Klik OK untuk menyimpan konfigurasi.
Setelah diaktifkan, Penandatanganan URL berlaku untuk semua konten yang dikirimkan melalui nama domain ini.
Untuk resource yang dikelola melalui Konsol ApsaraVideo VOD, konsol secara otomatis menghasilkan URL yang ditandatangani dengan batas waktu. Anda juga dapat memperoleh URL yang ditandatangani dengan memanggil operasi API GetPlayInfo.
CatatanSetelah Anda mengaktifkan Penandatanganan URL, fitur ini berlaku untuk URL semua aset, termasuk video, file audio, gambar mini, dan snapshot.
Nonaktifkan Penandatanganan URL
Jika Anda menonaktifkan Penandatanganan URL di ApsaraVideo VOD tetapi permintaan client masih menyertakan parameter penandatanganan, ApsaraVideo VOD tidak dapat mengembalikan URL aslinya. Setiap permintaan kemudian menghasilkan cache miss dan diteruskan ke server origin Anda, yang dapat meningkatkan biaya secara signifikan. Untuk menghindari hal ini, nonaktifkan Penandatanganan URL baik di ApsaraVideo VOD maupun di server aplikasi Anda.
-
Di bagian Set URL Signing, klik Modify.
-
Nonaktifkan sakelar Signed URL.
-
Hapus parameter penandatanganan dari URL permintaan yang dihasilkan oleh server aplikasi Anda.
Hasilkan URL yang ditandatangani
Hasilkan dari konsol
Setelah Anda mengonfigurasi Penandatanganan URL, hasilkan URL yang ditandatangani dari konsol untuk memverifikasi bahwa logika penandatanganan sudah benar.
-
Di bagian Generate Signed URL, konfigurasikan Original URL dan informasi autentikasi lainnya.
Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Description
Original URL
Masukkan Original URL lengkap. Contoh:
https://****.com/ecs.mp4.Type
Pilih tipe penandatanganan (A, B, atau C) yang telah Anda pilih pada langkah Enable and configure URL signing.
Authentication Key
Berdasarkan pengaturan yang telah Anda konfigurasi di Enable authentication and configure a signed URL, masukkan Primary Key atau Secondary Key Anda.
Validity Period
Masukkan periode validitas untuk Penandatanganan URL sesuai dengan konfigurasi yang telah Anda tentukan di Enable URL signing and configure a signed URL. Satuannya adalah detik. Contoh: 1800.
-
Klik Generate. Signed URL dan Timestamp kemudian akan ditampilkan.
URL yang ditandatangani yang dihasilkan mengikuti format
https://<domain-name>/<path>?auth_key={timestamp}-0-0-{md5hash}. Anda dapat mengklik tombol Copy untuk menyalin URL tersebut.
Hasilkan dengan SDK
Integrasikan SDK ApsaraVideo VOD dengan server aplikasi Anda dan panggil operasi GetPlayInfo untuk memperoleh URL pemutaran dengan parameter penandatanganan.
Anda tidak perlu meneruskan Primary Key saat memanggil operasi tersebut. Sistem secara otomatis menggunakan kunci yang dikonfigurasi di pengaturan URL Signing di konsol untuk menghasilkan parameter penandatanganan. Anda dapat menggunakan parameter AuthTimeout SDK untuk menentukan periode validitas (dalam detik) URL pemutaran. Jika Anda tidak mengatur parameter ini, periode validitas default yang dikonfigurasi di pengaturan URL Signing akan digunakan.
Hasilkan dengan kode
Anda juga dapat menulis kode kustom untuk menghasilkan URL yang ditandatangani menggunakan salah satu dari tiga metode penandatanganan.