L'authentification distante transfère les requêtes des utilisateurs vers un serveur d'authentification que vous spécifiez, lequel valide ces requêtes. Configurez l'authentification distante pour un nom de domaine accéléré lorsque votre propre serveur d'authentification, et non les nœuds de périphérie (POPs), doit décider si une requête est autorisée.
Fonctionnement
L'authentification distante et la signature d'URL poursuivent le même objectif : protéger les ressources afin que seuls les utilisateurs autorisés puissent y accéder. Ces deux fonctionnalités diffèrent par leur mise en œuvre :
Signature d'URL — Vous distribuez les règles de signature d'un nom de domaine aux POPs CDNDCDN, et les POPs CDNDCDN gèrent l'intégralité du processus d'échange de données et d'authentification.
Authentification distante — Vous exploitez votre propre serveur d'authentification. Lorsqu'un POP CDNDCDN reçoit une requête utilisateur, il la transfère au serveur d'authentification pour validation.
Utilisez la signature d'URL lorsque les POPs CDNDCDN peuvent appliquer eux-mêmes les règles d'authentification. Optez pour l'authentification distante lorsque votre serveur d'authentification doit prendre la décision pour chaque requête.
Le processus d'échange de données de l'authentification distante se déroule comme suit :
N° | Description de l'interaction |
① | Une requête d'accès à une ressource initiée par un utilisateur arrive sur un POP CDN, et la requête contient des paramètres d'authentification. Par exemple, l'URL de la requête d'origine est |
② | Le POP CDN reçoit la requête utilisateur et la transfère au serveur d'authentification, soit directement, soit après traitement selon les règles spécifiées. Par exemple, l'adresse du serveur d'authentification est |
③ | Le serveur d'authentification renvoie un résultat d'authentification au POP CDN en fonction des paramètres d'authentification contenus dans la requête utilisateur. |
④ | Le POP CDN exécute l'action correspondante en fonction du résultat d'authentification renvoyé par le serveur d'authentification et retourne les données appropriées à l'utilisateur. Les exemples suivants décrivent les résultats d'authentification.
|
Notes d'utilisation
Journalisation — Après avoir configuré l'authentification distante, les requêtes dont l'authentification échoue peuvent toujours atteindre les POPs CDNDCDN, mais les POPs CDNDCDN rejettent les requêtes et renvoient le code d'état HTTP que vous spécifiez dans Custom HTTP Status Code, tel que 403. Les enregistrements des requêtes client sont toujours écrits dans les journaux CDNDCDN.
Facturation — L'authentification distante transfère les requêtes des utilisateurs vers le serveur d'authentification que vous spécifiez ; vous êtes donc facturé pour le trafic même lorsque les POPs CDNDCDN bloquent les requêtes malveillantes. Le blocage des requêtes malveillantes consomme les ressources de traitement des POPs CDNDCDN. Si les clients utilisent HTTPS, vous êtes également facturé pour les requêtes HTTPS.
Prérequis
Un serveur d'authentification que vous déployez et gérez doit être disponible à une adresse accessible depuis l'extérieur.
Procédure
Connectez-vous à la console CDN.
Dans le volet de navigation de gauche, cliquez sur Domain Names.
Sur la page Domain Names, recherchez le nom de domaine cible et cliquez sur Manage dans la colonne Actions.
Dans le volet de navigation du domaine, cliquez sur Access Control.
-
Cliquez sur l'onglet Remote Authentication.
-
Activez le commutateur Remote Authentication et configurez les paramètres d'authentification distante comme indiqué sur la page.
RemarqueAprès avoir activé l'authentification distante, chaque requête utilisateur doit être transférée au serveur d'authentification pour traitement. Lorsque le volume de requêtes est élevé, tenez compte de la charge et des performances du serveur d'authentification.
Paramètre
Description
Authentication Server Address
L'adresse à laquelle le serveur d'authentification est accessible depuis l'extérieur. Le système valide l'adresse du serveur d'authentification que vous saisissez, notamment en vérifiant le format et la valeur.
Exigences de format :
L'adresse d'authentification prend en charge les protocoles HTTP et HTTPS, selon l'un des formats suivants :
http://example.com/auth,https://example.com/auth,http://192.0.2.1/auth, ouhttps://192.0.2.1/auth.
Exigences de valeur :
La valeur ne peut pas contenir 127.0.0.1 ou localhost. Le POP initie la requête d'authentification, donc l'adresse doit être accessible depuis le POP.
Request Method
La méthode de requête prise en charge par le serveur d'authentification. Valeurs valides : GET, HEAD et POST. Valeur par défaut : GET.
File Types
All : Tous les types de fichiers sont authentifiés.
Specified : Seuls les types de fichiers spécifiés sont authentifiés.
Lorsque vous spécifiez des types de fichiers, séparez plusieurs types de fichiers par une barre verticale, par exemple
mp4|flv.Les types de fichiers sont sensibles à la casse :
.jpgetJPGsont deux types de fichiers différents.
Paramètres d'URL utilisés pour l'authentification
Parameters to Retain
Contrôle quels paramètres de l'URL de la requête utilisateur sont authentifiés. Vous pouvez sélectionner Retain All Parameters, Retain Specified Parameters ou Delete All URL Parameters.
Lorsque vous conservez des paramètres spécifiés, séparez plusieurs paramètres par une barre verticale, par exemple
user|token.Les paramètres sont sensibles à la casse :
keyetKEYsont deux paramètres différents.
Custom Parameters
Ajoute des paramètres personnalisés à l'URL de la requête que le POP CDN transfère au serveur d'authentification. Vous pouvez définir les paramètres et leurs valeurs, ou utiliser les variables prédéfinies dans la console CDN.
Lorsque vous définissez des paramètres et leurs valeurs, les exigences suivantes s'appliquent :
séparez plusieurs paramètres par une barre verticale, par exemple
token=$arg_token|vendor=ali_cdn;les valeurs des paramètres sont sensibles à la casse, ce qui signifie que
keyetKEYsont deux valeurs de paramètre différentes.
Lorsque vous utilisez des variables prédéfinies, vous pouvez extraire la valeur d'une variable et l'ajouter à la requête que CDN transfère au serveur d'authentification.
Par exemple, si vous sélectionnez la variable
$http_host,host=$http_hostest ajouté à l'URL de la requête utilisateur, où host indique la valeur host dans l'en-tête de la requête utilisateur. Pour une description des noms de variables et de leur signification, consultez Variables.
En-têtes de requête utilisés pour l'authentification
Request Headers to Retain
Contrôle quels en-têtes de requête de la requête utilisateur sont authentifiés. Vous pouvez sélectionner Retain All Parameters ou Retain Specified Parameters.
Lorsque vous conservez des en-têtes de requête spécifiés, séparez plusieurs en-têtes de requête par une barre verticale, par exemple
user_agent|referer|cookies.Les en-têtes de requête ne sont pas sensibles à la casse, ce qui signifie que
http_remote_addretHTTP_Remote_Addrsont identiques.
RemarqueLorsque vous sélectionnez Retain All Parameters, le POP CDN supprime par défaut l'en-tête HOST. L'en-tête HOST contenu dans la requête d'authentification que le POP CDN transfère au serveur d'authentification est le nom de domaine accéléré, ce qui peut empêcher le serveur d'authentification de reconnaître la requête d'authentification et entraîner le renvoi d'un code d'état 404 et l'échec de l'authentification. Pour conserver l'en-tête HOST, utilisez Retain Specified Parameters ou Custom Parameters.
Custom Parameters
Ajoute des paramètres personnalisés à l'en-tête de requête que le POP CDN transfère au serveur d'authentification. Vous pouvez définir les paramètres et leurs valeurs, ou utiliser les variables prédéfinies dans la console CDN.
Lorsque vous définissez des paramètres et leurs valeurs, les exigences suivantes s'appliquent :
séparez plusieurs en-têtes de requête par une barre verticale, par exemple
User-Agent=$http_user_agent|vendor=ali_cdn.Les en-têtes de requête ne sont pas sensibles à la casse, ce qui signifie que
http_remote_addretHTTP_Remote_Addrsont identiques.
Lorsque vous utilisez des variables prédéfinies, vous pouvez extraire la valeur d'une variable et l'ajouter à la requête que CDN transfère au serveur d'authentification.
Par exemple, si vous sélectionnez la variable
$http_host,host=$http_hostest ajouté à l'URL de la requête utilisateur, où host indique la valeur host dans l'en-tête de la requête utilisateur. Pour une description des noms de variables et de leur signification, consultez Variables.
HTTP Status Code to Return
Passes Authentication
Les codes d'état HTTP que le serveur d'authentification renvoie à CDN lorsque l'authentification réussit. Vous pouvez configurer plusieurs codes d'état et les séparer par des virgules (,). Exemple : Si vous définissez le code d'état de réussite de l'authentification sur
200,206, l'authentification réussit lorsque le serveur d'authentification renvoie200ou206. Pour les codes d'état qui ne sont ni des codes de réussite ni des codes d'échec, consultez Whether to allow other status codes dans ce tableau.Fails Authentication
Les codes d'état HTTP que le serveur d'authentification renvoie à CDN lorsque l'authentification échoue. Vous pouvez configurer plusieurs codes d'état et les séparer par des virgules (,). Exemple : Si vous définissez le code d'état d'échec de l'authentification sur
400,403, l'authentification échoue lorsque le serveur d'authentification renvoie400ou403. Pour les codes d'état qui ne sont ni des codes de réussite ni des codes d'échec, consultez Whether to allow other status codes dans ce tableau.Whether to allow other status codes
Détermine comment le POP CDN gère une requête utilisateur lorsque le code d'état renvoyé par le serveur d'authentification n'est ni un code de réussite ni un code d'échec. Yes : Pour éviter que toutes les requêtes utilisateur ne soient bloquées par une exception, le POP CDN autorise la requête utilisateur. Par exemple, si le code d'état de réussite de l'authentification est défini sur 200 et que le serveur d'authentification renvoie 201, la requête utilisateur est autorisée. Si le code d'état d'échec de l'authentification est défini sur 403 et que le serveur d'authentification renvoie 404, la requête utilisateur est autorisée. No : Le POP CDN rejette la requête utilisateur.
Action que CDN exécute après l'échec de l'authentification
Custom HTTP Status Code
Le code d'état que le POP CDN renvoie à l'utilisateur lorsqu'une requête utilisateur échoue à l'authentification.
Par exemple, si vous définissez le code d'état de réponse personnalisé sur 403, le POP CDN renvoie 403 à l'utilisateur lorsqu'une requête utilisateur échoue à l'authentification.
Paramètres de délai d'attente de l'authentification
Timeout
La période mesurée entre le moment où le POP CDN initie une requête d'authentification et le moment où le POP CDN reçoit le résultat renvoyé par le serveur d'authentification. Unité : millisecondes. Valeur maximale : 3000.
Action After Timeout
Comment CDN gère une requête utilisateur après l'expiration du délai d'échange de données entre CDN et le serveur d'authentification. Vous pouvez sélectionner Autoriser ou Rejeter.
Autoriser : Si le délai d'attente de l'authentification est dépassé, CDN autorise la requête utilisateur.
Rejeter : Si le délai d'attente de l'authentification est dépassé, CDN rejette la requête utilisateur et renvoie à l'utilisateur le Custom HTTP Status Code que vous avez configuré.
-
-
Cliquez sur OK pour terminer la configuration.
Après avoir configuré avec succès la fonctionnalité d'authentification distante, vous pouvez modifier la configuration actuelle ou désactiver l'authentification distante dans l'onglet Remote Authentication. Désactivez l'authentification distante pour arrêter le transfert des requêtes utilisateur vers le serveur d'authentification.
Variables
Lorsque vous ajoutez des paramètres personnalisés, vous pouvez utiliser directement les variables prédéfinies dans la console CDNDCDN. Le tableau suivant décrit les noms de variables et leur signification.
|
Nom de la variable |
Signification de la variable |
|
$http_host |
La valeur Host dans l'en-tête de la requête. |
|
$http_user_agent |
La valeur User-Agent dans l'en-tête de la requête. |
|
$http_referer |
La valeur Referer dans l'en-tête de la requête. |
|
$http_content_type |
La valeur Content-Type dans l'en-tête de la requête. |
|
$http_x_forward_for |
La valeur X-Forwarded-For dans l'en-tête de la requête. |
|
$remote_addr |
Les informations IP du client de la requête. |
|
$scheme |
Le type de protocole de la requête. |
|
$server_protocol |
La version du protocole de la requête. |
|
$uri |
L'URI d'origine de la requête. |
|
$args |
La chaîne de requête de la requête, qui n'inclut pas le point d'interrogation (?). |
|
$request_method |
La méthode de requête. |
|
$request_uri |
Le contenu de uri+'?'+args. |