Configurer un Serveur Web pour l'Authentification des invités externes au Point d'Accès

Suivez les consignes suivantes pour configurer un serveur Web pour l'authentification des invités externes au point d'accès. Le serveur Web peut être situé sur un réseau connecté au Firebox. WatchGuard vous recommande d'installer le serveur Web dans la même partie de votre réseau que vos autres serveurs publics.

Processus d'Authentification Externe

Ce schéma résume les principales étapes de l'interaction entre le navigateur client, le Firebox et le serveur Web externe.

Schéma montrant l'interaction entre le navigateur Web, le point d'accès XTM et le serveur Web externe.

Les étapes du processus d'authentification externe sont :

  1. L'utilisateur d'un point d'accès essaie de naviguer vers une page Web.
  2. S'il s'agit d'un nouvel utilisateur du point d'accès, le Firebox redirige le navigateur client vers l'URL d'authentification sur le serveur Web externe.
    Cette URL inclut une chaîne de requête qui contient la demande d'accès.
  3. Le navigateur envoie la demande d'accès au serveur Web externe.
  4. Le serveur Web externe envoie la page d'authentification au navigateur.
  5. L'utilisateur du point d'accès tape les informations d'authentification demandées et soumet le formulaire au serveur Web externe.
  6. Le serveur Web externe traite les informations d'authentification et envoie une page HTML qui contient l'URL de décision au navigateur.
  7. Le navigateur envoie la décision d'accès au Firebox.
    L'URL de la décision d'accès contient la décision d'accès, une somme de contrôle et une URL de redirection.
  8. Le Firebox lit la décision d'accès, vérifie la somme de contrôle et envoie l'URL de redirection au navigateur client.
    En fonction du résultat du processus d'authentification externe, l'URL de redirection peut être :
    • L'URL originale vers laquelle l'utilisateur avait navigué, si le serveur Web externe a envoyé l'URL de redirection originale.
    • Une URL de redirection différente, si le serveur Web externe a envoyé une URL de redirection différente.
    • L'URL d'échec d'authentification, si l'authentification a échoué ou si l'accès a été refusé.
  9. Le serveur Web externe envoie une URL de déconnexion au Firebox pour terminer la session de l'utilisateur du point d'accès.

Les principales étapes de ce processus d'authentification externe sont plus amplement décrites dans les sections suivantes.

Exigences

Vous pouvez rédiger le programme Web en Perl, Python, PHP, ou tout autre langage de programmation. À titre de référence, nous fournissons un exemple de code écrit en Python. L'exemple de code est joint à l'article de la base de connaissances Exemple d'authentification des invités externes au point d'accès.

Sur le serveur Web, vous devez créer trois pages Web pour travailler avec cette fonctionnalité :

  • Page Authentification — Elle reçoit les informations d'authentification de l'utilisateur du point d'accès.
  • Page Résultats — Elle renvoie le résultat de l'authentification et redirige le navigateur client pour envoyer la décision d'accès au Firebox.
  • Page d'échec d'authentification — Elle montre les informations d'erreur en cas d'erreur ou si l'accès est refusé.

Ces pages sont décrites dans les sections suivantes.

Si vous souhaitez que le serveur Web puisse communiquer avec votre Firebox, vous devez vous assurer que le serveur Web peut avoir accès au Firebox.

Page Authentification

Le serveur Web doit envoyer la page d'authentification au client du point d'accès lorsqu'il reçoit une URL de demande d'accès du Firebox.

Le programme web doit enregistrer toutes les informations qui arrivent dans l'URL de demande d'accès, (Étape 2 du processus d'Authentification Externe). Le programme web peut utiliser l'horodatage et les paramètres d'adresse MAC comme clé, ou utiliser un nom de fichier pour enregistrer ces données. Lorsque le client a terminé l'authentification, le programme Web pour la Page Résultats doit récupérer ces données à partir de la demande enregistrée et les utiliser avec le secret partagé pour calculer une somme de contrôle de hachage.

L'exemple suivant montre le format d'une URL de demande d'accès :

http://10.0.2.80:8080/auth.html?xtm=http://10.0.3.1:4106/wgcgi.cgi &action=hotspot_auth&ts=1344238620&sn=70AB02716F745&mac=9C:4E:36:30:2D:26 &redirect=http://www.google.com/

L'URL de demande d'accès inclut les paramètres suivants :

xtm — L'URL du Firebox auquel le serveur Web externe doit envoyer la décision d'accès.

action — Le type d'action. Cette valeur est toujours hotspot_auth.

ts — L'horodatage pour la demande.

sn — Le numéro de série du Firebox.

mac — L'adresse MAC du client.

redirect — L'URL originale vers laquelle l'utilisateur du point d'accès essayait de naviguer.

Vous définissez les détails du processus d'authentification. Le Firebox n'a besoin de connaître que la décision d'accès et les autres paramètres requis pour vérifier l'intégrité de l'interaction.

Page Résultats

Une fois que l'utilisateur du point d'accès a fourni les informations d'authentification requises, le programme Web doit déterminer s'il autorise l'accès, en fonction des informations fournies par l'utilisateur du point d'accès et de tous les critères d'accès que vous spécifiez. Le programme Web doit combiner tous les paramètres requis en une URL, et l'inclure dans une page web qu'il envoie au navigateur du client, co.JPG, .GIF, ou .PNG.. Cette URL est appelée l'URL de décision d'accès.

L'exemple suivant montre le format d'une URL de décision d'accès :

http://10.0.3.1:4106/wgcgi.cgi?action=hotspot_auth&ts=1344238620&success=1& sess_timeout=1200&idle_timeout=600&&sig=a05d352951986e5fbf939920b260a6be3a9fffd3& redirect=http://www.google.com/

L'URL de décision d'accès commence par l'URL spécifiée dans le paramètre xtm de l'URL de demande d'accès.

L'URL de décision d'accès doit inclure tous les paramètres suivants :

action

Le type d'action. La valeur doit être hotspot_auth.

réussi

La décision concernant l'accès au point d'accès. Définissez la valeur sur 1 pour donner accès au point d'accès à l'utilisateur, ou 0 pour lui refuser l'accès.

sess_timeout

La valeur de délai d'expiration de la session pour la connexion de l'utilisateur au point d'accès. Spécifiez le nombre de secondes durant lesquelles l'utilisateur peut être connecté au point d'accès pour chaque session. Définissez la valeur sur 1 pour utiliser le paramètre Délai d'attente de la session configuré sur le Firebox. Définissez la valeur sur 0 pour désactiver la valeur de délai d'expiration de la session. Lorsque vous définissez la valeur sur 0, la connexion de l'utilisateur au point d'accès n'expire pas.

délai d'inactivité

La valeur de délai d'expiration pour la connexion de l'utilisateur au point d'accès. Spécifiez le nombre de secondes durant lesquelles une session utilisateur peut être connectée au point d'accès pour chaque session. Définissez la valeur sur -1 pour utiliser le paramètre Délai d'Inactivité configuré sur le Firebox. Définissez la valeur sur 0 pour désactiver la valeur du délai d'inactivité. Lorsque vous définissez la valeur sur 0, la connexion de l'utilisateur au point d'accès n'expire pas en l'absence de trafic entre le client utilisateur et le point d'accès.

sig

Une chaîne codée en hexadécimal en minuscule. Il s'agit d'une somme de contrôle SHA1 basée sur les valeurs ts, sn, mac, success, sess_timeout, idle_timeout et le secret partagé. Le secret partagé que vous utilisez pour calculer la somme de contrôle de hachage doit correspondre au secret partagé configuré dans les paramètres du point d'accès sur le Firebox.

La formule de calcul de la valeur de la somme de contrôle est Hash = SHA1(ts + sn + mac + success + sess-timeout + idle_timeout + shared_secret). Le Firebox utilise la somme de contrôle pour valider l'intégrité de l'interaction entre le navigateur du client et le serveur Web externe.

rediriger

L'URL de redirection que vous voulez que le Firebox envoie à l'utilisateur du point d'accès après réussite de l'authentification. Pour rediriger le navigateur vers l'URL originale que l'utilisateur avait demandé, utilisez la valeur reçue à l'origine dans l'URL de demande d'accès. Pour rediriger les utilisateurs vers une URL différente, spécifiez cette URL dans ce paramètre.

Dans l'Étape 6 du processus d'Authentification Externe, la page web envoie l'URL de décision d'accès au Firebox. Cette page entraîne aussi l'envoi par le navigateur client de la décision d'accès au Firebox afin de vérifier l'intégrité de l'interaction et de créer une session de point d'accès pour le client sur le point d'accès du Firebox.

Cette page Web peut utiliser un hyperlien pour envoyer l'URL de décision complète ou elle peut utiliser un <form> pour envoyer un message contenant tous les champs dans l'URL de décision d'authentification.

Exemple d'hyperlien :

<a href="http://10.0.3.1:4106/wgcgi.cgi?action=hotspot_auth &ts=1344238620&success=1&sess_timeout=1200&idle_timeout=600& sig=a05d352951986e5fbf939920b260a6be3a9fffd3&redirect=http://www.google.com/">Se Connecter</a>

Exemple de formulaire :

<form action="http://10.0.3.1:4106/wgcgi.cgi" method="post">
<fieldset>
<input type="submit" name="Connect" value="Connect" title="Connect" />
<input type="hidden" name="action" value="hotspot_auth" />
<input type="hidden" name="ts" value="1344238620" />
<input type="hidden" name="success" value="1" />
<input type="hidden" name="sess_timeout" value="1200" />
<input type="hidden" name="idle_timeout" value="600" />
<input type="hidden" name="sig" value="a05d352951986e5fbf939920b260a6be3a9fffd3" />
<input type="hidden" name="redirect" value="http://www.google.com/" />
</fieldset>
</form>

Page d'échec d'authentification

Après l'Étape 7 du processus d'Authentification Externe, si le Firebox détecte une erreur dans le processus d'authentification, par exemple une erreur de paramètre d'URL, une erreur de création de session, ou une somme de contrôle non valide, le Firebox redirige le navigateur du client vers la page d'échec du serveur Web externe dans Interaction, Étape 8.

Le Firebox construit l'URL d'échec avec un code d'erreur pour indiquer pourquoi l'authentification a échoué. Vous pouvez utiliser ces arguments comme base pour les messages destinés à l'utilisateur sur la page d'échec d'authentification.

L'exemple suivant montre le format d'une URL de demande d'accès :

http://10.0.2.80:8080/failure.html?error=510&sn=70A70272B454E &mac=9C:4E:36:30:2D:28

L'URL d'échec inclut les paramètres suivants :

  • error — Le numéro d'erreur qui indique la raison de l'échec.
  • sn — Le numéro de série du Firebox.
  • mac — L'adresse MAC du client.

Le Firebox peut définir le paramètre d'erreur selon l'un des numéros d'erreur suivants :

Erreur Raison de l'échec
510 Résultat ou signature d'authentification non valide
511 Paramètre CGI non valide
512 Échec de création de session de point d'accès
513 Erreur interne
514 Échec d'authentification externe (success=0)

Vous pouvez configurer la page d'échec d'authentification sur le serveur Web externe pour afficher différents messages à l'utilisateur du point d'accès en fonction du code d'erreur.

URL de déconnexion

Si le serveur Web externe doit déconnecter un client spécifié, il envoie une URL de déconnexion au Firebox qui comprend l'adresse MAC du client à déconnecter. Chaque URL de déconnexion peut déconnecter un seul client à la fois. Pour que le Firebox soit en mesure de déconnecter un client, le serveur Web externe doit inclure les détails suivants dans l'URL de déconnexion :

action

Le type d'action. La valeur doit toujours être hotspot_logoff.

mac

L'adresse MAC du client à déconnecter. Le serveur Web peut utiliser la même adresse MAC utilisée dans la demande d'accès URL.

sig

Une chaîne codée en hexadécimal en minuscule. Il s'agit d'une somme de contrôle SAH1 basée sur la valeurmac et le secret partagé. Le secret partagé que vous utilisez dans lea valeur sig pour calculer la somme de contrôle de hachage doit correspondre au secret partagé configuré dans les paramètres du point d'accès sur le Firebox.

La formule pour calculer la valeur de la somme de contrôle estsig = SHA1(mac + secret). Le Firebox utilise la valeur de la somme de contrôle pour identifier le serveur Web externe. Cela permet au Firebox de n'autoriser que les demandes de déconnexion provenant de sources légitimes et s'assurer que les demandes de déconnexion de session provenant de sources malveillantes sont refusées.

Le serveur Web externe utilise ces paramètres pour générer l'URL de déconnexion dans ce format :

http://10.0.3.1:4106/wgcgi.cgi?action=hotspot_logoff&mac=9C:4E:36:30:2D:26 &sig=03349009b213b701871b936007cd92bc0eb94376

Le Firebox envoie l'une de ces réponses suivantes lorsqu'il reçoit l'URL de déconnexion à partir du serveur Web externe :

Succès ou échec de la déconnexion de la session du point d'accès de l'utilisateur

<?xml version="1.0"?>

<authentication>

<logoff_list>

<logoff>

<session_id>12</session_id>

<success>1</success>

</logoff>

</logoff_list>

</authentification>

Une valeur de <success> de 0 signifie que la tentative de déconnexion a échoué. Une valeur de <success> de 1 signifie que la tentative de déconnexion a réussi.

La session utilisateur du point d'accès n'a pas été trouvé

<?xml version="1.0"?>

<authentication>

<logoff_list/>

</authentification>

Ce message apparaît si la session est déjà expirée ou a été effacée.

Une erreur interne est survenue

<?xml version=\"1.0\"?>

<authentication>

<erreur interne/>

</authentification>

Vous pouvez consulter les messages d'erreur pour vérifier s'il existe un problème avec les paramètres de l'URL de déconnexion et les ajuster si nécessaire.

Voir Également

Configurer un Point d'accès d'Authentification pour Invité Externe

Dépanner l'Authentification des invités externes au Point d'Accès