Utilisation d’Azure CDN avec SAPUsing Azure CDN with SAS

Quand vous configurez un compte de stockage pour Azure Content Delivery Network (CDN) en vue de l’utiliser comme cache de contenu, par défaut toute personne connaissant les URL de vos conteneurs de stockage peut accéder aux fichiers que vous avez chargés.When you set up a storage account for Azure Content Delivery Network (CDN) to use to cache content, by default anyone who knows the URLs for your storage containers can access the files that you've uploaded. Pour protéger les fichiers dans votre compte de stockage, vous pouvez rendre privé l’accès à vos conteneurs de stockage.To protect the files in your storage account, you can set the access of your storage containers from public to private. Toutefois, si vous le faites, personne ne peut accéder à vos fichiers.However, if you do so, no one will be able to access your files.

Si vous souhaitez accorder un accès limité à des conteneurs de stockage privé, vous pouvez utiliser la fonctionnalité de signature d’accès partagé (SAP) de votre compte de stockage Azure.If you want to grant limited access to private storage containers, you can use the Shared Access Signature (SAS) feature of your Azure storage account. Une SAP est un URI qui octroie des droits d’accès restreints à vos ressources Stockage Azure sans exposer votre clé de compte.A SAS is a URI that grants restricted access rights to your Azure Storage resources without exposing your account key. Vous pouvez fournir une SAP aux clients auxquels vous préférez ne pas donner votre clé de compte de stockage, mais auxquels vous souhaitez déléguer l’accès à certaines ressources de compte de stockage.You can provide a SAS to clients that you do not trust with your storage account key but to whom you want to delegate access to certain storage account resources. Quand vous distribuez un URI de signature d’accès partagé à ces clients, vous leur accordez l’accès à une ressource pour une période spécifiée.By distributing a shared access signature URI to these clients, you grant them access to a resource for a specified period of time.

Avec une signature SAP, vous pouvez définir différents paramètres d’accès à un objet blob, tels que les heures de début et d’expiration, les autorisations (lecture/écriture) et les plages d’adresses IP.With a SAS, you can define various parameters of access to a blob, such as start and expiry times, permissions (read/write), and IP ranges. Cet article décrit comment utiliser la SAP avec Azure CDN.This article describes how to use SAS in conjunction with Azure CDN. Pour plus d’informations sur les SAP, notamment sur la création de leurs options de paramètre, consultez Utilisation des signatures d’accès partagé (SAP).For more information about SAS, including how to create it and its parameter options, see Using shared access signatures (SAS).

Configuration d’Azure CDN pour fonctionner avec une SAP de stockageSetting up Azure CDN to work with storage SAS

Les trois options suivantes sont recommandées pour l’utilisation de SAP avec Azure CDN.The following three options are recommended for using SAS with Azure CDN. Toutes les options partent du principe que vous avez déjà créé une SAP opérationnelle (voir les prérequis).All options assume that you have already created a working SAS (see prerequisites).

PrérequisPrerequisites

Pour commencer, créez un compte de stockage, puis générez une SAP pour votre ressource.To start, create a storage account and then generate a SAS for your asset. Vous pouvez générer deux types de signatures d’accès partagé : une SAP de service ou une SAP de compte.You can generate two types of stored access signatures: a service SAS or an account SAS. Pour plus d’informations, consultez Types de signatures d’accès partagé.For more information, see Types of shared access signatures.

Après avoir généré un jeton SAP, vous pouvez accéder à votre fichier de stockage d’objets blob en ajoutant ?sv=<SAS token> à l’URL.After you've generated a SAS token, you can access your blob storage file by appending ?sv=<SAS token> to your URL. Cette URL a le format suivant :This URL has the following format:

https://<account name>.blob.core.windows.net/<container>/<file>?sv=<SAS token>

Par exemple :For example:

https://democdnstorage1.blob.core.windows.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=co&sp=r&se=2038-01-02T21:30:49Z&st=2018-01-02T13:30:49Z&spr=https&sig=QehoetQFWUEd1lhU5iOMGrHBmE727xYAbKJl5ohSiWI%3D

Pour plus d’informations sur la définition des paramètres, consultez Considérations relatives aux paramètres SAP et Paramètres de la signature d’accès partagé (SAP).For more information about setting parameters, see SAS parameter considerations and Shared access signature parameters.

Paramètres de SAP CDN

Option 1 : Utilisation de SAP avec transfert direct vers le stockage blob à partir d'Azure CDNOption 1: Using SAS with pass-through to blob storage from Azure CDN

Cette option est la plus simple. Elle utilise un jeton SAP unique, qui est passé d’Azure CDN au serveur d’origine.This option is the simplest and uses a single SAS token, which is passed from Azure CDN to the origin server.

  1. Sélectionnez un point de terminaison, sélectionnez Règles de mise en cache, puis sélectionnez Mettre en cache chaque URL unique dans la liste Mise en cache de chaîne de requête.Select an endpoint, select Caching rules, then select Cache every unique URL from the Query string caching list.

    Règles de mise en cache de CDN

  2. Après avoir configuré SAP sur votre compte de stockage, vous devez utiliser le jeton SAP avec les URL du point de terminaison CDN et du serveur d’origine pour accéder au fichier.After you set up SAS on your storage account, you must use the SAS token with the CDN endpoint and origin server URLs to access the file.

    L’URL de point de terminaison CDN qui en résulte a le format suivant : https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>The resulting CDN endpoint URL has the following format: https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>

    Par exemple :For example:

    https://demoendpoint.azureedge.net/container1/demo.jpg/?sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D
    
  3. Affinez la durée du cache à l’aide de règles de mise en cache ou en ajoutant des en-têtes Cache-Control au serveur d’origine.Fine-tune the cache duration either by using caching rules or by adding Cache-Control headers at the origin server. Étant donné qu’Azure CDN traite le jeton SAP comme une chaîne de requête simple, la bonne pratique consiste à définir une durée de mise en cache qui expire au plus tard au moment de l’expiration de la signature SAP.Because Azure CDN treats the SAS token as a plain query string, as a best practice you should set up a caching duration that expires at or before the SAS expiration time. Dans le cas contraire, si un fichier est mis en cache pour une durée plus longue que celle pendant laquelle la signature SAP est active, le fichier peut être accessible à partir du serveur d’origine Azure CDN après l’expiration de la SAP.Otherwise, if a file is cached for a longer duration than the SAS is active, the file may be accessible from the Azure CDN origin server after the SAS expiration time has elapsed. Si ce cas se produit et que vous souhaitez rendre votre fichier de mise en cache inaccessible, vous devez effectuer une opération de vidage sur le fichier afin de le supprimer du cache.If this situation occurs, and you want to make your cached file inaccessible, you must perform a purge operation on the file to clear it from the cache. Pour plus d’informations sur la définition de la durée du cache sur Azure CDN, consultez Contrôler le comportement de mise en cache d’Azure CDN avec des règles de mise en cache.For information about setting the cache duration on Azure CDN, see Control Azure CDN caching behavior with caching rules.

Option n°2 : Jeton SAP CDN masqué utilisant une règle de réécritureOption 2: Hidden CDN SAS token using a rewrite rule

Cette option est disponible uniquement pour les profils Azure CDN Premium de Verizon.This option is available only for Azure CDN Premium from Verizon profiles. Avec cette option, vous pouvez sécuriser le stockage blob sur le serveur d’origine.With this option, you can secure the blob storage at the origin server. Vous pouvez utiliser cette option si vous n’avez pas besoin de restrictions d’accès spécifiques pour le fichier, mais que vous voulez empêcher les utilisateurs d’accéder à l’origine du stockage directement afin d’accélérer le temps de déchargement d’Azure CDN.You may want to use this option if you don't need specific access restrictions for the file, but want to prevent users from accessing the storage origin directly to improve Azure CDN offload times. Le jeton SAP, qui est inconnu de l’utilisateur, est nécessaire à quiconque accède aux fichiers dans le conteneur spécifié du serveur d’origine.The SAS token, which is unknown to the user, is required for anyone accessing files in the specified container of the origin server. Toutefois, en raison de la règle de réécriture d’URL, le jeton SAP n’est pas nécessaire sur le point de terminaison CDN.However, because of the URL Rewrite rule, the SAS token is not required on the CDN endpoint.

  1. Utilisez le moteur de règles pour créer une règle de réécriture d’URL.Use the rules engine to create a URL Rewrite rule. La propagation de nouvelles règles peut prendre jusqu’à 4 heures.New rules take up to 4 hours to propagate.

    Bouton Gérer du CDN

    Bouton de moteur de règles de CDN

    L’exemple de règle de réécriture d’URL suivant utilise un modèle d’expression régulière avec un groupe de capture et un point de terminaison nommé sasstoragedemo :The following sample URL Rewrite rule uses a regular expression pattern with a capturing group and an endpoint named sasstoragedemo:

    Source :Source:
    (container1/.*)

    Destination :Destination:

    $1?sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D
    

    Règle de réécriture d’URL CDN – gauche Règle de réécriture d’URL CDN – droiteCDN URL Rewrite rule - left CDN URL Rewrite rule - right

  2. Une fois la nouvelle règle active, tous les utilisateurs peuvent accéder aux fichiers dans le conteneur spécifié sur le point de terminaison CDN, même s’ils n’utilisent pas de jeton SAP dans l’URL.After the new rule becomes active, anyone can access files in the specified container on the CDN endpoint regardless of whether they're using a SAS token in the URL. Voici le format : https://<endpoint hostname>.azureedge.net/<container>/<file>Here is the format: https://<endpoint hostname>.azureedge.net/<container>/<file>

    Par exemple :For example:
    https://sasstoragedemo.azureedge.net/container1/demo.jpg

  3. Affinez la durée du cache à l’aide de règles de mise en cache ou en ajoutant des en-têtes Cache-Control au serveur d’origine.Fine-tune the cache duration either by using caching rules or by adding Cache-Control headers at the origin server. Étant donné qu’Azure CDN traite le jeton SAP comme une chaîne de requête simple, la bonne pratique consiste à définir une durée de mise en cache qui expire au plus tard au moment de l’expiration de la signature SAP.Because Azure CDN treats the SAS token as a plain query string, as a best practice you should set up a caching duration that expires at or before the SAS expiration time. Dans le cas contraire, si un fichier est mis en cache pour une durée plus longue que celle pendant laquelle la signature SAP est active, le fichier peut être accessible à partir du point de terminaison Azure CDN après l’expiration de la SAP.Otherwise, if a file is cached for a longer duration than the SAS is active, the file may be accessible from the Azure CDN endpoint after the SAS expiration time has elapsed.. Si ce cas se produit et que vous souhaitez rendre votre fichier de mise en cache inaccessible, vous devez effectuer une opération de vidage sur le fichier afin de le supprimer du cache.If this situation occurs, and you want to make your cached file inaccessible, you must perform a purge operation on the file to clear it from the cache. Pour plus d’informations sur la définition de la durée du cache sur Azure CDN, consultez Contrôler le comportement de mise en cache d’Azure CDN avec des règles de mise en cache.For information about setting the cache duration on Azure CDN, see Control Azure CDN caching behavior with caching rules.

Option 3 : Utilisation de l'authentification de jeton de sécurité de CDN avec une règle de réécritureOption 3: Using CDN security token authentication with a rewrite rule

Pour utiliser l’authentification de jeton de sécurité d’Azure CDN, vous devez avoir un profil Azure CDN Premium de Verizon.To use Azure CDN security token authentication, you must have an Azure CDN Premium from Verizon profile. Cette option est la plus sécurisée et personnalisable.This option is the most secure and customizable. L’accès du client est basé sur les paramètres de sécurité que vous avez définis sur le jeton de sécurité.Client access is based on the security parameters that you set on the security token. Une fois que vous aurez créé et configuré le jeton de sécurité, il sera nécessaire sur toutes les URL de point de terminaison CDN.Once you've created and set up the security token, it will be required on all CDN endpoint URLs. Toutefois, en raison de la règle de réécriture d’URL, le jeton SAP n’est pas nécessaire sur le point de terminaison CDN.However, because of the URL Rewrite rule, the SAS token is not required on the CDN endpoint. Si le jeton SAP devient non valide, Azure CDN ne peut plus revalider le contenu à partir du serveur d’origine.If the SAS token later becomes invalid, Azure CDN will no longer be able to revalidate the content from the origin server.

  1. Créez un jeton de sécurité Azure CDN et activez-le à l’aide du moteur de règles pour le point de terminaison de CDN et du chemin où les utilisateurs peuvent accéder au fichier.Create an Azure CDN security token and activate it by using the rules engine for the CDN endpoint and path where your users can access the file.

    Une URL de point de terminaison de jeton de sécurité a le format suivant :A security token endpoint URL has the following format:
    https://<endpoint hostname>.azureedge.net/<container>/<file>?<security_token>

    Par exemple :For example:

    https://sasstoragedemo.azureedge.net/container1/demo.jpg?a4fbc3710fd3449a7c99986bkquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D
    

    Les options de paramètres pour l’authentification de jeton de sécurité diffèrent de celles pour un jeton SAP.The parameter options for a security token authentication are different than the parameter options for a SAS token. Si vous choisissez d’utiliser un délai d’expiration quand vous créez un jeton de sécurité, vous devez lui affecter la même valeur que le délai d’expiration du jeton SAP.If you choose to use an expiration time when you create a security token, you should set it to the same value as the expiration time for the SAS token. Cela garantit le caractère prévisible du délai d’expiration.Doing so ensures that the expiration time is predictable.

  2. Utilisez le moteur de règles pour créer une règle de réécriture d’URL visant à activer l’accès du jeton SAP à tous les objets blob dans le conteneur.Use the rules engine to create a URL Rewrite rule to enable SAS token access to all blobs in the container. La propagation de nouvelles règles peut prendre jusqu’à 4 heures.New rules take up to 4 hours to propagate.

    L’exemple de règle de réécriture d’URL suivant utilise un modèle d’expression régulière avec un groupe de capture et un point de terminaison nommé sasstoragedemo :The following sample URL Rewrite rule uses a regular expression pattern with a capturing group and an endpoint named sasstoragedemo:

    Source :Source:
    (container1/.*)

    Destination :Destination:

    $1&sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D
    

    Règle de réécriture d’URL CDN – gauche Règle de réécriture d’URL CDN – droiteCDN URL Rewrite rule - left CDN URL Rewrite rule - right

  3. Si vous renouvelez la signature SAP, n’oubliez pas de mettre à jour la règle de réécriture d’URL avec le nouveau jeton SAP.If you renew the SAS, ensure that you update the Url Rewrite rule with the new SAS token.

Considérations relatives aux paramètres SAPSAS parameter considerations

Azure CDN ne peut pas changer son comportement de remise en se basant sur les paramètres SAP, car il ne le voit pas.Because SAS parameters are not visible to Azure CDN, Azure CDN cannot change its delivery behavior based on them. Les restrictions de paramètres définies s’appliquent uniquement aux requêtes envoyées par Azure CDN au serveur d’origine, et non aux requêtes du client vers Azure CDN.The defined parameter restrictions apply only on requests that Azure CDN makes to the origin server, not for requests from the client to Azure CDN. Cette distinction est importante quand vous définissez des paramètres SAP.This distinction is important to consider when you set SAS parameters. Si ces fonctionnalités avancées sont nécessaires et que vous utilisez l’Option 3, définissez les restrictions appropriées sur le jeton de sécurité Azure CDN.If these advanced capabilities are required and you are using Option 3, set the appropriate restrictions on the Azure CDN security token.

Nom du paramètre SAPSAS parameter name DescriptionDescription
DémarrerStart Heure à laquelle Azure CDN peut commencer à accéder au fichier blob.The time that Azure CDN can begin to access the blob file. En raison des variations d’horloges (quand un signal d’horloge arrive à des moments différents pour différents composants), vous devez choisir une heure 15 minutes plus tôt si vous souhaitez que la ressource soit disponible immédiatement.Due to clock skew (when a clock signal arrives at different times for different components), choose a time 15 minutes earlier if you want the asset to be available immediately.
EndEnd Heure après laquelle Azure CDN ne peut plus accéder au fichier blob.The time after which Azure CDN can no longer access the blob file. Les fichiers précédemment mis en cache sur Azure CDN sont toujours accessibles.Previously cached files on Azure CDN are still accessible. Pour contrôler le délai d’expiration de fichier, définissez le délai d’expiration approprié sur le jeton de sécurité Azure CDN ou nettoyez la ressource.To control the file expiry time, either set the appropriate expiry time on the Azure CDN security token or purge the asset.
Adresses IP autoriséesAllowed IP addresses facultatif.Optional. Si vous utilisez Azure CDN de Verizon, vous pouvez affecter à ce paramètre les plages définies dans Azure CDN from Verizon Edge Server IP Ranges (Plages d’adresses IP de serveur Edge Azure CDN de Verizon).If you are using Azure CDN from Verizon, you can set this parameter to the ranges defined in Azure CDN from Verizon Edge Server IP Ranges. Si vous utilisez CDN Azure d’Akamai, vous ne pouvez pas définir le paramètre de plages IP, car les adresses IP ne sont pas statiques.If you are using Azure CDN from Akamai, you cannot set the IP ranges parameter because the IP addresses are not static.
Protocoles autorisésAllowed protocols Protocole(s) autorisé(s) pour une requête effectuée avec la SAP de compte.The protocol(s) allowed for a request made with the account SAS. Le paramètre HTTPS est recommandé.The HTTPS setting is recommended.

Étapes suivantesNext steps

Pour plus d'informations sur les SAP, voir les articles suivants :For more information about SAS, see the following articles:

Pour plus d’informations sur la configuration de l’authentification par jeton, voir Sécuriser des ressources Azure Content Delivery Network avec l’authentification par jeton.For more information about setting up token authentication, see Securing Azure Content Delivery Network assets with token authentication.