Gateway

本机 OTP 支持身份验证

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

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

注意

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

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

拥有本地 OTP 支持的优势

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

本地 OTP 工作流程

本机 OTP 解决方案是一个双重过程,工作流程分类如下:

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

重要

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

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

本地化后的图片

注意

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

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

本地化后的图片

必备条件

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

  • Citrix ADC 功能的发行版为 12.0 Build 51.24 及更高版本。
  • Citrix Gateway 上安装了高级版或高级版许可证。
  • Citrix Gateway 配置了管理 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_first_factor,然后单击 noschema 旁边的编辑
  4. 单击 LoginSchema 文件夹。
  5. 向下滚动以选择 SingleAuth.xml,然后单击选择
  6. 单击创建
  7. 单击策略,然后单击添加
  8. 在“创建身份验证登录架构策略”屏幕上,输入以下值。

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

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

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

    名称:OTP 管理因素

    登录架构:Lschema_Int

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

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

    名称。otp_manage_ldap

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

    名称:LDAP_no_auth

    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 文件夹,选择 DualAuth.xml,然后单击选择
  8. 单击创建
  9. 在“规则”部分中,输入“True”。单击创建
  10. 单击 Bind(绑定)。
  11. 注意身份验证的两个因素。单击关闭并单击完成

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

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

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

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

is_vpn_url

使用 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 登录操作

add authentication ldapAction <LDAP ACTION NAME> -serverIP <SERVER IP> - serverPort <SERVER PORT> -ldapBase <BASE> -ldapBindDn <AD USER> -ldapBindDnPassword <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 登录的身份验证策略

add authentication Policy auth_pol_ldap_logon -rule true -action ldap_logon_action

通过 LoginSchema 显示 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
  • 负载平衡虚拟服务器的服务器证书

注意

重用现有身份验证虚拟服务器 (authvs) 进行双重身份验证。

创建负载平衡虚拟服务器

> add lb vserver lbvs_https SSL 1.2.3.162 443 -persistenceType NONE -cltTimeout 180 -  AuthenticationHost otpauth.server.com -Authentication ON -authnVsName authvs
> bind ssl vserver lbvs_https -certkeyname lbvs_server_cert

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

> add service iis_backendsso_server_com 1.2.3.210 HTTP 80
> bind lb vserver lbvs_https iis_backendsso_server_com

创建 OTP 密码验证操作

add authentication ldapAction <LDAP ACTION NAME> -serverIP <SERVER IP> -serverPort <SERVER PORT> -ldapBase <BASE> -ldapBindDn <AD USER> -ldapBindDnPassword <PASSWORD> -ldapLoginName <USER FORMAT> -authentication DISABLED -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 密码验证的身份验证策略

> add authentication Policy auth_pol_otp_validation -rule true -action ldap_otp_action

通过 LoginSchema 呈现双重身份验证

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

> add authentication loginSchema lscheme_dual_factor -authenticationSchema "/nsconfig/loginschema/LoginSchema/DualAuth.xml"

> add authentication loginSchemaPolicy lpol_dual_factor -rule true -action lscheme_dual_factor

通过策略标签创建密码验证系数

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

> add authentication loginSchema lschema_noschema -authenticationSchema noschema

> add authentication policylabel manage_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 验证。

> bind authentication vserver authvs -policy auth_pol_ldap_logon -priority 10 -nextFactor  manage_otp_flow_label -gotoPriorityExpression NEXT

> bind authentication vserver authvs -policy lpol_dual_factor -priority 30 -gotoPriorityExpression END

将您的设备注册到 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 启动页面进行身份验证。

    本地化后的图片

本机 OTP 支持身份验证