ADC

Web 身份验证

身份验证、授权和审核现在能够向 Web 服务器验证用户身份,提供 Web 服务器在 HTTP 请求中所需的凭据,并分析 Web 服务器响应以确定用户身份验证是否成功。与其他类型的身份验证策略一样,Web 身份验证策略由表达式和操作组成。创建身份验证策略后,将其绑定到身份验证虚拟服务器并为其分配优先级。绑定时,还要将其指定为主策略或辅助策略。

要使用特定 Web 服务器设置基于 Web 的身份验证,请首先创建 Web 身份验证操作。由于对 Web 服务器的身份验证不使用严格格式,因此在创建操作时必须准确指定 Web 服务器需要哪些信息以及使用哪种格式。为此,您需要在 NetScaler 设备高级策略中创建一个包含以下项目的表达式:

  • 服务器 IP— 身份验证 Web 服务器的 IP 地址。
  • 服务器端口— 身份验证 Web 服务器的端口。
  • 身份验证规则— NetScaler 设备高级策略中的表达式,其中包含 Web 服务器预期格式的用户凭据。
  • 方案—HTTP(用于未加密的 Web 身份验证)或 HTTPS(用于加密的 Web 身份验证)。
  • 成功规则— NetScaler 设备高级策略中的表达式,与表示用户已成功进行身份验证的 Web 服务器响应字符串匹配。

对于所有其他参数,请遵循添加身份验证操作命令的常规规则。

接下来,您将创建与该操作关联的策略。该策略类似于 LDAP 策略,并且像 LDAP 策略使用 NetScaler 设备语法一样。

注意

这些说明假定您已经熟悉要向其进行身份验证的 Web 服务器的身份验证要求,并且已经配置了 Web 身份验证服务器。

使用命令行界面配置 Web 身份验证操作

要在命令行中创建 Web 身份验证操作,请在命令行中键入以下命令:

add authentication webAuthAction <name> -serverIP <ip_addr|ipv6_addr|\*> -serverPort <port|\*> [-fullReqExpr <string>] -scheme ( http | https ) -successRule <expression> [-defaultAuthenticationGroup <string>][-Attribute1 <string>][-Attribute2 <string>] [-Attribute3 <string>][-Attribute4 <string>] [-Attribute5 <string>][-Attribute6 <string>] [-Attribute7 <string>][-Attribute8 <string>] [-Attribute9 <string>][-Attribute10 <string>] [-Attribute11 <string>][-Attribute12 <string>] [-Attribute13 <string>][-Attribute14 <string>] [-Attribute15 <string>][-Attribute16 <string>]
<!--NeedCopy-->

示例

add policy expression post_data ""username=" + http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&passwort=" + http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")"

add policy expression length_post_data "("username= " + http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "passwort=" + http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")).length"

add authentication webAuthAction webAuth_POST -serverIP 10.106.187.54 -serverPort 80 -fullReqExpr q{"POST /MyPHP/auth.php HTTP/" + http.req.version.major + "." + http.req.version.major + "\r\nAccept:\*/\*\r\nHost: 10.106.187.54\r\nReferer: http://10.106.187.54/MyPHP/auth.php\r\nAccept-Language: en-US\r\nUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)\r\nContent-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: " + length_post_data + "\r\nConnection: Keep-Alive\r\n\r\n" + post_data} -scheme http -successRule "http.res.status.eq(200)"
<!--NeedCopy-->

使用配置实用程序配置 Web 身份验证操作

注意

在配置实用程序中,使用术语服务器而不是操作,但指的是相同的任务。

  1. 导航到 安全 > AAA-应用程序流量 > 策略 > LDAP
  2. 在详细信息窗格的“服务器”选项卡上,执行以下操作之一:

    • 如果要创建新的 Web 身份验证操作,请单击 添加
    • 如果要修改现有 Web 身份验证操作,请在数据窗格中选择该操作,然后单击 编辑
  3. 如果要创建新的 Web 身份验证操作,请在“创建身份验证 Web 服务器”对话框的“名称”文本框中键入新 Web 身份验证操作的名称。名称的长度可以是 1 到 127 个字符,可以由大写和小写字母、数字以及连字符 (-) 和下划线 (_) 组成。如果要修改现有的 Web 身份验证操作,请跳过此步骤。名称是只读的;您不能更改它。</span>
  4. Web 服务器 IP 地址 文本框中,键入身份验证 Web 服务器的 IPv4 或 IPv6 IP 地址。如果地址是 IPv6 IP 地址,请先选中 IPv6 复选框。
  5. 在端口文本框中,键入 Web 服务器接受连接的端口号。
  6. 协议 下拉列表中选择 HTTPHTTPS
  7. 在 HTTP 请求表达式文本区域中,键入 PCE 格式的正则表达式,该正则表达式用于创建 Web 服务器请求,其中包含用户凭据的身份验证 Web 服务器所期望的确切格式。
  8. 在验证身份验证的表达式文本区域中,键入 NetScaler 设备高级策略表达式,该表达式描述 Web 服务器响应中指示用户身份验证成功的信息。
  9. 按照常规身份验证操作文档中的说明填写其余字段。
  10. 单击确定
Web 身份验证