PoC指南:原生OTP的Citrix网关认证的nFactor

介绍

实现多因素身份验证是验证身份和改进安全状态的最佳方法之一。原生(基于时间的)一次性密码(OTP)是使用现成的身份验证程序实现另一个因素的方便方法。它允许用户从其身份验证器应用程序输入验证码,以网关形式进行身份验证。

Citrix网关支持原生OTP,可以为web服务、VPN、Citrix虚拟应用和桌面等多种业务提供鉴权。在本POC指南中,我们将演示在Citrix虚拟应用程序和桌面环境中使用它进行身份验证。

概念架构

本地OTP注册

本机OTP认证

概述

本指南演示了如何使用Citrix Gateway的双因素身份验证实现概念验证环境。它使用LDAP验证Active Directory凭据作为第一个因素,使用Native OTP作为第二个因素。

它对以下组件的完成安装和配置进行了假设:

  • Citrix网关已安装、许可并配置了与通配符证书绑定的外部可访问虚拟服务器
  • Citrix网关集成了Citrix虚拟应用和桌面环境,使用LDAP进行身份验证
  • 端点与Citrix工作空间应用程序安装
  • 已安装支持基于时间的OTP的认证器应用程序(包括Microsoft Authenticator,谷歌Authenticator或Citrix SSO)
  • 环境中存在AD (Active Directory)

有关最新产品版本和license要求,请参考Citrix文档:本机OTP认证

nFactor

LDAP的政策

首先,我们创建两个LDAP策略,稍后在构建nFactor流时将引用它们。

本地OTP注册

这个LDAP注册策略用于交换和存储用于生成基于时间的OTP代码的密钥。

  1. 登录Citrix ADC界面
  2. 导航到安全> aaa -应用流量>策略>认证>高级策略>策略
  3. 点击添加
  4. 输入polldap_notpmanage为策略名称,并将动作类型更改为LDAP
  5. 点击添加在行动
  6. 填充以下字段:
    • 名称-输入actldap_notpmanage
    • 服务器名称/ IP地址—选择AD服务器的FQDN或IP地址。我们进入192.0.2.50
    • 清晰的身份验证此设置与下面的OTP Secret表示策略将设置而不是获取对象属性
    • Base DN—输入AD用户容器的路径。我们进入DC=workspaces, DC=wwco, DC=net
    • 管理员绑定DN -输入admin/service账号查询AD进行用户认证。我们进入workspacessrv@workspaces.wwco.net
    • 确认/管理员密码—输入/确认admin / service帐户的密码
    • 单击“测试网络连通性”,确保网络连接
    • 服务器登录名属性-在该字段下面的第二个字段中输入userPrincipalName
    • OTP秘密-进入userParameters这是User的LDAP对象,该对象将使用与散列一起使用的键进行更新,以生成基于时间的OTP代码
  7. 选择Create本机OTP
  8. 输入表达式真正的,并按好吧本机OTP

本机OTP认证

这个LDAP身份验证策略用于执行第一个因素身份验证。

  1. 导航到安全> aaa -应用流量>策略>认证>高级策略>策略
  2. 点击添加
  3. 输入polldap_notpauth为策略名称,并将动作类型更改为LDAP
  4. 点击添加在行动
  5. 填充以下字段:
    • 名称-输入actldap_notpauth
    • 服务器名称/ IP地址—选择AD服务器的FQDN或IP地址。我们进入192.0.2.50
    • Base DN—输入AD用户容器的路径。我们进入DC=workspaces, DC=wwco, DC=net
    • 管理员绑定DN -输入admin/service账号查询AD进行用户认证。我们进入workspacessrv@workspaces.wwco.net
    • 确认/管理员密码—输入/确认admin / service帐户的密码
    • 单击“测试网络连通性”,确保网络连接
    • 服务器登录名属性-在该字段下面的第二个字段中输入userPrincipalName
  6. 选择Create本机OTP
  7. 输入表达式真正的,并按好吧本机OTP

有关更多信息,请参见LDAP认证策略

登录模式

当需要代表策略收集数据时,使用登录模式。

原生OTP模式-单身份验证

此注册登录模式对应于LDAP注册策略。

  1. 导航到安全> aaa -应用流量>登录模式
  2. 选择配置文件选项卡
  3. 点击添加在Profile下,并命名它prolschema_notpsingle
  4. 单击旁边的铅笔图标noschema
  5. 点击登录模式,并向下滚动以选择SingleAuthManageOTP.xml,并选择蓝色选择在右角。
  6. 点击创建本机OTP

原生OTP模式-双重身份验证

此注册登录模式对应于双因素身份验证,其中用户输入其密码和OTP密码。

  1. 配置文件选项卡单击添加再一次。
  2. 输入名称pollschema_notpdual
  3. 点击添加在Profile下,并命名它prolschema_notpdual
  4. 单击旁边的铅笔图标noschema
  5. 点击登录模式,并向下滚动以选择DualAuth.xml,并选择蓝色选择在右角。
  6. 点击更多的
  7. 在野外密码凭证索引输入1
  8. 点击创建本机OTP

本机OTPAAA虚拟服务器-可视化流程

  1. 接下来导航到安全> AAA -应用流量> n因子可视化> n因子流量
  2. 点击添加
  3. 单击+符号创建初始因子。此因素不会采取任何行动,而是处理将传入流量定向到注册或身份验证因素流。
  4. 输入factor0-notp,并按创建本机OTP

注册流

  1. 选择添加政策
  2. 选择添加旁边选择政策
  3. 输入名字polfactor0-notpmanage
  4. 设置动作类型NO_AUTHN
  5. 粘贴在HTTP.REQ.COOKIE.VALUE(“NSC_TASS”).EQ(“manageotp”)或使用expression builder构建它本机OTP您可以通过添加源IP地址条件来限制注册到内部网络上的端点,例如http.req.cookie.value("NSC_TASS").eq("manageotp") && client.IP.SRC.IN_SUBNET(10.0.0.0/8)
  6. 点击创建,其次是添加本机OTP
  7. 选择绿色+在……的右边polfactor0-notpmanage您刚刚创建的策略
  8. 输入factor1-notpmanage,并按创建本机OTP
  9. 在新因子框中,选择添加模式
  10. 选择prolschema_notpsingle,并按好吧
  11. 选择添加政策
  12. 从下拉列表中选择政策选择polldap_notpauth,并按添加
  13. 选择绿色+在……的右边polldap_notpauth政策
  14. 输入factor2-notpmanage,并按创建本机OTP
  15. 在新因子框中,选择添加政策
  16. 从下拉列表中选择政策选择polldap_notpmanage,并按添加本机OTP

身份验证流

  1. 现在在我们创建的初始因子框中factor0-notp,选择蓝色+
  2. 选择添加旁边选择政策
  3. 输入名字polfactor0-notpauth
  4. 设置动作类型对NO_AUTHN
  5. 输入真正的对于表达式
  6. 点击创建,其次是添加请注意,策略优先级已增加到110,这意味着只有在上述策略执行时才会执行该策略polfactor0-notpmanage100分不是对手。本机OTP
  7. 选择绿色+在……的右边polfactor0-notpauth您刚刚创建的策略
  8. 输入factor1-notpauth,并按创建
  9. 在新因子框中,选择添加模式
  10. 选择prolschema_notpdual,并按好吧
  11. 选择添加政策
  12. 从下拉列表中选择政策选择polldap_notpauth,并按添加
  13. 选择绿色+在……的右边polldap_notpauth您刚刚创建的策略
  14. 输入OTPCheck,并按创建
  15. 选择添加政策
  16. 从下拉列表中选择政策选择polldap_notpmanage,并按添加
  17. 选择完成本机OTP

本机OTPAAA虚拟服务器

AAAVirtual Server是将策略和模式绑定到适当优先级的地方。

  1. 导航到流量管理> SSL>证书>所有证书要验证是否已安装域证书。在这个POC示例中,我们使用了一个与Active Directory域相对应的通配符证书。看到Citrix ADC SSL证书了解更多信息。
  2. 接下来导航到安全> AAA -应用流量>虚拟服务器,并选择添加
  3. 输入以下字段:
    • 名称—唯一的值。我们进入nativeotp_authvserver
    • IP地址类型-非可寻址
  4. 点击好吧
  5. 选择无服务器证书,选择下面的箭头选择服务器证书,选择域证书,单击“选择,绑定,继续”
  6. 高级认证策略中,选择无Nfactor流
  7. 选择下面的右箭头选择nFactor Flow中,选择factor0_notp,点击选择,点击绑定本机OTP
  8. 点击继续,其次是完成本机OTP

交通政策

现在我们创建一个流量策略,将LDAP密码中继到StoreFront,而不是OTP密码。

  1. 导航到Citrix网关>虚拟服务器>策略>流量
  2. 选择交通概况选项卡,单击“添加”
  3. 输入名称notp_trafficprofile
  4. 选择HTTP
  5. 在“单点登录密码表达式”中输入http.REQ.USER.ATTRIBUTE (1)
  6. 单击Create本机OTP
  7. 现在单击Traffic Policies选项卡
  8. 在Request Profile字段中,选择notp_trafficprofile您刚刚创建的流量配置文件。
  9. 输入名称nOTP_TrafficPolicy
  10. 在“Express”框中输入真正的
  11. 点击创建本机OTP

网关虚拟服务器

网关虚拟服务器与本机OTP绑定AAA为Citrix虚拟应用程序和桌面提供认证的虚拟服务器。

  1. 导航到Citrix网关>虚拟服务器
  2. 选择当前的Gateway,然后单击编辑
  3. 从右侧的Advanced Settings面板中选择Authentication Profile
  4. 选择添加
  5. 输入配置文件名称。我们进入nativeotp_authprofile
  6. 在Policy下选择箭头,并选择Native OTPAAA虚拟服务器nativeotp_authvserver
  7. 点击创建
  8. 从右侧的Advanced Settings面板中选择Policies
  9. 选择+签名添加
  10. 选择政策选择交通,以及选择类型选择请求。选择继续
  11. 单击右箭头,选择notp_trafficpolicy,并选择好吧
  12. 点击完成,保存当前配置本机OTP

用户终端

现在我们通过在Citrix虚拟应用程序和桌面环境中进行身份验证来测试Native OTP。

注册Citrix SSO应用程序

首先,用户使用Citrix SSO应用程序为其设备注册原生OTP。

  1. 打开浏览器,导航到由Citrix Gateway管理的域FQDN/ manageotp附加到FQDN的末尾。我们使用https://gateway.workspaces.wwco.net/manageotp
  2. 将浏览器重定向到登录屏幕后,输入用户UPN和密码本地OTP注册
  3. 在下一个屏幕上选择Add Device,输入名称。我们使用iPhone7_nOTP本地OTP注册
  4. 选择Go,出现一个QR码本地OTP注册
  5. 在您的移动设备上打开Citrix SSO应用程序或其他身份验证应用程序,如Microsoft或b谷歌(可从应用商店下载)
  6. 选择添加新令牌
  7. 选择扫描二维码本地OTP注册
  8. 选择“将相机对准QR码”,一旦捕获,选择“添加”本地OTP注册
  9. 选择Save以存储令牌本地OTP注册
  10. 令牌现在处于活动状态,并开始以30秒的间隔显示OTP代码本地OTP注册
  11. 选择Done,您将看到设备添加成功的确认信息本地OTP注册

Citrix虚拟应用程序和桌面验证、发布和启动

用户在Citrix单点登录应用中输入UserPrincipalName、Password和OTP Password,即可访问虚拟应用和桌面。

  1. 打开浏览器,导航到由Citrix Gateway管理的域FQDN。我们使用https://gateway.workspaces.wwco.net
  2. 将浏览器重定向到登录屏幕后,输入用户UserPrincipalName和密码
  3. 打开Citrix单点登录应用程序,在密码字段中输入OTP代码iPhone7_nOTP设备进入本地OTP注册
  4. 验证用户的虚拟应用程序和桌面被枚举,并在登录后启动本地OTP注册

故障排除

下面我们来看几个常见的原生OTP故障排除区域。

国家结核控制规划错误

在登录您的OTP代码页面可能会发布一条消息,建议您验证NTP同步。为了生成正确的基于时间的OTP, Citrix ADC的时间必须同步。如果您尚未实施NTP,请遵循以下步骤:

身份验证错误

  • 无法完成您的请求。-如果这个错误消息发生在成功的身份验证后,它可能表明一个错误传递用户凭据StoreFront。验证“双重认证模式”和“流量策略”设置。本机OTP
  • 请重试或联系帮助台—此错误信息通常表示LDAP登录失败。本机OTP如果已验证密码是否正确,请验证Administrator绑定密码是否已设置。您可能已经有了一个现有的LDAP身份验证策略,并通过选择它创建了管理策略,然后选择添加基本DN,您可能会看到管理员密码字段似乎已填充,但您必须重新输入密码。本机OTP

总结

使用Citrix Workspace和Citrix Gateway,企业可以通过实现多因素身份验证来改进其安全状态,而不会使用户体验变得复杂。用户可以通过输入域用户名和密码来访问他们的Citrix虚拟应用程序和桌面,然后通过从他们注册的身份验证器应用程序输入一次性密码来确认他们的身份。

参考文献

更多信息请参考:

本机OTP认证-查找有关本机OTP实现和用例的更多详细信息。

PoC指南:原生OTP的Citrix网关认证的nFactor