认证 > 关于热点外部客户认证 > 为热点外部客户认证配置 Web 服务器

为热点外部客户认证配置 Web 服务器

按照以下原则为热点外部客户认证配置 Web 服务器 Web 服务器可以位于与 XTM 设备相关的任何网络上。 我们建议您将 Web 服务器放置在用于安装所有其他面向公众的服务器的网络中。

交互工作流

此工作流图表总结了客户端浏览器、XTM 设备和外部 Web 服务器之间的主要交互流。

显示 Web 浏览器、XTM 热点和外部 Web 服务器之间交互的图表

外部认证流程的步骤如下:

  1. 热点用户尝试浏览网页。
  2. 如果该用户是新热点用户,XTM 设备将客户端浏览器重定向至位于外部 Web 服务器上的认证 URL。
    此 URL 包括一个查询字符串,其中包含访问请求。
  3. 浏览器将访问请求发送至外部 Web 服务器。
  4. 外部 Web 服务器将认证页面发送至浏览器。
  5. 热点用户键入要求提供的认证信息,并将表单提交至外部 Web 服务器。
  6. 外部 Web 服务器处理该认证信息,然后将包含决定 URL 的 HTML 页面发送至浏览器。
  7. 浏览器将访问决定发送至 XTM 设备。
    访问决定 URL 包含访问决定、校验和以及重定向 URL。
  8. XTM 设备读取访问决定,验证校验和,然后将重定向 URL 发送至热点用户的浏览器。
    根据外部认证流程的结果,重定向 URL 可以是:

下面部分介绍此图表中的交互步骤。

要求

您可以使用 Perl、Python、PHP 或任何其他语言编写 Web 程序。 我们提供了使用 Python 编写的代码示例以供参考。 此代码示例附在知识库文章无线热点外部认证的代码示例 中。

在 Web 服务器上,必须创建三个网页以使用此功能:

在下面部分中介绍这些页面。

认证页面

Web 服务器在收到来自 XTM 设备的访问请求 URL 时,必须向热点客户端发送认证页面。

Web 程序必须保存访问请求 URL 中包含的所有信息,如交互步骤 2 所述。 它可以使用时间戳和 MAC 地址参数作为密钥,或者使用文件名来保存此数据。 客户端完成认证后,结果页面的 Web 程序必须从已保存的请求中检索此数据,并结合使用这些数据和共享密码来计算哈希校验和。

此示例显示访问请求 URL 的格式:

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/

访问请求 URL 包含以下参数:

xtm — 外部 Web 服务器必须向其发送访问决定的 XTM 设备上的 URL。

action — 操作类型。 值始终是 hotspot_auth

ts — 请求的时间戳。

sn — XTM 设备的序列号。

mac — 客户端的 MAC 地址。

redirect — 热点用户尝试浏览的原始 URL。

您将定义认证流程的细节。 XTM 设备只需了解访问决定以及确保交互完整性所需的其他参数。

结果页面

热点用户提供要求输入的认证信息后,Web 程序必须根据热点用户提供的信息以及您指定的任何访问条件来决定是否允许访问。 Web 程序必须将所有必需参数组合成一个 URL,然后将其加入发送至客户端浏览器的网页中,如交互步骤 6 所述。 此 URL 称为访问决定 URL

此示例显示访问决定 URL 的格式:

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

访问决定 URL 以访问请求 URL 中的 xtm 参数所指定的 URL 开头。

访问决定 URL 必须包含以下所有参数:

action

操作类型。 值必须为 hotspot_auth

success

关于热点访问的决定。 如果要允许用户访问热点,则将值设为 1,如果不允许访问,则将值设为 0

sig

采用十六进制编码的小写字符串。 它是基于 tssnmacsuccess 和共享密码值的 SHA1 校验和。 您用于计算哈希校验和的共享密码必须符合在 XTM 设备的热点设置中配置的共享密码。

用于计算校验和值的公式为  sig = SHA1(ts + sn + mac + success + secret)。 XTM 设备使用校验和来验证客户端浏览器与外部 Web 服务器之间交互的完整性。

redirect

您希望在成功认证后 XTM 设备发送至热点用户的重定向 URL。 要将浏览器重定向至用户请求的原始 URL,请使用收到的原始访问请求 URL 中的值。 要将用户重定向至不同的 URL,请在此参数中指定该 URL。

在交互步骤 6 中,网页将访问决定 URL 发送至 XTM 设备。 此页面还导致客户端浏览器向 XTM 设备发送访问决定,以检查交互完整性,并在 XTM 热点上为客户端创建热点会话。

此网页可以使用超链接来发送完整的决定 URL,或者可以使用 <form> 发送包含认证决定 URL 中所有字段的消息。

超链接示例:

<a href="http://10.0.3.1:4106/wgcgi.cgi?action=hotspot_auth &ts=1344238620&success=1&sig=a05d352951986e5fbf939920b260a6be3a9fffd3 &redirect=http://www.google.com/">连接</a>

表单示例:

<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="sig" value="a05d352951986e5fbf939920b260a6be3a9fffd3" />
<input type="hidden" name="redirect" value="http://www.google.com/" />
</fieldset>
</form>

身份验证失败页面

在交互步骤 7 之后,如果 XTM 设备检测到认证过程中存在任何错误(例如 URL 参数错误、创建会话错误或校验和无效),那么在交互步骤 8 中,XTM 设备会将客户端浏览器重定向至外部 Web 服务器上的失败页面。

XTM 设备使用错误代码构建失败 URL,以指示认证失败的原因。 您可以使用这些内容作为基础,构建身份验证失败页面上为用户显示的消息。

此示例显示失败 URL 的格式:

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

失败 URL 包含以下参数:

XTM 设备可以将 error 参数设置为以下错误号之一:

Error 失败原因
510 认证结果或签名无效
511 CGI 参数无效
512 创建热点会话失败
513 内部错误
514 外部认证失败 (success=0)

您可以在外部 Web 服务器上配置身份验证失败页面,以根据错误代码为热点用户显示不同的消息。

请参阅

为外部客户认证配置热点

排除热点外部客户认证故障

提供反馈  •   获得支持  •   全部产品文件  •   知识库