Mengamankan aset Azure Content Delivery Network dengan autentikasi token
Penting
Ini adalah fitur Azure CDN Premium dari Edgio saja, untuk mengonfigurasi aturan di Azure CDN dari Microsoft , silakan gunakan mesin aturan Standar. Aturan tingkat lanjut tidak tersedia untuk Azure CDN dari Akamai. Untuk perbandingan lengkap fitur CDN, lihat Fitur produk Azure CDN.
Gambaran Umum
Autentikasi token adalah mekanisme yang memungkinkan Anda mencegah jaringan pengiriman konten Azure melayani aset ke klien yang tidak sah. Autentikasi token biasa dilakukan untuk mencegah hotlinking konten, di mana situs web lain, seperti papan pesan, menggunakan aset Anda tanpa izin. Hotlinking dapat berpengaruh pada biaya pengiriman konten Anda. Saat Anda mengaktifkan autentikasi token pada jaringan pengiriman konten, permintaan diautentikasi oleh server edge jaringan pengiriman konten sebelum jaringan pengiriman konten mengirimkan konten.
Cara kerjanya
Autentikasi token memverifikasi bahwa permintaan dihasilkan oleh situs tepercaya dengan mengharuskan permintaan berisi nilai token yang menyimpan informasi yang dikodekan tentang pemohon. Konten ditayangkan kepada pemohon hanya jika informasi yang dienkode memenuhi persyaratan; jika tidak, permintaan akan ditolak. Anda dapat menyiapkan persyaratan dengan menggunakan satu atau beberapa parameter berikut:
- Negara/Wilayah: Mengizinkan atau menolak permintaan yang berasal dari negara/wilayah yang ditentukan oleh kode negara/wilayah.
- URL: Hanya mengizinkan permintaan yang sesuai dengan aset atau jalur yang ditentukan.
- Host: Mengizinkan atau menolak permintaan yang menggunakan host yang ditentukan dalam header permintaan.
- Referen: Mengizinkan atau menolak permintaan dari referen yang ditentukan.
- Alamat IP: Hanya mengizinkan permintaan yang dibuat dari alamat IP atau subnet IP tertentu.
- Protokol: Mengizinkan atau menolak permintaan berdasarkan protokol yang digunakan untuk meminta konten.
- Waktu kedaluwarsa: Menetapkan periode tanggal dan waktu untuk memastikan bahwa tautan tetap valid hanya untuk periode waktu terbatas.
Untuk informasi selengkapnya, lihat contoh konfigurasi terperinci untuk setiap parameter dalam Menyiapkan autentikasi token.
Penting
Jika otorisasi token diaktifkan untuk semua jalur di akun ini, mode cache standar adalah satu-satunya mode yang dapat digunakan untuk pembuatan cache string kueri. Untuk informasi selengkapnya, lihat Mengontrol perilaku penembolokan Azure Content Delivery Network dengan string kueri.
Arsitektur referensi
Diagram alur kerja berikut menjelaskan cara jaringan pengiriman konten menggunakan autentikasi token untuk bekerja dengan aplikasi web Anda.
Logika validasi token pada titik akhir jaringan pengiriman konten
Diagram alur berikut menjelaskan bagaimana Azure Content Delivery Network memvalidasi permintaan klien saat autentikasi token dikonfigurasi pada titik akhir jaringan pengiriman konten.
Menyiapkan autentikasi token
Dari portal Azure, telusuri ke profil jaringan pengiriman konten Anda, lalu pilih Kelola untuk meluncurkan portal tambahan.
Arahkan kursor ke HTTP Besar, lalu pilih Autentikasi Token di flyout. Kemudian Anda dapat menyiapkan kunci enkripsi dan parameter enkripsi seperti berikut:
Buat satu atau beberapa kunci enkripsi. Kunci enkripsi peka huruf besar/kecil dan dapat berisi kombinasi karakter alfanumerik apa saja. Jenis karakter lainnya, termasuk spasi, tidak diizinkan. Panjang maksimum adalah 250 karakter. Untuk memastikan bahwa kunci enkripsi Anda acak, disarankan agar Anda membuatnya dengan menggunakan alat OpenSSL.
Alat OpenSSL memiliki sintaksis berikut:
rand -hex <key length>
Contohnya:
OpenSSL> rand -hex 32
Untuk menghindari waktu henti, buat kunci primer dan cadangan. Kunci cadangan menyediakan akses tanpa gangguan ke konten Anda saat kunci primer sedang diperbarui.
Masukkan kunci enkripsi unik di kotak Kunci Primer dan secara opsional masukkan kunci cadangan di kotak Kunci Cadangan.
Pilih versi enkripsi minimum untuk setiap kunci dari daftar Versi Enkripsi Minimum, lalu pilih Perbarui:
- V2: Menunjukkan bahwa kunci tersebut dapat digunakan untuk membuat token versi 2.0 dan 3.0. Gunakan opsi ini hanya jika Anda beralih dari kunci enkripsi versi 2.0 warisan ke kunci versi 3.0.
- V3: (Direkomendasikan) Menunjukkan bahwa kunci hanya dapat digunakan untuk membuat token versi 3.0.
Gunakan alat enkripsi untuk menyiapkan parameter enkripsi dan membuat token. Dengan alat enkripsi, Anda dapat mengizinkan atau menolak permintaan berdasarkan waktu kedaluwarsa, negara/wilayah, referen, protokol, dan IP klien (dengan kombinasi apa pun). Meskipun tidak ada batasan jumlah dan kombinasi parameter yang dapat digabungkan untuk membentuk token, panjang total token dibatasi hingga 512 karakter.
Masukkan nilai untuk satu atau beberapa parameter enkripsi berikut di bagian Alat Enkripsi:
Nama Parameter Deskripsi ec_expire Menetapkan waktu kedaluwarsa untuk token, setelah itu token tersebut kedaluwarsa. Permintaan yang dikirimkan setelah waktu kedaluwarsa akan ditolak. Parameter ini menggunakan stempel waktu Unix, yang didasarkan pada jumlah detik sejak zaman Unix standar `1/1/1970 00:00:00 GMT`. (Anda dapat menggunakan alat online untuk mengonversi antara waktu standar dan waktu Unix.) Misalnya, jika Anda ingin token berakhir pada
12/31/2016 12:00:00 GMT
, masukkan nilai tanda waktu Unix,1483185600
.ec_url_allow Memungkinkan Anda untuk menyesuaikan token untuk aset atau jalur tertentu. Hal tersebut membatasi akses terhadap permintaan yang URL-nya dimulai dengan jalur relatif tertentu. URL peka huruf besar/kecil. Masukkan beberapa jalur dengan memisahkan setiap jalur dengan koma; jangan menambahkan spasi. Bergantung pada persyaratan Anda, Anda dapat menyiapkan nilai yang berbeda untuk menyediakan tingkat akses yang berbeda. Misalnya, untuk URL
http://www.mydomain.com/pictures/city/strasbourg.png
, permintaan ini diizinkan untuk nilai input berikut:- Nilai input `/`: Semua permintaan diizinkan.
- Nilai input '/pictures', permintaan berikut diizinkan:
- 'http://www.mydomain.com/pictures.png'
- 'http://www.mydomain.com/pictures/city/strasbourg.png'
- 'http://www.mydomain.com/picturesnew/city/strasbourgh.png'
- Nilai input `/pictures/`: Hanya permintaan yang berisi jalur `/pictures/` yang diizinkan. Misalnya, `http://www.mydomain.com/pictures/city/strasbourg.png`.
- Nilai input `/pictures/city/strasbourg.png`: Hanya permintaan untuk jalur dan aset khusus ini yang diizinkan.
ec_country_allow Hanya mengizinkan permintaan yang berasal dari satu atau beberapa negara/wilayah yang ditentukan. Permintaan yang berasal dari semua negara/wilayah lainnya akan ditolak. Gunakan dua huruf [ISO 3166 country/region code](/previous-versions/azure/mt761717(v=azure.100)) untuk setiap negara/kawasan dan pisahkan masing-masing dengan koma; jangan tambahkan spasi. Misalnya, jika Anda ingin mengizinkan akses hanya dari Amerika Serikat dan Prancis, masukkan `US,FR`. ec_country_deny Menolak permintaan yang berasal dari satu atau beberapa negara/wilayah yang ditentukan. Permintaan yang berasal dari semua negara/wilayah lainnya diizinkan. Penerapannya sama dengan parameter ec_country_allow. Jika kode negara/wilayah ada dalam parameter ec_country_allow maupun ec_country_deny, parameter ec_country_allow akan diprioritaskan. ec_ref_allow Hanya mengizinkan permintaan dari referen yang ditentukan. Referen mengidentifikasi URL halaman web yang ditautkan ke sumber daya yang diminta. Jangan menyertakan protokol dalam nilai parameter. Jenis input berikut diizinkan:
- Nama host atau nama host dan jalur.
- Beberapa referen. Untuk menambahkan referen, pisahkan setiap referen dengan koma; jangan menambahkan spasi. Jika Anda menentukan nilai referen, tetapi informasi referen tidak dikirim dalam permintaan karena konfigurasi browser, permintaan tersebut akan ditolak secara default.
- Permintaan dengan informasi referen yang tidak ada atau kosong. Secara default, parameter ec_ref_allow memblokir jenis permintaan ini. Untuk memungkinkan permintaan ini, masukkan teks "tidak ada", atau masukkan nilai kosong (dengan menggunakan tanda koma akhir).
- Subdomain. Untuk mengizinkan subdomain, masukkan tanda bintang (\*). Misalnya, untuk mengizinkan semua subdomain `contoso.com`, masukkan `*.contoso.com`.
Misalnya, untuk mengizinkan akses permintaan dari
www.contoso.com
, semua subdomain di bagiancontoso2.com
, dan permintaan dengan referen kosong atau tidak ada, masukkanwww.contoso.com,*.contoso.com,missing
.ec_ref_deny Menolak permintaan dari referen yang ditentukan. Penerapannya sama dengan parameter ec_ref_allow. Jika referen ada dalam parameter ec_ref_allow maupun ec_ref_deny, parameter ec_ref_allow akan diprioritaskan. ec_proto_allow Hanya mengizinkan permintaan dari protokol yang ditentukan. Nilai yang valid adalah `http`, `https`, atau `http,https`. ec_proto_deny Menolak permintaan dari protokol yang ditentukan. Penerapannya sama dengan parameter ec_proto_allow. Jika protokol ada dalam parameter ec_proto_allow maupun ec_proto_deny, parameter ec_proto_allow akan diprioritaskan. ec_clientip Membatasi akses untuk alamat IP pemohon yang ditentukan. Protokol Internet versi 4 (IPv4) dan Protokol Internet versi 6 (IPv6) didukung. Anda dapat menentukan satu alamat IP permintaan atau alamat IP yang dikaitkan dengan subnet tertentu. Misalnya, `11.22.33.0/22` memungkinkan permintaan dari alamat IP 11.22.32.1 hingga 11.22.35.254. Setelah Anda selesai memasukkan nilai parameter enkripsi, pilih kunci untuk dienkripsi (jika Anda telah membuat kunci utama dan cadangan) dari daftar Kunci Ke Enkripsi .
Pilih versi enkripsi dari daftar Versi Enkripsi: V2 untuk versi 2 atau V3 untuk versi 3 (direkomendasikan).
Pilih Enkripsi untuk membuat token.
Setelah token dihasilkan, token ditampilkan dalam kotak Token yang Dihasilkan. Untuk menggunakan token, tambahkan token tersebut sebagai string kueri ke akhir file di jalur URL Anda. Contohnya,
http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b
.Secara opsional, uji token Anda dengan alat dekripsi sehingga Anda dapat melihat parameter token Anda. Tempelkan nilai token di kotak Token untuk Mendekripsi. Pilih kunci enkripsi untuk digunakan dari daftar Kunci untuk Mendekripsi, lalu pilih Dekripsi.
Setelah token didekripsi, parameternya akan ditampilkan di kotak Parameter Asli.
Secara opsional, sesuaikan jenis kode respons yang ditampilkan saat permintaan ditolak. Pilih Diaktifkan, lalu pilih kode respons dari daftar Kode Respons. Nama Header otomatis diatur ke Lokasi. Pilih Simpan untuk mengimplementasikan kode respons baru. Untuk kode respons tertentu, Anda juga harus memasukkan URL halaman kesalahan di kotak Nilai Header. Kode respons 403 (Dilarang) dipilih secara default.
Di bagian HTTP Besar, pilih Mesin Aturan. Anda menggunakan mesin aturan untuk menentukan jalur untuk menerapkan fitur, mengaktifkan fitur autentikasi token, dan mengaktifkan kemampuan terkait autentikasi token tambahan. Untuk informasi selengkapnya, lihat Referensi mesin aturan.
Pilih aturan yang ada atau buat aturan baru untuk menentukan aset atau jalur yang Anda ingin terapkan autentikasi tokennya.
Untuk mengaktifkan autentikasi token pada aturan, pilih Autentikasi Token dari daftar Fitur, lalu pilih Diaktifkan. Pilih Perbarui jika Anda memperbarui aturan atau Tambahkan jika Anda membuat aturan.
Di mesin aturan, Anda juga dapat mengaktifkan lebih banyak fitur terkait autentikasi token. Untuk mengaktifkan salah satu dari fitur berikut, pilih fitur dari daftar Fitur, lalu pilih Diaktifkan.
Token Auth Denial Code: Menentukan jenis respons yang dikembalikan kepada pengguna saat permintaan ditolak. Seperangkat aturan di sini menggantikan kumpulan kode respons di bagian Custom Denial Handling di halaman autentikasi berbasis token.
Kasus URL Autentikasi Autentikasi Token: Menentukan apakah URL yang digunakan untuk memvalidasi token peka huruf besar/kecil.
Parameter Autentikasi Token: Mengganti nama parameter string kueri autentikasi token yang muncul di URL yang diminta.
Anda dapat menyesuaikan token Anda dengan mengakses kode sumber di GitHub. Bahasa yang tersedia meliputi:
- C
- C#
- PHP
- Perl
- Java
- Python
Fitur Azure Content Delivery Network dan harga penyedia
Untuk informasi tentang fitur, lihat Fitur produk Azure Content Delivery Network. Untuk informasi tentang harga, lihat harga Content Delivery Network.