URL imzalama, kaynak sunucunuzdaki kaynaklara yetkisiz erişimi engeller. Alibaba Cloud CDNDCDN dört farklı URL imzalama yöntemi sunar. F türü, basit kimlik doğrulama için özel anahtar ve varsayılan parametre adlarıyla MD5 karma algoritmasını kullanır.
F türü; özel bir anahtar ile MD5 algoritmasını ve sign ile time varsayılan parametre adlarını kullanır. Çoğu temel kimlik doğrulama senaryosu için uygundur.
İmzalı URL Türkçe karakterler içermemelidir.
URL imzalama, zaten sorgu parametresi (?) içeren URL'leri desteklemez çünkü imzalama işlemi kendi sorgu parametrelerini URL'ye ekler.
Çalışma mekanizması
-
İmzalı URL biçimi
İmzalı URL aşağıdaki biçimi kullanır:
http://DomainName/FileName?{sign=<md5hash>&time=<timestamp>}Not{}içindeki içerik, standart URL'ye eklenen kimlik doğrulama parametrelerini gösterir.signvetimeparametre adları varsayılandır. URL imzalamayı yapılandırın konsolunda Signature Parameter ve Timestamp Parameter değerlerini özelleştirebilirsiniz. -
Parametre
Açıklama
DomainName
CDN tarafından hızlandırılan alan adı.
PrivateKey
Büyük harfler, küçük harfler ve rakamlardan oluşan, 16 ila 32 karakter uzunluğunda özel bir şifreleme anahtarı.
FileName
Kaynağa yönelik istek için kaynak yolu. Eğik çizgi (
/) ile başlamalıdır.timestamp
İmzalama sunucusunun imzalı URL'yi oluşturduğu zaman. Geçerlilik süresiyle birlikte bu değer, imzalı URL'nin ne zaman sona ereceğini belirler. Zaman damgası, 1 Ocak 1970 UTC 00:00:00'dan itibaren geçen saniye sayısını ifade eden UNIX zaman damgasıdır. Saat dilimlerinden bağımsız, 10 basamaklı pozitif ondalık tamsayıdır. URL imzalamayı yapılandırın konsolunda zaman damgası biçimini ondalık (UNIX zaman damgası) veya onaltılık (UNIX zaman damgası) olarak ayarlayabilirsiniz.
NotURL İmzalamayı Yapılandırın konsolunda TTL değerini ayarlayın. İmzalı URL,
timestamp+ yapılandırılan geçerlilik süresi sonunda sona erer.md5hash
MD5 algoritmasıyla oluşturulan 32 karakterlik bir dize. 0–9 arası rakamlar ve a–z arası küçük harflerden oluşur.
md5hashdeğeri aşağıdaki imzalama dizesinden üretilir:sstring = "Privatekey+URI+timestamp" (where URI is the relative path of the requested object, such as /Filename, and does not include query parameters) md5hash = md5sum(sstring) -
Kimlik doğrulama mantığı
Bir CDNDCDN kenar düğümü istek aldığında öncelikle
timestamp+validity periodsüresinin dolup dolmadığını kontrol eder.timestamp+validity perioddeğeri geçerli saatten önceyse istek süresi dolmuş demektir. Sunucu HTTP 403 hatası döndürür.-
timestamp+validity perioddeğeri geçerli saatten sonraysa sunucusstringbiçiminde bir imzalama dizesi oluşturur, MD5 değerini hesaplar ve sonucu istektekimd5hashdeğeriyle karşılaştırır.-
Değerler eşleşirse kimlik doğrulama başarılı olur ve istenen kaynak döndürülür.
NotKimlik doğrulama başarılı olduktan sonra kenar düğümü, önbellek isabet oranını artırmak ve kaynağa dönüş trafiğini azaltmak için kimlik doğrulama parametrelerini URL'den kaldırır. Örneğin:
İmzalama parametrelerini içeren URL:
http://DomainName/FileName?{sign=<md5hash>&time=<timestamp>}-
Kimlik doğrulama sonrası:
Önbellek anahtarını oluşturmak için kullanılan URL:
http://DomainName/FileNameKaynağa dönüş isteği için kullanılan URL:
http://DomainName/FileName
Değerler eşleşmezse kimlik doğrulama başarısız olur ve sunucu HTTP 403 hatası döndürür.
-
Örnek
Aşağıdaki örnek, F türü URL imzalamayı göstermektedir.
-
Örnek koşullar
-
Kaynak sunucudan bir nesne alın:
http://domain.example.com/test.flvNotİstek URL'si ASCII dışı karakterler içeriyorsa önce URL'yi kodlamanız gerekir. Karma dizesini oluşturmak için kodlanmış URL'yi kullanın. Örneğin:
Orijinal URL:
https://example.com/image/AlibabaCloud.jpgKodlanmış URL:
https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg
PrivateKey değerini
aliyuncdnexp1234olarak ayarlayın.Zaman damgasını
55CE8100olarak ayarlayın.
-
-
İşlem
-
Privatekey+URI+timestampbiçimindesstringimzalama dizesini oluşturun.aliyuncdnexp1234/test.flv55CE8100 -
İmzalama dizesinin MD5 karmasını hesaplayın:
md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100) = a37fa50a5fb8f71214b1e7c95ec7a1bd -
İmzalı URL'yi oluşturmak için imzalama sonucunu ve zaman damgasını sorgu parametresi olarak ekleyin:
http://domain.example.com/test.flv?sign=a37fa50a5fb8f71214b1e7c95ec7a1bd&time=55CE8100
-
Bir istemci imzalı bir URL ile kaynak istediğinde, CDNDCDN sunucusunun hesapladığı md5hash değeri istekteki md5hash değeriyle (örneğin a37fa50a5fb8f71214b1e7c95ec7a1bd) eşleşirse ve URL'nin süresi dolmamışsa kimlik doğrulama başarılı olur. Aksi takdirde kimlik doğrulama başarısız olur.