用例:访问控制和身份验证
在高安全性区域中,必须在客户端访问资源之前对用户进行外部身份验证。在Citrix ADC设备上,可以使用 HTTP 标注通过评估提供的凭据来对用户进行外部身份验证。在此示例中,假设客户端通过请求中的 HTTP 标头发送用户名和密码。但是,可以从 URL 或 HTTP 正文中获取相同的信息。
要实现此配置,您必须执行以下任务:
- 启用Citrix ADC设备上的响应程序功能。
- 在设备上创建HTTP标注,并使用有关外部服务器和其他所需参数的详细信息对其进行配置。
- 配置响应程序策略以分析响应,然后全局绑定该策略。
- 在远程服务器上创建标注代理。
启用响应程序
在Citrix ADC设备上使用响应程序功能之前,必须启用响应程序功能。
使用配置实用程序启用响应程序
- 请确保已安装响应程序许可证。
- 在配置实用程序中,展开AppExpert,然后右键单击响应程序,然后单击启用响应程序功能。
在Citrix ADC设备上创建HTTP标注
使用下表所示的参数设置创建HTTP标注HTTP -标注3。有关创建HTTP标注的更多信息,请参阅HTTP标配置注。
表 1.HTTP -标注3的参数和值
参数 | 值 | 名称 |
---|---|---|
名称 | Policy-Responder-3 |
参数
值
名称
HTTP-Callout-3
接收标注请求的服务器:
IP地址
10.103.9.95
端口
80
请求发送到服务器:
方法
得到
主机表达式
10.102.3.95
URL干细胞表达式
“/目录/ authenticate.pl”
标题:
名称
请求
值表达式
标注请求
参数:
名称
用户名
值表达式
HTTP.REQ.HEADER(“用户名”)value (0)
名称
密码
值表达式
HTTP.REQ.HEADER(“密码”)value (0)
服务器响应:
返回类型
文本
从响应中提取数据的表达式
HTTP.RES.BODY (100)
创建响应程序策略以分析响应
创建响应程序策略,响应程序3,该策略将检查来自标注服务器的响应,如果源IP地址已被列入黑名单,则重置连接。使用下表中显示的参数设置创建策略。虽然您可以在策略子节点中创建响应程序策略,然后使用 响应程序策略管理器将其全局绑定, 但本演示使用 响应程序策略管理器创建响应程序策略并在全局范围内绑定策略。
表 2.Policy-Responder-3的参数和值
参数 | 值 |
---|---|
名称 | Policy-Responder-3 |
操作 | 重置 |
Undefined-Result-Action | 全球undefined-result行动—— |
表达式 | 请求“HTTP.REQ.HEADER(\“\”)。EQ(\“Callout请求\”)。不是& & SYS.HTTP_CALLOUT (HTTP-Callout-3)。包含(\“身份验证失败\”)” |
使用配置实用程序创建响应程序策略并将其全局绑定
- 导航至应AppExpert>响应程序。
- 在详细信息窗格的策略管理器下,单击响应程序策略管理器。
- 在响应程序策略管理器对话框中,单击覆盖全局。
- 单击插入策略,然后在策略名称列中单击新建策略。
在“创建响应程序策略“对话框中,执行以下操作:
- 在名称中,键入Policy-Responder-3。
- 在操作中,选择重置。
- 在“未定义结果操作”中,选择“全局未定义结果操作”。
- 在“表达式”文本框中,键入:
“HTTP.REQ.HEADER(“请求”)。EQ (Callout请求”)。不是& & SYS.HTTP_CALLOUT (HTTP-Callout-3)。包含(“验证失败”)”<!——NeedCopy >
- 单击创建(创建),然后单击关闭(关闭)。
- 单击应用更改,然后单击关闭。
在远程服务器上创建HTTP标注代理
现在需要在远程标注服务器上创建HTTP标注代理。HTTP标注代理接收来自 Citrix ADC 设备的标注请求并作出相应响应。标注代理是每个部署都不同的脚本,编写时必须考虑到服务器规范,例如数据库类型和支持的脚本语言。
下面是用于验证提供的用户名和密码是否有效的示例标注代理伪代码。代理可以用您选择的任何编程语言实现。伪代码只能用作开发标注代理的指南。您可以在程序中构建其他功能。
使用伪代码验证提供的用户名和密码
- 接受请求中提供的用户名和密码,并对其进行适当的格式化。
- 连接到包含所有有效用户名和密码的数据库。
- 根据您的数据库检查提供的凭据。
- 根据HTTP标注的要求设置响应格式。
- 将响应发送到Citrix ADC设备。