Ce guide explique comment créer une signature et présente les champs obligatoires et facultatifs pour les signatures.
Pour créer une signature, vous devez composer une chaîne à signer, que nous appellerons une valeur signée dans le présent guide. La valeur signée inclut des paramètres qui décrivent le contenu que vous protégez, le délai d'expiration de la valeur signée, etc.
Vous utilisez la valeur signée lors de la création d'une chaîne de signature. Vous créez une chaîne de signature en composant les paramètres de la signature, par exemple une signature Ed25519 de clé asymétrique associée à la valeur signée.
Media CDN utilise la signature composée finale pour protéger votre contenu.
Formats de signature acceptés
Media CDN est compatible avec les formats de requêtes signées suivants.
Format | Comportement | Exemple |
---|---|---|
Paramètres de requête (URL exacte) |
URL exacte, pour accorder l'accès à une URL spécifique. |
Exact :
|
Paramètres de requête (préfixe d'URL) |
Spécifier un URLPrefix vous permet de signer un préfixe et d'ajouter les mêmes paramètres de requête à plusieurs URL dans votre génération de lecteur ou de fichier manifeste.
|
Quels éléments signer :
Remplacez |
Composant de chemin |
Préfixe : permet d'accéder à n'importe quelle URL avec un préfixe placé avant le composant Cela permet aux URL de fichier manifeste relatif d'hériter automatiquement du composant d'URL signé lors de la récupération des sous-ressources. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
Cookie signé | Préfixe : le cookie permet d'accéder à n'importe quelle URL comportant le préfixe spécifié dans la valeur URLPrefix signée.
|
Edge-Cache-Cookie :
|
Créer une signature
Créez une valeur signée en concaténant une chaîne contenant les champs de signature requis et les champs de signature facultatifs souhaités.
Le cas échéant,
URLPrefix
doit apparaître en premier, suivi deExpires
,KeyName
, puis de tout paramètre facultatif.Séparez chaque champ et tous les paramètres avec les éléments suivants :
- Pour les cookies, utilisez le caractère deux-points
:
. - Pour les paramètres de requête et les composants de chemin d'accès, utilisez une esperluette
&
.
- Pour les cookies, utilisez le caractère deux-points
Signez la valeur signée avec une signature Ed25519.
Ajoutez un séparateur de champ (
:
ou&
) suivi deSignature=
et de la signature Ed25519 à la fin de la chaîne.
Créer une URL signée
Les exemples de code suivants montrent comment créer une URL signée de manière programmatique.
Go
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer un préfixe d'URL signé
Les exemples de code suivants montrent comment créer un préfixe d'URL signé par programmation.
Go
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer un cookie d'URL signée
Les exemples de code suivants montrent comment créer une URL signée par programmation un cookie.
Go
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Créer un composant de chemin signé
Les exemples de code suivants montrent comment créer un composant de chemin signé par programmation.
Python
Pour vous authentifier auprès de Media CDN, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Champs de signature obligatoires
Les champs suivants sont obligatoires pour chaque signature :
Expires
KeyName
Signature
Si des paramètres de requête sont présents, ils doivent être regroupés en tant que derniers paramètres dans l'URL. Sauf indication contraire, les noms de paramètres et leurs valeurs sont sensibles à la casse.
Le tableau suivant explique chaque paramètre :
Nom du champ | Paramètres de signature | Valeur signée |
---|---|---|
Expires |
Nombre entier de secondes écoulées depuis l'époque Unix (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME , après lequel la signature n'est plus valide. |
KeyName |
Nom de l'objet EdgeCacheKeyset utilisé pour signer cette requête. KeyName fait référence à l'ensemble de la collection de clés, et non aux clés individuelles de la collection.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Version de la signature encodée en base64. | Non applicable |
Champs de signature facultatifs
Si des paramètres de requête sont présents, ils doivent être regroupés en tant que derniers paramètres dans l'URL. Sauf indication contraire, les noms de paramètres et leurs valeurs sont sensibles à la casse.
Le tableau suivant décrit le nom et les détails de chaque paramètre de signature facultatif :
Nom du champ | Paramètres de signature | Valeur signée |
---|---|---|
HeaderName |
Nom du champ d'en-tête de requête nommé qui doit être présent dans la requête. Doit être en minuscules lorsqu'il est signé, car les noms de champs d'en-tête sont sensibles à la casse. Media CDN convertit l'en-tête en minuscules avant de valider la signature. |
HeaderName=HEADER_NAME |
HeaderValue |
Une valeur de champ d'en-tête de requête nommé qui doit être présente dans la requête. Il s'agit généralement d'un identifiant utilisateur ou d'un autre identifiant opaque. Les requêtes avec HeaderValue mais sans HeaderName sont rejetées.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Liste incluant jusqu'à cinq adresses IPv4 et IPv6 au format CIDR pour lesquelles cette URL est valide au format base64 web-safe. Par exemple, pour spécifier les plages d'adresses IP "192.6.13.13/32,193.5.64.135/32", spécifiez Les plages d'adresses IP peuvent ne pas être utiles à inclure dans les signatures lorsque les clients sont susceptibles d'effectuer des migrations WAN ou dans les cas où le chemin d'accès réseau à l'interface de l'application est différent du chemin de distribution.
Media CDN rejette les clients disposant d'un code Les cas suivants peuvent entraîner le rejet des clients avec le code
Tous ces facteurs peuvent contribuer à ce qu'un client donné ait une adresse IP non déterministe pendant une session de lecture vidéo. Si l'adresse IP du client change après avoir accordé l'accès et que le client tente de télécharger un segment vidéo dans son tampon de lecture, il reçoit une erreur |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
Préfixe d'URL en base64 (URL-safe) auquel accorder l'accès. Spécifier un URLPrefix vous permet de signer un préfixe et d'ajouter les mêmes paramètres de requête à plusieurs URL dans votre génération de lecteur ou de fichier manifeste.
L'élément URLPrefix est requis lors de l'utilisation du format de cookie signé.
|
URLPrefix=BASE_64_URL_PREFIX |