Panduan ini menjelaskan cara membuat tanda tangan, serta kolom wajib dan opsional untuk tanda tangan.
Untuk membuat tanda tangan, Anda harus membuat string yang akan ditandatangani, yang kami sebut sebagai nilai yang ditandatangani dalam panduan ini. Nilai yang ditandatangani mencakup parameter yang mendeskripsikan konten yang Anda lindungi, waktu habis masa berlaku nilai yang ditandatangani, dan sebagainya.
Anda menggunakan nilai yang ditandatangani saat membuat string tanda tangan. Anda membuat string tanda tangan dengan menyusun parameter untuk tanda tangan, seperti tanda tangan Ed25519 kunci asimetris dari nilai yang ditandatangani.
Media CDN menggunakan tanda tangan yang disusun akhir untuk membantu melindungi konten Anda.
Format penandatanganan yang didukung
Media CDN mendukung format permintaan yang ditandatangani berikut.
Format | Perilaku | Contoh |
---|---|---|
Parameter kueri (URL persis) |
URL persis, untuk memberikan akses ke URL tertentu. |
Persis:
|
Parameter kueri (awalan URL) |
Dengan menentukan URLPrefix , Anda dapat menandatangani awalan dan menambahkan
parameter kueri yang sama ke beberapa URL dalam pembuatan
pemain atau manifes.
|
Yang harus ditandatangani:
Ganti |
Komponen jalur |
Awalan: memungkinkan akses ke URL apa pun dengan awalan sebelum
komponen Hal ini memungkinkan URL manifes relatif otomatis mewarisi komponen URL yang ditandatangani saat mengambil sub-resource. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
Cookie bertanda tangan | Awalan: cookie mengizinkan akses ke URL apa pun dengan awalan yang ditentukan
dalam nilai URLPrefix yang ditandatangani.
|
Edge-Cache-Cookie:
|
Membuat tanda tangan
Buat nilai yang ditandatangani dengan menggabungkan string yang berisi kolom tanda tangan yang diperlukan dan kolom tanda tangan opsional yang diinginkan.
Jika ditentukan,
URLPrefix
harus muncul terlebih dahulu, diikuti denganExpires
,KeyName
, lalu parameter opsional apa pun.Pisahkan setiap kolom dan parameter dengan hal berikut:
- Untuk cookie, gunakan karakter titik dua
:
. - Untuk parameter kueri dan komponen jalur, gunakan karakter ampersand
&
.
- Untuk cookie, gunakan karakter titik dua
Tanda tangani nilai yang ditandatangani dengan tanda tangan Ed25519.
Tambahkan pemisah kolom (
:
atau&
) diikuti denganSignature=
dan tanda tangan Ed25519 ke akhir string.
Membuat URL yang ditandatangani
Contoh kode berikut menunjukkan cara membuat URL yang ditandatangani secara terprogram.
Go
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Membuat awalan URL yang ditandatangani
Contoh kode berikut menunjukkan cara membuat awalan URL yang ditandatangani secara terprogram.
Go
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Membuat cookie URL yang ditandatangani
Contoh kode berikut menunjukkan cara membuat cookie URL yang ditandatangani secara terprogram.
Go
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Membuat komponen jalur yang ditandatangani
Contoh kode berikut menunjukkan cara membuat komponen jalur yang ditandatangani secara terprogram.
Python
Untuk mengautentikasi ke Media CDN, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Kolom tanda tangan yang wajib diisi
Kolom berikut wajib diisi untuk setiap tanda tangan:
Expires
KeyName
Signature
Jika ada, parameter kueri harus dikelompokkan bersama sebagai parameter terakhir di URL. Kecuali jika ditentukan lain, nama parameter dan nilainya peka huruf besar/kecil.
Tabel berikut menjelaskan setiap parameter:
Nama kolom | Parameter tanda tangan | Nilai yang ditandatangani |
---|---|---|
Expires |
Detik bilangan bulat yang telah berlalu sejak epoch Unix (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME , setelah itu
tanda tangan tidak lagi valid. |
KeyName |
Nama EdgeCacheKeyset yang digunakan untuk menandatangani permintaan
ini. KeyName mengacu pada seluruh kumpulan kunci, bukan
kunci individual dalam kumpulan kunci itu sendiri.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Versi tanda tangan yang dienkode base-64. | Tidak berlaku |
Kolom tanda tangan opsional
Jika ada, parameter kueri harus dikelompokkan bersama sebagai parameter terakhir di URL. Kecuali jika ditentukan lain, nama parameter dan nilainya peka huruf besar/kecil.
Tabel berikut menjelaskan nama dan detail setiap parameter untuk parameter tanda tangan opsional:
Nama kolom | Parameter tanda tangan | Nilai yang ditandatangani |
---|---|---|
HeaderName |
Nama kolom header permintaan yang harus ada dalam permintaan. Harus menggunakan huruf kecil saat ditandatangani karena nama kolom header peka huruf besar/kecil. Media CDN mengubah header menjadi huruf kecil sebelum memvalidasi tanda tangan. |
HeaderName=HEADER_NAME |
HeaderValue |
Nilai kolom header permintaan bernama yang harus ada dalam permintaan. Ini biasanya berupa ID pengguna atau ID buram lainnya. Permintaan
dengan HeaderValue , tetapi tanpa HeaderName ,
akan ditolak.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Daftar hingga lima alamat IPv4 dan IPv6 dalam format CIDR yang valid untuk URL ini dalam format base64 yang aman untuk web. Misalnya,
untuk menentukan rentang IP "192.6.13.13/32,193.5.64.135/32", Anda menentukan
IPRanges mungkin tidak membantu jika disertakan dalam tanda tangan saat klien
berisiko mengalami migrasi WAN atau jika jalur jaringan ke front-end
aplikasi Anda berbeda dengan jalur pengiriman.
Media CDN menolak klien dengan kode Berikut adalah kasus yang dapat menyebabkan Media CDN menolak klien dengan kode
Semua faktor ini dapat berkontribusi pada klien tertentu yang memiliki alamat IP non-deterministik selama sesi pemutaran video. Jika alamat IP klien berubah setelah Anda memberikan akses, dan klien mencoba mendownload segmen video ke buffering pemutaran, klien akan menerima |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
Awalan URL base64 (aman untuk URL) yang akan diberi akses. Dengan menentukan
URLPrefix , Anda dapat menandatangani awalan dan menambahkan parameter kueri
yang sama ke beberapa URL dalam pembuatan manifes atau pemutar.
URLPrefix wajib ada saat menggunakan format cookie yang ditandatangani.
|
URLPrefix=BASE_64_URL_PREFIX |