PoC指南:使用组提取的Citrix网关认证的nFactor
简介
大型企业环境需要灵活的身份验证选项,以满足各种用户角色的需求。使用组提取用户AD组成员关系决定了用户需要完成的nFactor身份验证方法的数量和类型,以验证其身份并访问其应用程序和数据。
用户组的例子包括:
- 普通—安全—针对由于其工作性质或有限的数据访问而具有较低安全需求的个人的组,并且位于公司安全周界的范围内。这个组可能只需要一个因子。
- 高级安全组为第三方工人或承包商,他们可能没有做过背景调查,有较高的安全要求。这个组可能需要2个或更多的因素。
- 高安全级别的员工从事关键工作,需要特殊的政府许可,或行业批准。这个组可能需要2个或更多的因素和上下文验证,如源IP地址。
概述
本指南演示如何使用Citrix Gateway的双因素身份验证实现概念证明环境。它仅在以下情况下使用LDAP验证Active Directory凭据:用户的端点位于私有子网上,表明他们位于公司内部网上,或者用户是“VIP”AD组(如CXO)的成员。否则,假定他们位于企业网络外围的外部,而不是安全性要求较低的组的成员,并且需要以输入电子邮件一次性密码(OTP)的形式完成第二个因素。它使用Citrix Virtual Apps and desktop发布的虚拟桌面来验证连接。
假设以下组件的安装和配置已经完成:
- 安装Citrix ADC并获得许可
- 配置了与通配符证书绑定的外部可达虚拟服务器的Citrix网关
- Citrix网关集成了一个使用LDAP进行身份验证的Citrix虚拟应用程序和桌面环境
- 安装了Citrix Workspace应用程序的端点
- 环境中存在AD (Active Directory)
- 访问SMTP服务器以生成电子邮件
最新的产品版本和license要求请参考Citrix文档。nFactor组提取
nFactor
首先,我们登录到Citrix ADC的CLI,并分别为LDAP和Email输入身份验证操作和相关策略。然后,我们登录到GUI,在visualizer工具中构建nFactor流,并完成多因素身份验证配置。
LDAP身份验证策略
我们创建LDAP操作以及引用它们的策略。我们还创建了Email操作以及引用它的策略,这是针对非VIP组成员或本地子网上的用户的多因素身份验证方法。
对于LDAP动作,填充所需的字段以创建字符串中的LDAP动作,并将其粘贴到CLI中:
ldapAction
—输入动作名称。serverIP
—输入域服务器的FQDN或IP地址。serverPort
—输入LDAP端口。ldapBase
-输入域对象和容器的字符串,相关用户存储在您的目录中。ldapBindDn
—查询域用户时使用的业务帐号。ldapBindDnPassword
—输入业务帐号密码。ldapLoginName
—输入用户对象类型。groupAttrName
—输入组属性名称。subAttributeName
—输入子属性名称。secType
—输入安全类型。ssoNameAttribute
—输入单点登录名称属性。defaultAuthenticationGroup
—输入默认认证组。alternateEmailAttr
-输入用户域对象属性,用户的电子邮件地址可以被检索到。
对于LDAP策略,在字符串中填充引用LDAP动作所需的字段,并将其粘贴到CLI中:
政策
-输入策略名称。行动
-输入我们在上面创建的电子邮件操作的名称。
有关更多信息,请参见LDAP身份验证策略
- 首先通过打开到Citrix ADC的NSIP地址的SSH会话连接到CLI,并作为
nsroot
管理员或同等级别的admin用户。
LDAP动作1 - authAct_GroupExtract_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:add authentication ldapAction authAct_GroupExtract_genf -serverIP 192.0.2.50 -ldapBase "OU=Team M,OU=Team Accounts,OU=Demo Accounts,OU=Workspaces Users,DC= Workspaces,DC=wwco,DC=net" -ldapBindDn workspacessrv@workspaces.wwco.net -ldapBindDnPassword 123xyz -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName userPrincipalName - grouppattrname memberOf -subAttributeName cn -secType SSL -authentication DISABLED .
LDAP策略1 - authPol_GroupExtract_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:添加认证策略authPol_GroupExtract_genf -rule true -action authAct_GroupExtract_genf
LDAP策略2A - authPol_LdapOnly_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:添加认证策略authPol_LdapOnly_genf -rule "AAA.USER.IS_MEMBER_OF(\"VIP\") || client.IP.SRC.IN_SUBNET(10.0.0.0/8)"动作片NO_AUTHN
LDAP策略2B - authPol_TwoFactor_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:添加认证策略authPol_TwoFactor_genf -rule "client.IP.SRC.IN_SUBNET(10.0.0.0/8) "。不是“动作片NO_AUTHN
LDAP动作3A - authAct_Ldap_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:add authentication ldapAction authAct_Ldap_genf -serverIP 192.0.2.50 -ldapBase "OU=Team M,OU=Team Accounts,OU=Demo Accounts,OU=Workspaces Users,DC= Workspaces,DC=wwco,DC=net" -ldapBindDn workspacessrv@workspaces.wwco.net -ldapBindDnPassword 123xyz -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName userPrincipalName -groupAttrName memberOf -subAttributeName cn -secType SSL -passwdChange ENABLED .
LDAP策略3A - authPol_Ldap_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:添加认证策略authPol_Ldap_genf -rule true -action authAct_Ldap_genf
LDAP动作3B - authAct_LDAP_eotp_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:add authentication ldapAction authAct_LDAP_eotp_genf -serverIP 192.0.2.50 -serverPort 636 -ldapBase "DC=workspaces,DC=wwco,DC=net" -ldapBindDn workspacessrv@workspaces.wwco.net -ldapBindDnPassword 123xyz -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName userPrincipalName - grouppattrname memberOf -subAttributeName cn -secType SSL -ssoNameAttribute userPrincipalName -defaultAuthenticationGroup Email-OTP -alternateEmailAttr otherMailbox .net
LDAP策略3B - authPol_LDAP_eotp_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:添加认证策略authpol_ldapetp_genf -rule true -action authAct_LDAP_eotp_genf
电子邮件认证政策
填充以下字段来创建Email操作,并将完成的字符串粘贴到CLI中:
emailAction
—输入动作名称。用户名
—输入登录邮件服务器的用户或业务帐号。密码
—输入业务帐号密码登录邮件服务器。(默认由Citrix ADC加密)serverURL
—输入邮件服务器的FQDN或IP地址。内容
—在输入邮箱代码的字段旁边输入用户信息。时间
-输入邮件码有效的秒数。emailAddress
—输入LDAP对象查询用户邮箱地址。
对于Email策略,填充所需的字段以引用字符串中的Email Action,并将其粘贴到CLI中:
政策
-输入策略名称。行动
—输入“Email”动作的名称
有关更多信息,请参见邮件OTP认证策略
邮件动作4B - authAct_Email_eotp_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:
add authentication emailAction authAct_Email_eotp_genf -userName workspacessrv@workspaces.wwco.net -password 123xyz -encrypted -encryptmethod ENCMTHD_3 -serverURL "smtps://192.0.2.40:587" -content "Your OTP is $code" -timeout 60 -emailAddress "aaa.user.attribute(\"alternate_mail\")"
邮件策略4B - authPol_Email_eotp_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:
添加认证策略authPol_Email_eotp_genf -rule true -action authAct_Email_eotp
登录模式
lSchema 1 - lSchema_GroupExtract_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:add authentication loginSchema lSchema_GroupExtract_genf -authenticationSchema "/nsconfig/ loginSchema / loginSchema /OnlyUsername.xml"
lSchema 2 - CheckAuthType_genf
第二个因素不需要登录模式。它只有带有表达式的策略来检查下一步要做哪个因子。
lSchema 3A - lSchema_LDAPPasswordOnly_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:add authentication loginSchema lSchema_LDAPPasswordOnly_genf -authenticationSchema "/nsconfig/ loginSchema / loginSchema /PrefilUserFromExpr.xml"
在这里,您可能会收到http.req.user已被aaa.user替换的警告。必须在命令行中编辑xml文件。
要在命令行中编辑xml文件,请执行以下步骤:
- 1 .登录Citrix ADC CLI
- 输入
壳牌
现在你有两个选择:
自动化:
- 输入
Sed -i " 's/http。要求/ aaa / ' / nsconfig / loginschema / loginschema / PrefilUserFromExpr.xml
- 输入
猫/ nsconfig loginschema / loginschema / PrefilUserFromExpr.xml
检查更改
手册:
- 输入
cd / nsconfig / loginschema / loginschema
- 输入
vi PrefilUserFromExpr.xml
- 输入
/ http.req
- 按x 8次删除
http.req
字符串 - 按逃生键
- 按i并回车
aaa
,再次按逃生键 - 按冒号键':',回车
wq
并按enter键。 - 注意,您可以使用此方法修改登录模式的其他方面,例如字段提示
lSchema 3B - lSchema_EOTPPasswordOnly_genf
更新您环境中的以下字段,并将字符串复制并粘贴到CLI中:add authentication loginSchema lSchema_EOTPPasswordOnly_genf -authenticationSchema "/nsconfig/ loginSchema / loginSchema /PrefilUserFromExpr.xml"
注意:3B因子也使用了PrefilUserFromExpr.xml模式,但是我们对EOTP路径对策略进行了不同的标记。
lSchema 4B - EOTP_genf
第四个因素不需要登录模式。它生成带有一次性密码的电子邮件。
nFactor
- 1 .登录Citrix ADC界面
- 导航到流量管理> SSL>证书>所有证书验证您是否安装了域证书。在这个POC示例中,我们使用了一个对应于Active Directory域的通配符证书。看到Citrix ADC SSL证书为更多的信息。
- 下一个导航
安全> AAA -应用流量> nFactor Visualizer > nFactor流
- 选择Add并在Factor框中选择加号
视觉型的人
Factor1_GroupExtract_genf
- 输入
Factor1_GroupExtract_genf
并选择create - 选择Add模式
- 选择登录模式lSchema_GroupExtract_genf
- 选择OK
- 在同一框中选择Add Policy
- 选择LDAP策略
authPol_GroupExtract_genf
- 选择添加
- 选项旁边的绿色加号
authPol_GroupExtract_genf
政策创造另一个因素
Factor2_CheckAuthType_genf
- 输入
Factor2_CheckAuthType_genf
这个Factor用于验证身份验证需求 - 选择Create
- 在同一框中选择Add Policy
- 选择
authPol_LdapOnly_genf
- 在Goto表达式下选择
结束
- 选择添加
- 选项下面的蓝色加号
authPol_LdapOnly_genf
策略来添加第二个策略 - 选择政策
authPol_TwoFactor_genf
- 输入
90
的优先级在这里,我们通过将优先级降低到90(小于默认值100),使Two Factor策略先于仅LDAP策略发生。这确保了VIP组中的远程用户被识别为仅用于LDAP认证的用户。 - 选择添加
Factor3A_LDAPPasswordAuth_genf
- 回到
authPol_GroupExtract_genf
策略选择绿色加号以创建另一个因子 - 输入
Factor3A_LDAPPasswordAuth_genf
- 选择Create
- 在同一框中选择Add Policy
- 选择
authPol_Ldap_genf
- 在Goto表达式下选择
结束
- 选择添加
- 选择Add模式
- 选择登录模式
lSchema_LDAPPasswordOnly_genf
- 选择OK
Factor3B_EOTPPasswordAuth_genf
- 回到
authPol_TwoFactor_genf
策略选择绿色加号以创建另一个因子 - 输入
Factor3B_EOTPPasswordAuth_genf
- 选择Create
- 在同一框中选择Add Policy
- 选择
authPol_LdapEtop_genf
- 选择添加
- 选择Add模式
- 选择登录模式
lSchema_EOTPPasswordOnly_genf
- 选择OK
Factor4B_EOTP_genf
- 旁边的
authPol_LdapEtop_genf
策略选择绿色加号以创建另一个因子 - 输入
Factor4B_EOTP_genf
- 选择Create
- 在同一框中选择Add Policy
- 选择
authPol_Email_eotp_genf
- 选择添加
- 选择Done, nFactor流就完成了
Citrix ADC认证、授权和审计(Citrix ADC AAA)虚拟服务器
- 下一个导航安全> AAA -应用流量>虚拟服务器并选择Add
- 输入以下字段并单击OK:
- 名称—唯一的值。我们进入
GroupExtraction_AuthVserver
- IP地址类型-
非可寻址
- 名称—唯一的值。我们进入
- 选择“无服务器证书”,选择域证书,单击“选择、绑定并继续”
- 选择No nFactor Flow
- 在Select nFactor Flow下单击右箭头,选择
Factor1_GroupExtract_genf
流之前创建 - 单击Select,然后是Bind,然后是Continue
Citrix网关—虚拟服务器
- 下一个导航Citrix Gateway >虚拟服务器
- 选择提供对Citrix虚拟应用程序和桌面环境的代理访问的现有虚拟服务器
- 选择编辑
- 如果您当前有LDAP策略绑定,请在“基本身份验证-主身份验证”下导航,选择“LDAP策略”。检查策略后,选择“解绑定”,选择“是”确认,然后选择“关闭”
- 在右侧的高级设置菜单下选择身份验证配置文件
- 选择添加
- 输入一个名称。我们进入
GroupExtract_AuthProfile
- 在身份验证虚拟服务器下,单击右箭头,并选择我们创建的Citrix ADC AAA虚拟服务器
GroupExtraction_AuthVserver
- 单击选择,然后创建
- 单击OK并验证虚拟服务器现在已经选择了身份验证配置文件,同时已删除基本身份验证策略
- 点击完成
用户终端
首先,我们通过在Citrix虚拟应用程序和桌面环境中进行身份验证,测试One Factor身份验证是否应用于VIP用户。
- 打开浏览器,导航到Citrix Gateway管理的域FQDN。我们使用
https://gateway.workspaces.wwco.net
- 在浏览器被重定向到登录屏幕后。首先输入用户名。我们使用
wsvipuser@workspaces.wwco.net
该用户必须是AD组的成员贵宾
- nFactor确定该用户是VIP组的成员,并提示您提交用户密码。
- 现在用户已经登录到他们的Workspace页面。
- 选择虚拟桌面并验证启动。
现在,我们再次通过在Citrix虚拟应用程序和桌面环境中进行身份验证,测试使用Email OTP的双因素身份验证。
- 打开浏览器,导航到Citrix Gateway管理的域FQDN。我们使用
https://gateway.workspaces.wwco.net
- 在浏览器被重定向到登录屏幕后。首先输入用户名。我们使用
wsuser@workspaces.wwco.net
- nFactor确定用户不是本地用户,也不是VIP组的成员,将提示您提交用户密码。
- 然后,nFactor呈现一个请求OTP密码的表单。我们复制并粘贴密码从
wsuser
电子邮件帐户。 - 现在用户已经登录到他们的Workspace页面。
- 选择虚拟桌面并验证启动。
总结
使用Citrix Workspace和Citrix Gateway,企业可以通过实现多因素身份验证来改善其安全态势,而不会使用户体验变得复杂。组提取允许企业根据用户组角色需求定制其多因素使用的深度,以及上下文身份验证。
参考文献
更多信息请参考:
Citrix ADC命令查找策略支安打
为Citrix网关会话策略-了解更多CLI命令,如Nsconmsg -d current -g _hits
跟踪政策支安打
帮助解决。
Citrix Gateway Authentication with Email OTP的nFactor-学习如何实现一种可扩展和灵活的方法来配置多因素身份验证,使用nFactor为Citrix网关身份验证配置电子邮件一次性密码。