ApsaraVideo VOD vous permet d'utiliser la signature d'URL pour protéger le contenu d'origine contre les téléchargements et accès non autorisés. Cette fonctionnalité prend en charge trois types de signatures. Cette rubrique explique le fonctionnement de la signature de type C.
Fonctionnement
Structure d'une URL signée de type C
-
Format 1
http://DomainName/{<md5hash>/<timestamp>}/FileName -
Format 2
http://DomainName/FileName?{&KEY1=<md5hash>&KEY2=<timestamp>}
Remarque
Le contenu entre accolades ({}) représente les informations chiffrées ajoutées à l'URL standard.
Champs d'une URL signée
Champ | Description |
DomainName | Le nom de domaine utilisé par ApsaraVideo VOD. |
PrivateKey | La clé primaire ou secondaire configurée dans la console ApsaraVideo VOD. Pour plus d'informations, consultez Activer et configurer la signature d'URL. |
Filename | L'URL réelle pointant vers la ressource demandée sur le serveur d'origine. La valeur du champ Filename doit commencer par une barre oblique ( |
timestamp | L'instant de génération de l'URL signée. Ce timestamp et la période de validité par défaut déterminent la date d'expiration de l'URL. Le timestamp suit le format UNIX : il correspond au nombre de secondes écoulées depuis le 1er janvier 1970 à 00 h 00 min 00 s (UTC). Il s'agit d'une chaîne composée de 10 entiers décimaux positifs, indépendante du fuseau horaire. Cette chaîne décimale est convertie en une chaîne hexadécimale. Remarque Dans la plupart des cas, une URL signée expire après l'écoulement de la période de validité par défaut que vous avez spécifiée dans ApsaraVideo VOD. Si vous définissez une durée de validité spécifique sur le serveur de signature, le timestamp et la période de validité de l'URL signée sont calculés selon la formule suivante : Timestamp = Horodatage UNIX sur le serveur de signature + Durée de validité configurée sur le serveur de signature. Période de validité = Timestamp + Période de validité par défaut. |
md5hash | La chaîne calculée à l'aide de l'algorithme MD5. Elle doit contenir exactement 32 caractères alphanumériques minuscules. La valeur |
Logique de signature
Lorsqu'un nœud de présence (POP) d'Alibaba Cloud CDN reçoit une requête, il vérifie si la somme des valeurs timestamp et default validity period est antérieure à l'heure actuelle.
Si le temps calculé en additionnant les valeurs de
timestampet dedefault validity periodest antérieur à l'heure actuelle, le POP considère que l'URL a expiré et renvoie le code d'état HTTP 403.Si le temps calculé en additionnant
timestampetdefault validity periodest postérieur à l'heure actuelle, le POP génère une chaîne basée sursstringdécrite dans le tableau précédent. Il calcule ensuite la valeurmd5hashà l'aide de l'algorithme MD5 et compare ce résultat avec la valeurmd5hashcontenue dans la requête.
Exemples
L'exemple suivant illustre la mise en œuvre de la signature de type C.
Conditions de l'exemple
-
Récupération d'un objet depuis le serveur d'origine :
http://domain.example.com/test.flvRemarqueSi l'URL de l'objet demandé contient des caractères chinois, encodez l'URL avant de construire l'URL signée.
URL d'origine :
https://example.com/image/aliyun.jpgURL encodée :
https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg
Définissez PrivateKey sur
aliyuncdnexp1234.Définissez timestamp sur
55CE8100.
Procédure de construction
-
Générez la chaîne de signature utilisée pour calculer la valeur
md5hash.aliyuncdnexp1234/test.flv55CE8100 -
Calculez la valeur
md5hashà partir de cette chaîne de signature.md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100) = a37fa50a5fb8f71214b1e7c95ec7a1bd -
Construisez l'URL signée.
-
Format 1 :
http://domain.example.com/a37fa50a5fb8f71214b1e7c95ec7a1bd/55CE8100/test.flv -
Format 2 :
http://domain.example.com/test.flv?KEY1=a37fa50a5fb8f71214b1e7c95ec7a1bd&KEY2=55CE8100
-
Lorsqu'un client utilise une URL signée pour demander une ressource, Alibaba Cloud CDN compare la valeur md5hash calculée avec celle incluse dans la requête (md5hash). Si les deux valeurs correspondent, comme a37fa50a5fb8f71214b1e7c95ec7a1bd, la requête passe l'authentification. Dans le cas contraire, elle est rejetée.