PoC指南:使用推牌的Citrix网关身份验证的nFactor

简介

基于时间的一次性密码(Time - Based One Time password, TOTP)是一种越来越常见的方法,用于提供可以通过其他因素提高安全性的身份验证。带PUSH的TOTP通过允许用户在指尖接收和接受身份验证请求来利用移动设备。通过对设置期间分发的共享密钥应用散列来保护交换。

Citrix Gateway支持OTP的推送通知,可以为各种服务提供身份验证,包括web服务、VPN、Citrix虚拟应用程序和桌面。在本POC指南中,我们将演示在Citrix虚拟应用程序和桌面环境中使用它进行身份验证。

把身份验证

概述

本指南演示如何使用Citrix Gateway的双因素身份验证实现概念证明环境。它使用LDAP验证Active Directory凭据作为第一个因素,并使用Citrix云推送身份验证作为第二个因素。它使用Citrix Virtual Apps and desktop发布的虚拟桌面来验证连接。

假设以下组件的安装和配置已经完成:

  • 已安装Citrix Gateway,并使用绑定到通配符证书的外部可达虚拟服务器进行授权和配置。
  • Citrix网关集成了一个使用LDAP进行身份验证的Citrix虚拟应用程序和桌面环境
  • 建立Citrix Cloud帐户
  • 安装了Citrix Workspace应用程序的端点
  • 移动设备安装Citrix SSO应用程序
  • 环境中存在AD (Active Directory)

最新的产品版本和license要求请参考Citrix文档。把身份验证

Citrix网关

nFactor

  1. 1 .登录Citrix ADC界面
  2. 导航到流量管理> SSL>证书>所有证书验证您是否安装了域证书。在这个POC示例中,我们使用了一个对应于Active Directory域的通配符证书。看到Citrix ADC SSL证书更多信息。

推送服务动作

  1. 下一步导航到安全> AAA -应用流量>策略>认证>高级策略>动作>推送服务
  2. 选择添加
  3. 填充以下字段并单击OK:把身份验证
    • 名称—唯一的值。我们将在以下字段中输入值以集成Citrix Cloud - PUSH Service
    • 登录Citrix Cloud并导航到身份和访问管理> API访问
    • 为推送服务创建一个惟一的名称,并选择Create client现在,我们将把这些值复制并粘贴到我们的Citrix ADC策略中,以与Citrix Cloud - PUSH Service集成把身份验证
    • 客户端ID——从Citrix Cloud ID复制并粘贴客户端ID,然后秘密弹出
    • 客户端秘密-从Citrix Cloud ID复制并粘贴客户端ID,然后弹出秘密窗口
    • 选择关闭把身份验证
    • 客户ID—从Citrix云身份和访问管理API访问页面复制并粘贴客户ID
  4. 单击Create

LDAP—身份验证操作

  1. 下一步导航到安全> AAA -应用流量>策略>认证>高级策略>动作> LDAP
  2. 选择添加
  3. 填充以下字段
    • 名称—唯一的值
    • 服务器名称/ IP地址—为AD服务器选择一个FQDN或IP地址。我们进入192.0.2.50_LDAP
    • 基准DN -输入AD用户容器的路径。我们进入OU=Team Accounts, DC=workspaces, DC=wwco, DC=net
    • 管理员绑定DN -输入admin/service帐号查询AD,对用户进行认证。我们进入workspacesserviceaccount@workspaces.wwco.net
    • 确认/管理员密码—输入/确认admin /业务帐户密码
    • 服务器登录名属性-在该字段下面的第二个字段中输入userPrincipalName
  4. 选择Create把身份验证有关更多信息,请参见LDAP认证策略

LDAP -令牌存储操作

  1. 下一步导航到安全> AAA -应用流量>策略>认证>高级策略>动作> LDAP
  2. 选择上面创建的LDAP操作并选择create
  3. 在名称后面追加OTP或任何标识符,并取消选择身份验证把身份验证
  4. 在“连接设置”中检查Base DN、管理员绑定DN和密码。请确保管理员用户或业务帐户是域管理员的成员。该策略将被用来写入由用户的验证器应用程序注册的令牌到用户对象的userParameters属性中。把身份验证
  5. 向下滚动到“其他设置”
    • OTP保密-输入userParameters
    • Push Service -选择上面创建的Push服务策略把身份验证
  6. 选择Create把身份验证

nFactor

  1. 下一步导航到安全> AAA -应用流量> nFactor Visualizer > nFactor流
  2. 选择Add并在Factor框中选择加号
  3. 输入nFactor_OTP并选择create把身份验证

nFactor -注册流程

  1. 选择“添加策略”,并在“选择策略”后再次选择“添加”
  2. 输入authPol_OTPReg
  3. 在“动作类型”下选择NO_AUTHN
  4. 选择Expression Editor并通过在下拉菜单中选择以下选项来构建表达式:
    • HTTP
    • 要求的事情
    • COOKIE.VALUE(字符串)= NSC_TASS
    • EQ(String) = managotp
  5. 选择Done,然后是Create,然后是Add把身份验证
  6. 选择authPol_OTPReg策略旁边的绿色加号以创建因子
  7. 输入OTPRegAD然后选择创建
  8. 在创建的框中选择Add Schema
  9. 选择Add并输入lschema_SingleRegOTP
  10. 在模式文件下导航到LoginSchema,并选择SingleAuthManageOTP.xml
  11. 选择蓝色的选择按钮,然后是Create,然后是OK
  12. 在同一框中选择“添加策略”,并在“选择策略”旁边再次选择“添加”
  13. 输入authPol_LDAP作为名称
  14. 在“动作类型”中选择LDAP
  15. 在“操作”下选择您的第一个LDAP身份验证操作。我们使用192.0.2.50_LDAP
  16. 在表达式下输入true把身份验证
  17. 选择Create,然后选择Add
  18. 选项旁边的绿色加号authPol_LDAP政策要创建一个因子
  19. 输入OTPRegDevice然后选择创建
  20. 在同一框中选择“添加策略”,并在“选择策略”旁边再次选择“添加”
  21. 输入authPol_OTPAuthDevice为了名字
  22. 在“动作类型”中选择LDAP
  23. 在Action下选择新创建的(第二个)LDAP身份验证操作。我们使用192.0.2.50_LDAP_OTP
  24. 在表达式下输入true把身份验证
  25. 选择Create,然后选择Add

nFactor -认证流程

  1. 选项下面的蓝色加号authPol_OTPReg政策
  2. 输入authPol_OTPAuth
  3. 在“动作类型”下选择NO_AUTHN
  4. 在表达式下输入true
  5. 选择Create
  6. 选项旁边的绿色加号authPol_OTPAuth策略来创建一个因子
  7. 输入OTPAuthAD
  8. 选择Create
  9. 在创建的框中选择Add Schema
  10. 选择Add并输入lschema_DualAuthOTP
  11. 在模式文件下导航到LoginSchema,并选择DualAuthPushOrOTP.xml
  12. 选择蓝色的选择按钮,然后是Create,然后是OK
  13. 在同一框中选择Add Policy
  14. 选择我们在设置映射到第一个LDAP身份验证操作的Registration流期间创建的策略。我们使用authPol_LDAP
  15. 选择添加
  16. 选项旁边的绿色加号authPol_Ldap策略来创建一个因子
  17. 输入OTPAuthDevice这个因子将使用OTP令牌执行第二因子身份验证
  18. 选择Create
  19. 在同一框中选择Add Policy
  20. 选择策略authPol_OTPAuthDevice我们在注册流程设置过程中创建的
  21. 选择添加
  22. 现在我们已经完成了nFactor流的设置,可以单击Done把身份验证

Citrix ADC认证、授权和审计(Citrix ADC AAA)虚拟服务器

  1. 下一步导航到安全> AAA -应用流量>虚拟服务器然后选择Add
  2. 输入以下字段并单击OK:
    • 名称—唯一的值
    • IP地址类型-非可寻址把身份验证
  3. 选择“无服务器证书”,选择域证书,单击“选择、绑定并继续”
  4. 选择No nFactor Flow
  5. 在Select nFactor Flow下单击右箭头,选择nFactor_OTP之前创建的流
  6. 单击Select,然后单击Bind把身份验证

Citrix网关—虚拟服务器

  1. 下一步导航到Citrix Gateway >虚拟服务器
  2. 选择提供对Citrix虚拟应用程序和桌面环境的代理访问的现有虚拟服务器
  3. 选择编辑
  4. 在“基本身份验证-主身份验证”中选择“LDAP策略”
  5. 检查策略,选择“解绑定”,选择“是”确认,然后选择“关闭”
  6. 在右侧的高级设置菜单下选择身份验证配置文件
  7. 选择添加
  8. 输入名称。我们进入PUSH_auth_profile
  9. 在身份验证虚拟服务器下,单击右箭头,并选择我们创建的Citrix ADC AAA虚拟服务器PUSH_Auth_Vserver
  10. 单击选择,然后创建
  11. 单击OK并验证虚拟服务器现在已经选择了身份验证配置文件,同时已删除基本身份验证策略把身份验证
  12. 点击完成

用户终端

现在,我们通过注册一个移动设备并在Citrix虚拟应用程序和桌面环境中进行身份验证来测试PUSH。

注册Citrix SSO应用程序

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

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

  1. 打开浏览器,导航到Citrix Gateway管理的域FQDN。我们使用https://gateway.workspaces.wwco.net
  2. 在浏览器被重定向到登录屏幕后,输入用户UPN和密码。在这个屏幕上,如果你的相机因为某种原因无法工作,你可以看到点击手动输入OTP的选项把身份验证
  3. 在您的移动设备上,在Citrix SSO应用程序中选择OK以确认PUSH身份验证把身份验证
  4. 验证用户的虚拟应用程序和枚举的桌面,并在登录后启动把身份验证

总结

使用Citrix Workspace和Citrix Gateway,企业可以通过实现多因素身份验证来改善其安全态势,而不会使用户体验变得复杂。用户可以通过输入他们的标准域用户和密码,并通过按下移动设备上Citrix SSO应用程序中的一个按钮来确认他们的身份,从而访问他们的所有工作区资源。

参考文献

更多信息请参考:

身份验证推-观看Tech Insight关于使用TOTP提高Citrix工作区身份验证安全性的视频

认证-现场Citrix网关-观看Tech Insight视频,介绍如何与本地Citrix Gateway集成,以提高Citrix Workspace的身份验证安全性

PoC指南:使用推牌的Citrix网关身份验证的nFactor