PoC指南:原生OTP的Citrix网关认证的nFactor
介绍
实现多因素身份验证是验证身份和改进安全状态的最佳方法之一。原生(基于时间的)一次性密码(OTP)是使用现成的身份验证程序实现另一个因素的方便方法。它允许用户从其身份验证器应用程序输入验证码,以网关形式进行身份验证。
Citrix网关支持原生OTP,可以为web服务、VPN、Citrix虚拟应用和桌面等多种业务提供鉴权。在本POC指南中,我们将演示在Citrix虚拟应用程序和桌面环境中使用它进行身份验证。
概念架构
概述
本指南演示了如何使用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代码的密钥。
- 登录Citrix ADC界面
- 导航到安全> aaa -应用流量>策略>认证>高级策略>策略
- 点击
添加
- 输入
polldap_notpmanage
为策略名称,并将动作类型更改为LDAP
。 - 点击
添加
在行动 - 填充以下字段:
- 名称-输入
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代码
- 名称-输入
- 选择Create
- 输入表达式
真正的
,并按好吧
本机OTP认证
这个LDAP身份验证策略用于执行第一个因素身份验证。
- 导航到
安全> aaa -应用流量>策略>认证>高级策略>策略
- 点击
添加
- 输入
polldap_notpauth
为策略名称,并将动作类型更改为LDAP
。 - 点击
添加
在行动 - 填充以下字段:
- 名称-输入
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
- 名称-输入
- 选择Create
- 输入表达式
真正的
,并按好吧
有关更多信息,请参见LDAP认证策略
登录模式
当需要代表策略收集数据时,使用登录模式。
原生OTP模式-单身份验证
此注册登录模式对应于LDAP注册策略。
- 导航到
安全> aaa -应用流量>登录模式
- 选择
配置文件
选项卡 - 点击
添加
在Profile下,并命名它prolschema_notpsingle
- 单击旁边的铅笔图标
noschema
- 点击
登录模式
,并向下滚动以选择SingleAuthManageOTP.xml
,并选择蓝色选择
在右角。 - 点击
创建
原生OTP模式-双重身份验证
此注册登录模式对应于双因素身份验证,其中用户输入其密码和OTP密码。
- 下
配置文件
选项卡单击添加
再一次。 - 输入名称
pollschema_notpdual
- 点击
添加
在Profile下,并命名它prolschema_notpdual
- 单击旁边的铅笔图标
noschema
- 点击
登录模式
,并向下滚动以选择DualAuth.xml
,并选择蓝色选择
在右角。 - 点击
更多的
- 在野外
密码凭证索引
输入1
- 点击
创建
AAA
虚拟服务器-可视化流程
本机OTP- 接下来导航到
安全> AAA -应用流量> n因子可视化> n因子流量
- 点击
添加
- 单击
+
符号创建初始因子。此因素不会采取任何行动,而是处理将传入流量定向到注册或身份验证因素流。 - 输入
factor0-notp
,并按创建
注册流
- 选择
添加政策
- 选择
添加
旁边选择政策
- 输入名字
polfactor0-notpmanage
- 设置
动作类型
来NO_AUTHN
- 粘贴在
HTTP.REQ.COOKIE.VALUE(“NSC_TASS”).EQ(“manageotp”)
或使用expression builder构建它您可以通过添加源IP地址条件来限制注册到内部网络上的端点,例如http.req.cookie.value("NSC_TASS").eq("manageotp") && client.IP.SRC.IN_SUBNET(10.0.0.0/8)
- 点击
创建
,其次是添加
- 选择绿色
+
在……的右边polfactor0-notpmanage
您刚刚创建的策略 - 输入
factor1-notpmanage
,并按创建
- 在新因子框中,选择
添加模式
- 选择
prolschema_notpsingle
,并按好吧
- 选择
添加政策
- 从下拉列表中
选择政策
选择polldap_notpauth
,并按添加
- 选择绿色
+
在……的右边polldap_notpauth
政策 - 输入
factor2-notpmanage
,并按创建
- 在新因子框中,选择
添加政策
- 从下拉列表中
选择政策
选择polldap_notpmanage
,并按添加
身份验证流
- 现在在我们创建的初始因子框中
factor0-notp
,选择蓝色+
- 选择
添加
旁边选择政策
- 输入名字
polfactor0-notpauth
- 设置
动作类型
对NO_AUTHN - 输入
真正的
对于表达式 - 点击
创建
,其次是添加
请注意,策略优先级已增加到110,这意味着只有在上述策略执行时才会执行该策略polfactor0-notpmanage
100分不是对手。 - 选择绿色
+
在……的右边polfactor0-notpauth
您刚刚创建的策略 - 输入
factor1-notpauth
,并按创建
- 在新因子框中,选择
添加模式
- 选择
prolschema_notpdual
,并按好吧
- 选择
添加政策
- 从下拉列表中
选择政策
选择polldap_notpauth
,并按添加
- 选择绿色
+
在……的右边polldap_notpauth
您刚刚创建的策略 - 输入
OTPCheck
,并按创建
- 选择
添加政策
- 从下拉列表中
选择政策
选择polldap_notpmanage
,并按添加
- 选择
完成
AAA
虚拟服务器
本机OTP这AAA
Virtual Server是将策略和模式绑定到适当优先级的地方。
- 导航到流量管理> SSL>证书>所有证书要验证是否已安装域证书。在这个POC示例中,我们使用了一个与Active Directory域相对应的通配符证书。看到Citrix ADC SSL证书了解更多信息。
- 接下来导航到
安全> AAA -应用流量>虚拟服务器
,并选择添加 - 输入以下字段:
- 名称—唯一的值。我们进入
nativeotp_authvserver
- IP地址类型-
非可寻址
- 名称—唯一的值。我们进入
- 点击
好吧
- 选择无服务器证书,选择下面的箭头
选择服务器证书
,选择域证书,单击“选择,绑定,继续” - 下
高级认证策略
中,选择无Nfactor流
- 选择下面的右箭头
选择nFactor Flow
中,选择factor0_notp
,点击选择
,点击绑定
- 点击
继续
,其次是完成
交通政策
现在我们创建一个流量策略,将LDAP密码中继到StoreFront,而不是OTP密码。
- 导航到Citrix网关>虚拟服务器>策略>流量
- 选择
交通概况
选项卡,单击“添加” - 输入名称
notp_trafficprofile
- 选择
HTTP
- 在“单点登录密码表达式”中输入
http.REQ.USER.ATTRIBUTE (1)
- 单击Create
- 现在单击Traffic Policies选项卡
- 在Request Profile字段中,选择
notp_trafficprofile
您刚刚创建的流量配置文件。 - 输入名称
nOTP_TrafficPolicy
- 在“Express”框中输入
真正的
- 点击
创建
网关虚拟服务器
网关虚拟服务器与本机OTP绑定AAA
为Citrix虚拟应用程序和桌面提供认证的虚拟服务器。
- 导航到
Citrix网关>虚拟服务器
- 选择当前的Gateway,然后单击
编辑
- 从右侧的Advanced Settings面板中选择Authentication Profile
- 选择
添加
- 输入配置文件名称。我们进入
nativeotp_authprofile
- 在Policy下选择箭头,并选择Native OTP
AAA
虚拟服务器nativeotp_authvserver
- 点击
创建
- 从右侧的Advanced Settings面板中选择Policies
- 选择
+
签名添加 - 下
选择政策
选择交通
,以及选择类型
选择请求
。选择继续
- 单击右箭头,选择
notp_trafficpolicy
,并选择好吧
- 点击
完成
,保存当前配置
用户终端
现在我们通过在Citrix虚拟应用程序和桌面环境中进行身份验证来测试Native OTP。
注册Citrix SSO应用程序
首先,用户使用Citrix SSO应用程序为其设备注册原生OTP。
- 打开浏览器,导航到由Citrix Gateway管理的域FQDN
/ manageotp
附加到FQDN的末尾。我们使用https://gateway.workspaces.wwco.net/manageotp
- 将浏览器重定向到登录屏幕后,输入用户UPN和密码
- 在下一个屏幕上选择Add Device,输入名称。我们使用
iPhone7_nOTP
- 选择Go,出现一个QR码
- 在您的移动设备上打开Citrix SSO应用程序或其他身份验证应用程序,如Microsoft或b谷歌(可从应用商店下载)
- 选择添加新令牌
- 选择扫描二维码
- 选择“将相机对准QR码”,一旦捕获,选择“添加”
- 选择Save以存储令牌
- 令牌现在处于活动状态,并开始以30秒的间隔显示OTP代码
- 选择Done,您将看到设备添加成功的确认信息
Citrix虚拟应用程序和桌面验证、发布和启动
用户在Citrix单点登录应用中输入UserPrincipalName、Password和OTP Password,即可访问虚拟应用和桌面。
- 打开浏览器,导航到由Citrix Gateway管理的域FQDN。我们使用
https://gateway.workspaces.wwco.net
- 将浏览器重定向到登录屏幕后,输入用户UserPrincipalName和密码
- 打开Citrix单点登录应用程序,在密码字段中输入OTP代码
iPhone7_nOTP
设备进入 - 验证用户的虚拟应用程序和桌面被枚举,并在登录后启动
故障排除
下面我们来看几个常见的原生OTP故障排除区域。
国家结核控制规划错误
在登录您的OTP代码页面可能会发布一条消息,建议您验证NTP同步。为了生成正确的基于时间的OTP, Citrix ADC的时间必须同步。如果您尚未实施NTP,请遵循以下步骤:
- 在Citrix ADC上手动设置时间到当前时间。这将加快同步,否则将花费更长的时间
- 添加NTP服务器/s
- 如果在提交OTP代码时仍然得到NTP错误,请参阅NetScaler上的时间显示没有使用NTP同步
身份验证错误
无法完成您的请求。
-如果这个错误消息发生在成功的身份验证后,它可能表明一个错误传递用户凭据StoreFront。验证“双重认证模式”和“流量策略”设置。请重试或联系帮助台
—此错误信息通常表示LDAP登录失败。如果已验证密码是否正确,请验证Administrator绑定密码是否已设置。您可能已经有了一个现有的LDAP身份验证策略,并通过选择它创建了管理策略,然后选择添加基本DN
,您可能会看到管理员密码字段似乎已填充,但您必须重新输入密码。
总结
使用Citrix Workspace和Citrix Gateway,企业可以通过实现多因素身份验证来改进其安全状态,而不会使用户体验变得复杂。用户可以通过输入域用户名和密码来访问他们的Citrix虚拟应用程序和桌面,然后通过从他们注册的身份验证器应用程序输入一次性密码来确认他们的身份。
参考文献
更多信息请参考:
本机OTP认证-查找有关本机OTP实现和用例的更多详细信息。