系统用户和外部用户的双因素认证
双因素身份验证是一种安全机制,Citrix ADC设备在两个身份验证器级别对系统用户进行身份验证。设备只有在两个级别的身份验证都成功验证密码后才授予用户访问权限。如果用户在本地进行身份验证,则必须在Citrix ADC数据库中创建用户配置文件。如果是外部认证,则用户名和密码必须与在外部认证服务器上注册的用户身份匹配。
请注意
双因素身份验证功能仅适用于Citrix ADC 12.1 build 51.16以后的版本。
双因素身份验证是如何工作的
考虑一个用户试图登录到Citrix ADC设备。被请求的应用服务器将用户名和密码发送给第一个外部认证服务器(RADIUS、TACACS、LDAP或AD)。验证了用户名和密码后,将提示用户进行第二级身份验证。用户现在可以提供第二个密码。只有当两个密码都正确时,才允许用户访问Citrix ADC设备。下图展示了Citrix ADC设备的双因素身份验证工作原理。
以下是为外部用户和系统用户配置双因素身份验证的不同用例。
您可以通过不同的方式在Citrix ADC设备上配置双因素身份验证。以下是Citrix ADC设备上双因素身份验证的不同配置场景。
- 跨Citrix ADC、GUI、CLI、API和SSH的双因素身份验证(2FA)。
- 系统用户已启用外部认证,未启用本地认证。
- 为系统用户启用了基于策略的本地认证的外部认证。
- 对启用本地认证的系统用户禁用外部认证。
- 系统用户已启用外部认证和本地认证。
- 为选定的LDAP用户启用外部认证
用例1:跨Citrix ADC、GUI、CLI、API和SSH接口的双因素认证(2FA)
双因素身份验证在GUI、API和SSH的所有Citrix ADC管理访问中启用并可用。
用例2:外部认证服务器支持双因素认证,如LDAP、RADIUS、Active Directory和TACACS
可以在以下外部认证服务器上配置双因素认证,用于一级和二级用户认证。
- 半径
- LDAP
- 活动目录
- TACACS
用例3:对系统用户启用外部认证,禁用本地认证
您可以通过启用外部身份验证选项并禁用系统用户的本地身份验证来开始身份验证过程。
使用命令行界面完成以下步骤:
- 为LDAP策略添加认证动作
- 为LDAP策略添加认证策略
- 添加RADIUS策略的认证动作
- 为RADIUS策略添加认证策略
- 添加身份验证登录模式
- 为RADIUS服务器添加并绑定认证策略标签
- 为LDAP策略绑定系统全局认证
- 关闭system参数中的本地认证
为LDAP服务器添加身份验证动作(一级身份验证)
在命令提示符下,输入:
add authentication ldapaction
例子:
add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn名称-ldapbindDNpassword密码- ldapploginname名称-groupAttrName名称-subAttributeName名称-ssoNameAttribute名称
添加LDAP服务器认证策略(第一级认证)
在命令提示符下,输入:添加认证策略
例子:添加认证策略pol1 -rule true -action ldapact1
添加RADIUS服务器认证动作(二级认证)
在命令提示符下,输入:
add authentication radiusaction
例子:
add authentication radusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2 .使用实例
添加RADIUS服务器认证策略(二级认证)
在命令提示符下,输入:
添加认证策略
例子:
添加认证策略radpol11 -rule true -action radact1
添加身份验证登录模式
您可以使用系统用户的“SingleAuth.xml”登录模式为Citrix ADC设备提供第二个密码。在命令提示符下,输入:
add authentication loginSchema <登录模式名> -authenticationSchema loginSchema /SingleAuth.xml
例子:
add authentication loginSchema radschema -authenticationSchema loginSchema /SingleAuth.xml
为RADIUS服务器添加并绑定认证策略标签
在命令提示符下,输入:
add authentication policylabel
bind authentication policylabel
例子:
add authentication policylabel label1 -type RBA_REQ -loginSchema radschema
bind authentication policylabel label1 -policyName radpol11 -priority
为LDAP策略绑定认证系统global
在命令提示符下,输入:
bind system global ldappolicy -priority
例子:
bind system global pol11 -priority 1 -nextFactor label1
关闭system参数中的本地认证
在命令提示符下,输入:
设置系统参数-localauth disabled
用例4:为系统用户启用外部身份验证,并附加本地身份验证策略
在此场景中,允许用户使用双因素身份验证登录设备,并在用户标识的第二级进行本地身份验证策略评估。
使用命令行界面完成以下步骤。
- 添加LDAP服务器的认证动作
- 为LDAP策略添加认证策略
- 添加本地认证策略
- 添加认证策略标签
- 将LDAP策略绑定为系统全局策略
- 关闭system参数中的本地认证
为LDAP服务器添加身份验证动作(一级身份验证)
在命令提示符下,输入:
add authentication ldapaction
例子:
add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn名称-ldapbindDNpassword密码- ldapploginname名称-groupAttrName名称-subAttributeName名称-ssoNameAttribute名称-ssoNameAttribute名称
添加LDAP服务器认证策略(第一级认证)
在命令提示符下,输入:
添加认证策略
例子:
add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn名称-ldapbindDNpassword密码- ldapploginname名称-groupAttrName名称-subAttributeName名称-ssoNameAttribute名称
为系统用户添加本地认证策略(二级认证)
在命令提示符下,输入:
add authentication radiusaction
例子:
add authentication radusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2 .使用实例
添加并绑定认证策略标签
在命令提示符下,输入:
add authentication policylabel
bind authentication policylabel
例子:
add authentication policylabel label1 -type RBA_REQ -loginSchema radschema
bind authentication policylabel label1 -policyName radpol11 -priority 1 -gotoPriorityExpression NEXT
关闭system参数中的本地认证
在命令提示符下,输入:
设置系统参数-localauth disabled
用例5:对系统用户禁用外部身份验证,启用本地身份验证
如果该用户未启用externalAuth,则表示该用户在认证服务器上不存在。即使外部认证服务器上存在相同用户名的用户,也不向外部认证服务器进行认证。用户进行本地认证。
启用系统用户密码,关闭外部认证
在命令提示符下,输入以下命令:
add system user
例子:
add system user user1 password1 -externalAuth DISABLED
用例6:为系统用户启用外部身份验证和本地身份验证
将设备配置为使用本地密码对系统用户进行身份验证。如果此身份验证失败,则在两个级别的外部身份验证服务器上使用外部身份验证密码对用户进行身份验证。
请通过命令行配置以下步骤。
- 添加LDAP服务器的认证动作
- 为LDAP策略添加认证策略
- 添加RADIUS策略的认证动作
- 为RADIUS策略添加认证策略
- 添加身份验证登录模式
- 添加认证策略标签
- 为登录模式绑定身份验证策略标签
- 为RADIUS策略绑定认证系统global
- 为LDAP策略绑定认证系统global
添加LDAP服务器的认证动作
在命令提示符下,输入:
add authentication ldapaction
例子:
add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn名称-ldapbindDNpassword密码- ldapploginname名称-groupAttrName名称-subAttributeName名称-ssoNameAttribute名称
为LDAP策略添加认证策略
在命令提示符下,输入:
添加认证策略
例子:
添加认证策略pol1 -rule true -action ldapact1
添加RADIUS服务器的认证动作
在命令提示符下,输入:
add authentication radiusaction
例子:
add authentication radusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2 .使用实例
添加RADIUS服务器高级认证策略
在命令提示符下,输入:
添加认证策略
例子:
添加认证策略radpol11 -rule true -action radact1
添加身份验证登录模式
您可以使用SingleAuth.xml登录模式来显示登录页面,并对系统用户进行二级身份验证。
在命令提示符下,输入:
添加认证loginSchema
例子:
add authentication loginSchema radschema -authenticationSchema loginSchema /SingleAuth.xml
为用户登录的RADIUS认证策略添加并绑定认证策略标签
在命令提示符下,输入:
add authentication policylabel
例子:
add authentication policylabel label1 -type RBA_REQ -loginSchema radschema
bind authentication policylabel
例子:
bind authentication policylabel label1 -policyName rad pol11 -priority
绑定认证策略global
在命令提示符下,输入:
bind system global [
例子:
bind system global radpol11 -priority 1 -nextFactor label11
用例7:仅为选定的外部用户启用外部身份验证
根据LDAP操作中配置的搜索过滤器,为有选择的外部用户配置双因素身份验证,而其他系统用户使用单因素身份验证。
请通过命令行配置以下步骤。
- 添加LDAP服务器的认证动作
- 为LDAP策略添加认证策略
- 添加RADIUS策略的认证动作
- 为RADIUS策略添加认证策略
- 添加身份验证登录模式
- 添加认证策略标签
- 为登录模式绑定身份验证策略标签
- 为RADIUS策略绑定认证系统global
添加LDAP服务器的认证动作
在命令提示符下,输入:
add authentication ldapaction
例子:
add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn名称-ldapbindDNpassword密码- ldapploginname名称-groupAttrName名称-subAttributeName名称-ssoNameAttribute名称
为LDAP策略添加认证策略
在命令提示符下,输入:
添加认证策略
例子:
添加认证策略pol1 -rule true -action ldapact1
添加RADIUS服务器的认证动作
在命令提示符下,输入:
add authentication radiusaction
例子:
add authentication radusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2 .使用实例
添加RADIUS服务器高级认证策略
在命令提示符下,输入:
添加认证策略
例子:
添加认证策略radpol11 -rule true -action radact1
添加身份验证登录模式
您可以使用SingleAuth.xml登录模式为设备提供登录页面,以便在第二级身份验证中对系统用户进行身份验证。
在命令提示符下,输入:
添加认证loginSchema
例子:
add authentication loginSchema radschema -authenticationSchema loginSchema /SingleAuth.xml
为用户登录的RADIUS认证策略添加并绑定认证策略标签
在命令提示符下,输入:
add authentication policylabel
例子:
add authentication policylabel label1 -type RBA_REQ -loginSchema radschema
bind authentication policylabel
例子:
bind authentication policylabel label1 -policyName radpol11 -priority
绑定认证策略global
在命令提示符下,输入:
bind system global [
例子:
bind system global radpol11 -priority 1 -nextFactor label11
使用搜索过滤器对组用户配置不进行双因素认证。
- 添加LDAP服务器的认证动作
- 添加LDAP服务器的认证策略
- 为LDAP服务器绑定认证系统global
添加LDAP服务器的认证动作
在命令提示符下,输入:
add authentication ldapaction
例子:
add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base - ldapbinddn名称- ldapbinddnpassword密码- ldapploginname名称- groupattrname名称- subattributename名称- searchFilter "memberOf=CN=grp4,CN=Users,DC= aaatom -test,DC=com"
添加LDAP服务器的认证策略
在命令提示符下,输入:
添加认证策略
例子:
添加认证策略pol1 -rule true -action ldapact1
为LDAP策略绑定认证系统global
在命令提示符下,输入:
bind system global ldappolicy -priority
例子:
bind system global pol11 -priority 1 -nextFactor label11
显示双因素身份验证的自定义提示消息
当您使用SingleAuth.xml文件配置双因素密码字段时/ flash / nsconfig / loginschema / loginschema
下面是SingleAuth.xml文件的代码片段,其中' SecondPassword: '是提示用户输入第二个密码的第二个密码字段名。
<?xml version="1.0" encoding="UTF-8"?> success more-info /nf/auth/doAuthentication.do /nf/auth/doLogoff.do Cancel login ExplicitForms-Username username singleauth_please_supply_either_domain\username_or_user@fully.qualified.domain false false .+ passwd ExplicitForms-Password password true false .+ none saveCredentials savecredentials false loginBtn none
通过使用Citrix ADC GUI配置双因素身份验证
- 登录到Citrix ADC设备。
- 去系统>身份验证>先进的政策>政策。
- 单击“新建”,创建第一级认证策略。
- 在创建认证策略界面,设置如下参数。
- 名字策略名称
- 动作类型。选择动作类型为LDAP、Active Directory、RADIUS、TACACS等
- 行动。要与策略关联的认证动作(配置文件)。您可以选择现有的身份验证操作,或者单击加号并创建适当类型的操作。
- 表达式。提供高级策略表达式。
- 点击创建然后关闭。
- 表达式。提供高级策略表达式。
- 点击创建。
- 点击添加创建二级认证策略。
- 在创建认证策略界面,设置如下参数
- 名字策略名称
- 动作类型。选择动作类型为LDAP、Active Directory、RADIUS、TACACS等
- 行动。要与策略关联的认证动作(配置文件)。您可以选择一个现有的身份验证操作,或者单击+图标来创建适当类型的操作。
- 表达式。提供高级策略表达式
- 点击创建然后关闭。
- 表达式。提供高级策略表达式。
- 点击创建。
- 在身份验证策略页面,点击全球绑定。
- 在创建全局认证策略绑定选择一级认证策略,单击添加绑定。
- 在政策约束力界面,选择认证策略,并设置策略绑定参数。
- 下一个因素。选择第二级认证策略标签。
点击绑定和关闭。
- 点击完成。
- 登录到Citrix ADC设备进行第二级身份验证。用户现在可以提供第二个密码。只有当两个密码都正确时,才允许用户访问Citrix ADC设备。
请注意
为第二因素身份验证配置的TACACS,即使在“tacacsAction”命令上启用,也不支持授权和计费。第二个因素仅用于身份验证目的。
同时,看到Citrix ADC nFactor认证中的双因素认证的话题。