Citrix ADC

本机 OTP 支持身份验证

Citrix ADC 支持一次性密码 (OTP),而无需使用第三方服务器。一次性密码是一种高度安全的选项,用于对服务器进行身份验证,因为生成的号码或密码是随机的。以前,专业公司(例如具有生成随机数的特定设备的 RSA)向 OTP 提供。此系统必须与客户端保持持续通信,才能生成服务器所期望的数字。

除了降低资本和运营开支外,此功能还通过将整个配置保留在 Citrix ADC 设备上,增强了管理员的控制能力。

注意:由于不再需要第三方服务器,Citrix ADC 管理员必须配置接口来管理和验证用户设备。

用户必须向 Citrix ADC 虚拟服务器注册才能使用 OTP 解决方案。每个唯一设备只需要注册一次,并且可以限制在某些环境中。配置和验证注册用户类似于配置额外的身份验证策略。

拥有本地 OTP 支持的优势

  • 除 Active Directory 之外,无需在身份验证服务器上拥有额外的基础结构,从而降低运营成本。
  • 仅将配置整合到 Citrix ADC 设备,从而为管理员提供极好的控制权。
  • 消除了客户端依赖额外的身份验证服务器来生成客户端所期望的数字。

本地 OTP 工作流程

本机 OTP 解决方案是一个双重过程,工作流程分为以下内容:

  • 设备注册
  • 最终用户登录

重要: 如果您使用的是第三方解决方案或管理除 Citrix ADC 设备以外的其他设备,则可以跳过注册过程。添加的最后一个字符串必须采用 Citrix ADC 指定的格式。

下图描述了注册新设备以接收 OTP 的设备注册流程。

OTP 工作流

注意: 设备注册可以使用任意数量的因素进行。单一因素(如上图所述)用作解释设备注册过程的示例。

下图描述了通过注册设备验证 OTP 的情况。

OTP 验证工作流程

必备条件

要使用本机 OTP 功能,请确保满足以下必备条件。

  • Citrix ADC 功能的发行版为 12.0 Build 51.24 及更高版本。
  • Citrix Gateway 上安装了高级版或高级版许可证。
  • Citrix ADC 配置了管理 IP,并且可以使用浏览器和命令行访问管理控制台。
  • Citrix ADC 配置了身份验证、授权和审核虚拟服务器,以对用户进行身份验证。
  • Citrix ADC 设备配置了 Unified Gateway,并将身份验证、授权和审核配置文件分配给网关虚拟服务器。
  • 本机 OTP 解决方案仅限于 nFactor 身份验证流。配置解决方案需要高级策略。有关更多详细信息,请参阅文章 CTX222713

还要确保 Active Directory 的以下内容:

  • 最小属性长度为 256 个字符。
  • 属性类型必须是“DirectoryString”,例如 UserParameters。这些属性可以包含字符串值。
  • 如果设备名称为非英文字符,则属性字符串类型必须为 Unicode。
  • Citrix ADC LDAP 管理员必须具有对所选 AD 属性的写入权限。
  • Citrix ADC 设备和客户端计算机必须同步到公共网络时间服务器。

使用 GUI 配置本机 OTP

本机 OTP 注册不仅仅是单一因素身份验证。以下部分帮助您配置单因素和第二因素身份验证。

为第一因素创建登录架构

  1. 导航到安全 AAA > 应用程序流量 > 登录架构
  2. 转到配置文件,然后单击添加
  3. 在 “ 创建身份验证登录架构 ” 页面上,在 “ 名称 ” 字段下输入 lschema_single_auth_manage_otp ,然后单击 noschema 旁边的 编辑
  4. 单击登录架构文件夹。
  5. 向下滚动以选择 SingleAuth.xml,然后单击选择
  6. 单击创建
  7. 单击策略,然后单击添加
  8. 创建身份验证登录架构策略屏幕上,输入以下值。

    名称: lpol_single_auth_manage_otp_by_url 配置文件: 从列表中选择 lpol_single_auth_manage_otp_by_url。 规则: HTTP.REQ.COOKIE.VALUE (“NSC_TASS”) .EQ (”manageotp“)

配置身份验证、授权和审核虚拟服务器

  1. 导航到安全 > AAA-应用程序流量 > 身份验证虚拟服务器。单击以编辑现有虚拟服务器。
  2. 单击右侧窗格的高级设置登录架构旁边的 + 图标。
  3. 选择无登录架构
  4. 单击箭头并选择 lpol_single_auth_manage_otp_by_url 策略。
  5. 选择 lpol_single_auth_manage_otp_by_url 策略,然后单击 选择
  6. 点击 绑定
  7. 向上滚动并在 高级身份验证策略下选择 1个身份验证策略
  8. 右键单击 nFactor 策略,然后选择编辑绑定
  9. 单击选择下一个因子”下的+图标, 创建下一个因子,然后单击绑定
  10. 创建身份验证 PolicyLabel 屏幕上,输入以下内容,然后单击 继续

    名称:manage_otp_flow_label

    登录架构:Lschema_Int

  11. 身份验证策略标签屏幕上,单击 + 图标以创建策略。

  12.  在创建身份验证策略屏幕上,输入以下内容:

    名称:auth_pol_ldap_otp_action

  13. 使用“操作类型”列表选择操作类型
  14. 操作字段中,单击 + 图标以创建操作。
  15.  在创建身份验证 LDAP 服务器页面中,选择服务器 IP单选按钮,取消选中身份验证旁边的复选框,输入以下值,然后选择测试连接

    名称:ldap_otp_action

    IP 地址:192.168.10.11

    基础 DN:DC=training, DC=lab

    管理员:Administrator@training.lab

    密码xxxxx

  16. 向下滚动到其他设置部分。使用下拉菜单选择以下选项。 “服务器登录名称属性新建并键入userprincipalname
  17. 使用下拉菜单选择 SSO 名称属性新建并键入 userprincipalname
  18. OTP 密码字段中输入“UserParameters”,然后单击更多
  19. 输入以下属性。

    属性 1 = mail 属性 2 = objectGUID 属性 3 = immutableID

  20. 单击确定
  21. 创建身份验证策略页上,将表达式设置为 true ,然后单击创建
  22. 创建身份验证策略标签页上,单击绑定,然后单击完成”。
  23. 策略绑定页面上,单击绑定
  24. 身份验证策略页上,单击关闭,然后单击完成

注意

身份验证虚拟服务器必须绑定到 RfWeBui 门户主题。将服务器证书绑定到服务器。服务器 IP ‘1.2.3.5’ 必须具有相应的 FQDN,即 Otpauth.server.com,供以后使用。

为第二因素 OTP 创建登录架构

  1. 导航到安全”>“AAA-应用程序流量”>“虚拟服务器。选择要编辑的虚拟服务器。
  2. 向下滚动并选择 1 个登录架构
  3. 单击添加绑定
  4. 策略绑定 部分下,单击 + 图标以添加策略。
  5. 创建身份验证登录架构策略页上,输入名称为 OTP,然后单击 + 图标创建配置文件。
  6. 在 “ 创建身份验证登录架构 ” 页面上,输入名称作为 OTP,然后单击 noschema旁边的图标。
  7. 单击 LoginSchema 文件夹,选择 DualAuthManageOTP.xml,然后单击 选择
  8. 单击创建
  9. 规则部分中,输入True。单击创建
  10. 单击 Bind(绑定)。
  11. 注意身份验证的两个因素。单击关闭并单击完成

配置用于管理 OTP 的内容交换策略

如果您使用的是 Unified Gateway,则需要以下配置。

  1. 导航到流量管理”>“内容切换”>“策略”。选择内容切换策略,右键单击,然后选择编辑

  2. 编辑表达式以评估以下或语句,然后单击确定

is_vpn_url   HTTP.REQ.URL。包含 (“manageotp”)

使用 CLI 配置本机 OTP

您必须具有以下信息才能配置 OTP 设备管理页面:

  • 分配给身份验证虚拟服务器的 IP
  • 与分配的 IP 对应的 FQDN
  • 身份验证虚拟服务器的服务器证书

注意: 本机 OTP 仅是基于 Web 的解决方案。

配置 OTP 设备注册和管理页面

创建身份验证虚拟服务器

> add authentication vserver authvs SSL 1.2.3.5 443
> bind authentication vserver authvs -portaltheme RFWebUI
> bind ssl vserver authvs -certkeyname otpauthcert

注意: 身份验证虚拟服务器必须绑定到 RfWeBui 门户主题。将服务器证书绑定到服务器。服务器 IP ‘1.2.3.5’ 必须具有相应的 FQDN,即 Otpauth.server.com,供以后使用。

创建 LDAP 登录操作

添加身份验证 LDapAction <LDAP ACTION NAME>-<SERVER IP>  serverIP-ServerP<SERVER PORT> ase <BASE>-ldapBase-ldapbinDDN <AD USER>-ldapbindnPassword <PASSWO>-ldaploginName <USER FORMAT>

示例

add authentication ldapAction ldap_logon_action -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName userprincipalname

添加 LDAP 登录的身份验证策略

添加身份验证策略认证-规则真实-操作

通过登录模式显示 UI

在登录时向用户显示用户名字段和密码字段

add authentication loginSchema lschema_single_auth_manage_otp -authenticationSchema "/nsconfig/loginschema/LoginSchema/SingleAuthManageOTP.xml"

显示设备注册和管理页面

Citrix 推荐两种显示设备注册和管理屏幕的方法:URL 或主机名。

  • 使用网址

    当 URL 包含“/manageotp”

    • add authentication loginSchemaPolicy lpol_single_auth_manage_otp_by_url -rule "http.req.cookie.value("NSC_TASS").contains("manageotp")" -action lschema_single_auth_manage_otp
    • bind authentication vserver authvs -policy lpol_single_auth_manage_otp_by_url -priority 10 -gotoPriorityExpression END
  • 使用主机名

    当主机名为 ‘alt.server.com’

    • add authentication loginSchemaPolicy lpol_single_auth_manage_otp_by_host -rule "http.req.header("host").eq("alt.server.com")" -action lschema_single_auth_manage_otp
    • bind authentication vserver authvs -policy lpol_single_auth_manage_otp_by_host -priority 20 -gotoPriorityExpression END

使用 CLI 配置用户登录页面

您必须具有以下信息才能配置“用户登录”页:

  • 负载平衡虚拟服务器的 IP
  • 负载平衡虚拟服务器的相应 FQDN
  • 负载平衡虚拟服务器的服务器证书

    绑定 ssl 虚拟服务器 lbvs_https-certkeyname lbvs_server_cert

负载平衡中的后端服务表示如下:

添加服务 iis_backendsso_server_com 1.2.3.210 HTTP 80
绑定 lb vvs_https iis_backendsso_server_com

创建 OTP 密码验证操作

添加验证 LDapAction <LDAP ACTION NAME>-serverIP <SERVER IP>-ServerPort <SERVER PORT>-ldapBase <BASE>-ldapbinDDN <AD USER>-ldapbinddnPassword <PASSWORD>-ldapLoginName <USER FORMAT>-身份验证禁用-otpSecret <LDAP ATTRIBUTE> `

示例:

add authentication ldapAction ldap_otp_action -serverIP 1.2.3.4 -serverPort 636 -ldapBase "OU=Users,DC=server,DC=com" -ldapBindDn administrator@ctxnsdev.com -ldapBindDnPassword PASSWORD -ldapLoginName userprincipalname -authentication DISABLED -OTPSecret userParameters

重要提示: LDAP 登录和 OTP 操作之间的区别在于需要禁用身份验证并引入新参数 OTPSecret。不要使用 AD 属性值。

添加 OTP 密码验证的身份验证策略

添加身份验证策略 auth_pol_otp_验证-规则true-action ldap_otp_action

通过登录架构呈现双重身份验证

添加用于双重身份验证的 UI。

添加身份验证 loginSchema lscheme_dual_factor-身份验证架构 "/nsconfig/loginschema/LoginSchema/DualAuth.xml”
添加身份验证 loginSchemapolicy lpol_dual_Factor-规则 true-操作 lscheme_dual_Factor

通过策略标签创建密码验证因素

为下一个因素创建管理 OTP 流程策略标签(第一个因素是 LDAP 登录)

添加身份验证 loginSchema lschema_noschema-身份验证架构 noschema
添加身份验证策略标签 Mane_otp_flow_label-loginSchema lschema_noschema

将 OTP 策略绑定到策略标签

bind authentication policylabel manage_otp_flow_label -policyName  auth_pol_otp_validation -priority 10 -gotoPriorityExpression NEXT

绑定 UI 流

绑定 LDAP 登录,然后与身份验证虚拟服务器进行 OTP 验证。

绑定身份验证虚拟服务器 authvs-策ic_pol_ldap_logon-优先级 10-nextFactor  manage_otp_flow_label-gotoPriority表达式下一个
绑定身份验证 vserver authvs-策ol_dual_Factor-优先级 30-gotoPriority表达式结束

将您的设备注册到 Citrix ADC

  1. 导航到您的 Citrix ADC FQDN(第一个面向公众的 IP),并带有 /管理otp 后缀。例如,使用用户凭据登录 https://otpauth.server.com/manageotp
  2. 单击 + 图标以添加设备。

    网关登录页

  3. 输入设备名称,然后按转到。屏幕上会显示条形码。
  4. 单击开始设置,然后单击扫描条形码
  5. 将设备相机悬停在 QR 码上。您可以选择输入 16 位代码。

    QR 代码

    注意:显示的二维码有效期为 3 分钟。

  6. 扫描成功后,您会看到一个可用于登录的 6 位数时间敏感的代码。

    登录成功消息

  7. 要进行测试,请单击 QR 屏幕上的完成,然后单击右侧的绿色复选标记。
  8. 从下拉菜单中选择您的设备,然后输入 Google Authenticator 中的代码(必须为蓝色,不是红色),然后单击转到
  9. 请确保使用页面右上角的下拉菜单注销。

使用 OTP 登录到 Citrix ADC

  1. 导航到您的第一个面向公众的 URL,然后从 Google Authenticator 输入您的 OTP 进行登录。
  2. 对 Citrix ADC 启动页面进行身份验证。

    ADC 身份验证页面