Citrix ADC 控制台的双因素身份验证

双重身份验证是 Citrix ADC 设备在两个身份验证器级别对系统用户进行身份验证的一种安全机制。仅在通过两个级别的身份验证成功验证密码后,设备才向用户授予访问权限。如果用户在本地进行身份验证,则必须在 Citrix ADC 数据库中创建用户配置文件。如果用户在外部进行身份验证,则用户名和密码必须与在外部身份验证服务器中注册的用户身份相匹配。

注意: 双因素身份验证功能适用于 Citrix ADC 12.1 版本 51.16 版本。

双重身份验证的工作原理

考虑一个用户尝试登录到 Citrix ADC 设备。请求的应用程序服务器将用户名和密码发送到第一个外部身份验证服务器(RADIUS、TACACS、LDAP 或 AD)。验证用户名和密码后,系统会提示用户进行第二级身份验证。用户现在可以提供第二个密码。只有当两个密码都正确时,用户才能访问 Citrix ADC 设备。下图展示了双重身份验证如何适用于 Citrix ADC 设备。

本地化后的图片

以下是为外部和系统用户配置双重身份验证的不同用例。

为 Citrix ADC 管理访问配置双重身份验证

您可以通过不同方式在 Citrix ADC 设备上配置双重身份验证功能。配置方案如下所示:

  1. 跨 Citrix ADC、GUI、CLI、API 和 SSH 的双因素身份验证 (2FA)。
  2. 为系统用户启用了外部身份验证并禁用了本地身份验证。
  3. 为系统用户启用基于策略的本地身份验证的外部身份验证。
  4. 已启用本地身份验证的系统用户禁用外部身份验证。
  5. 为系统用户启用了外部身份验证和启用了本地身份验证。
  6. 为选定的 LDAP 用户启用外部身份验证

案例 1:跨 Citrix ADC、GUI、CLI、API 和 SSH 的双因素身份验证 (2FA)

针对 GUI、API 和 SSH 的所有 Citrix ADC 管理访问都启用了双重身份验证,并可用于此。

案例 2:外部身份验证服务器(如 LDAP、RADIUS、Active Directory 和 TACACS)支持双因素身份验证

您可以在以下外部身份验证服务器上为一级和二级用户身份验证配置双重身份验证。

  • RADIUS
  • LDAP
  • Active Directory
  • TACACS

案例 3:为系统用户启用外部身份验证并禁用本地身份验证

通过启用外部身份验证选项并禁用系统用户的本地身份验证来开始身份验证过程。

本地化后的图片

使用命令行界面完成以下步骤:

  1. 为 LDAP 策略添加身份验证操作
  2. 为 LDAP 策略添加身份验证策略
  3. 为 RADIUS 策略添加身份验证操作
  4. 为 RADIUS 策略添加身份验证策略
  5. 添加身份验证登录架构
  6. 将身份验证策略标签添加并绑定到 RADIUS 服务器
  7. 绑定 LDAP 策略的系统全局身份验证
  8. 在系统参数中禁用本地身份验证

为 LDAP 服务器添加身份验证操作(第一级身份验证)

在命令提示窗口中,键入:

add authentication ldapaction <ldap action name> -serverip <IP> -ldapbase <> -ldapbinddn <binddn name> -ldapbinddnpassword <password>-ldaploginname <loginname> -groupattrname <grp attribute name> -subAttributename <string>-ssoNameAttribute <string>

示例:

add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn name -ldapbindDNpassword password -ldapLoginName name -groupAttrName name -subAttributeName name -ssoNameAttribute name

为 LDAP 服务器添加身份验证策略(第一级身份验证)

在命令提示窗口中,键入: add authentication policy <ldap policy name> -rule true -action <ldap action name>

示例: add authentication policy pol1 -rule true -action ldapact1

为 RADIUS 服务器添加身份验证操作(二级身份验证)

在命令提示窗口中,键入:

add authentication radiusaction <rad action name> -serverip <rad server ip> -radkey <key> -radVendorID <ID >-radattributetype <rad attribute type>

示例:

add authentication radiusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2

为 RADIUS 服务器添加身份验证策略(二级身份验证)

在命令提示窗口中,键入:

add authentication policy <radius policy name> -rule true -action <rad action name>

示例:

add authentication policy radpol11 -rule true -action radact11

添加身份验证登录架构

您可以使用系统用户的“SingleAuth.xml”登录架构为 Citrix ADC 设备提供第二个密码。在命令提示窗口中,键入:

add authentication loginSchema <login schema name> -authenticationSchema LoginSchema/SingleAuth.xml

示例

add authentication loginSchema radschema -authenticationSchema LoginSchema/SingleAuth.xml

将身份验证策略标签添加并绑定到 RADIUS 服务器

在命令提示窗口中,键入:

add authentication policylabel <labelName> [-type ( AAATM_REQ | RBA_REQ )] [-comment <string>][-loginSchema <string>]

bind authentication policylabel <labelName> -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>][-nextFactor <string>]

示例:

add authentication policylabel label1 -type RBA_REQ -loginSchema radschema

bind authentication policylabel label1 -policyName rad_pol11 -priority 1

绑定 LDAP 策略的全局身份验证系统

在命令提示窗口中,键入:

bind system global ldappolicy -priority <priority> -nextFactor <policy label name>

示例:

bind system global radpol11 -priority 1 -nextFactor label11

在系统参数中禁用本地身份验证

在命令提示窗口中,键入:

set system parameter -localauth disabled

案例 4:已附加本地身份验证策略的系统用户启用外部身份验证

在这种情况下,允许用户使用双重身份验证和本地身份验证策略评估在用户标识的二级登录到设备。

本地化后的图片

使用命令行界面完成以下步骤。

  1. 为 LDAP 服务器添加身份验证操作
  2. 为 LDAP 策略添加身份验证策略
  3. 添加本地身份验证策略
  4. 添加身份验证策略标签
  5. 将 LDAP 策略绑定为系统全局
  6. 在系统参数中禁用本地身份验证

为 LDAP 服务器添加身份验证操作(第一级身份验证)

在命令提示窗口中,键入:

add authentication ldapaction <ldap action name> -serverip <IP> -ldapbase <> -ldapbinddn <binddn name> -ldapbinddnpassword <password>-ldaploginname <loginname> -groupattrname <grp attribute name> -subAttributename <string>-ssoNameAttribute <string>

示例:

add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn name -ldapbindDNpassword password -ldapLoginName name -groupAttrName name -subAttributeName name -ssoNameAttribute name –ssoNameAttribute name

为 LDAP 服务器添加身份验证策略(第一级身份验证)

在命令提示窗口中,键入:

add authentication policy <ldap policy name> -rule true -action <ldap action name>

示例:

add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn name -ldapbindDNpassword password -ldapLoginName name -groupAttrName name -subAttributeName name -ssoNameAttribute name

为系统用户添加本地身份验证策略(二级身份验证)

在命令提示窗口中,键入:

add authentication radiusaction <rad action name> -serverip <rad server ip> -radkey <key> -radVendorID <ID >-radattributetype <rad attribute type

示例:

add authentication radiusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2

添加和绑定身份验证策略标签

在命令提示窗口中,键入:

add authentication policylabel <labelName> [-type ( AAATM_REQ | RBA_REQ )] [-comment <string>][-loginSchema <string>] bind authentication policylabel <labelName> -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>][-nextFactor <string>]

示例:

add authentication policylabel label1 -type RBA_REQ -loginSchema radschema bind authentication policylabel label1 -policyName rad_pol11 -priority 1

在系统参数中禁用本地身份验证

在命令提示窗口中,键入:

set system parameter -localauth disabled

案例 5:为系统用户禁用外部身份验证并启用本地身份验证

如果用户禁用了“externalAuth”,则表示该用户不存在于身份验证服务器上。即使外部身份验证服务器上存在相同用户名的用户名,用户也不会通过外部身份验证服务器进行身份验证。用户将在本地进行身份验证。

本地化后的图片

启用系统用户密码并禁用外部身份验证

在命令提示窗口中,键入以下内容:

add system user <name> <password> -externalAuth DISABLED

示例:

add system user user1 password1 –externalAuth DISABLED

案例 6:为系统用户启用外部身份验证和启用本地身份验证

将设备配置为使用本地密码对系统用户进行身份验证。如果此身份验证失败,则会在两个级别上使用外部身份验证服务器上的外部身份验证密码对用户进行身份验证。

本地化后的图片

要使用命令行界面进行配置,请按照以下步骤操作:

  1. 为 LDAP 服务器添加身份验证操作
  2. 为 LDAP 策略添加身份验证策略
  3. 为 RADIUS 策略添加身份验证操作
  4. 为 RADIUS 策略添加身份验证策略
  5. 添加身份验证登录架构
  6. 添加身份验证策略标签
  7. 绑定登录架构的身份验证策略标签
  8. 为 RADIUS 策略绑定全局身份验证系统
  9. 为 LDAP 策略绑定全局身份验证系统

为 LDAP 服务器添加身份验证操作

在命令提示窗口中,键入:

add authentication ldapaction <ldap action name> -serverip <IP> -ldapbase <> -ldapbinddn <binddn name> -ldapbinddnpassword <password>-ldaploginname <loginname> -groupattrname <grp attribute name> -subAttributename <>-ssoNameAttribute <>

示例:

add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn name -ldapbindDNpassword password -ldapLoginName name -groupAttrName name -subAttributeName name -ssoNameAttribute name

为 LDAP 策略添加身份验证策略

在命令提示窗口中,键入:

add authentication policy <policy name> --rule true -action <ldap action name>

示例:

add authentication policy pol1 -rule true -action ldapact1

为 RADIUS 服务器添加身份验证操作

在命令提示窗口中,键入:

add authentication radiusaction <rad action name> -serverip <rad server ip> -radkey <key> -radVendorID <ID >-radattributetype <rad attribute type>

示例:

add authentication radiusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2

为 RADIUS 服务器添加高级身份验证策略

在命令提示窗口中,键入:

add authentication policy <policy name> -rule true -action <rad action name>

示例:

add authentication policy radpol11 -rule true -action radact11

添加身份验证登录架构

您可以使用 SingleAuth.xml 登录架构显示登录页面,并在二级身份验证中对系统用户进行身份验证。

在命令提示窗口中,键入:

add authentication loginSchema <name> -authenticationSchema <string>

示例:

add authentication loginSchema radschema -authenticationSchema LoginSchema/SingleAuth.xml

为用户登录添加身份验证策略标签并将其绑定到 RADIUS 身份验证策略

在命令提示窗口中,键入:

add authentication policylabel <labelName> [-type ( AAATM_REQ | RBA_REQ )] [-comment <string>][-loginSchema <string>]

示例:

add authentication policylabel label1 -type RBA_REQ -loginSchema radschema bind authentication policylabel <labelName> -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>][-nextFactor <string>]

示例:

bind authentication policylabel label1 -policyName rad_pol11 -priority 1

绑定全局身份验证策略

在命令提示窗口中,键入:

bind system global [<policyName> [-priority <positive_integer>] [-nextFactor <string>] [-gotoPriorityExpression <expression>]]

示例:

bind system global radpol11 -priority 1 -nextFactor label11

案例 7:仅为选定的外部用户启用外部身份验证

按照 LDAP 操作中配置的搜索筛选器配置具有双因素身份验证的选择性外部用户,而其他系统用户则使用单因素身份验证进行身份验证。

要使用命令行界面进行配置,请按照以下步骤操作:

  1. 为 LDAP 服务器添加身份验证操作
  2. 为 LDAP 策略添加身份验证策略
  3. 为 RADIUS 策略添加身份验证操作
  4. 为 RADIUS 策略添加身份验证策略
  5. 添加身份验证登录架构
  6. 添加身份验证策略标签
  7. 绑定登录架构的身份验证策略标签
  8. 为 RADIUS 策略绑定全局身份验证系统

为 LDAP 服务器添加身份验证操作

在命令提示窗口中,键入:

add authentication ldapaction <ldap action name> -serverip <IP> -ldapbase <> -ldapbinddn <binddn name> -ldapbinddnpassword <password>-ldaploginname <loginname> -groupattrname <grp attribute name> -subAttributename <>-ssoNameAttribute <>

示例:

add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn name -ldapbindDNpassword password -ldapLoginName name -groupAttrName name -subAttributeName name -ssoNameAttribute name

为 LDAP 策略添加身份验证策略

在命令提示窗口中,键入:

add authentication policy <policy name> --rule true -action <ldap action name>

示例:

add authentication policy pol1 -rule true -action ldapact1

为 RADIUS 服务器添加身份验证操作

在命令提示窗口中,键入:

add authentication radiusaction <rad action name> -serverip <rad server ip> -radkey <key> -radVendorID <ID >-radattributetype <rad attribute type>

示例:

add authentication radiusaction radact1 -serverip 1.1.1.1 -radkey 123 -radVendorID 1234 -radAttributeType 2

为 RADIUS 服务器添加高级身份验证策略

在命令提示窗口中,键入:

add authentication policy <policy name> -rule true -action <rad action name>

示例:

add authentication policy radpol11 -rule true -action radact11

添加身份验证登录架构

您可以使用 SingleAuth.xml 登录架构为设备提供登录页面,以便在第二级身份验证时对系统用户进行身份验证。

在命令提示窗口中,键入:

add authentication loginSchema <name> -authenticationSchema <string>

示例:

add authentication loginSchema radschema -authenticationSchema LoginSchema/SingleAuth.xml

为用户登录添加身份验证策略标签并将其绑定到 RADIUS 身份验证策略

在命令提示窗口中,键入:

add authentication policylabel <labelName> [-type ( AAATM_REQ | RBA_REQ )] [-comment <string>][-loginSchema <string>]

示例:

add authentication policylabel label1 -type RBA_REQ -loginSchema radschema bind authentication policylabel <labelName> -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>][-nextFactor <string>]

示例:

bind authentication policylabel label1 -policyName rad_pol11 -priority

绑定全局身份验证策略

在命令提示窗口中,键入:

bind system global [<policyName> [-priority <positive_integer>] [-nextFactor <string>] [-gotoPriorityExpression <expression>]]

示例:

bind system global radpol11 -priority 1 -nextFactor label11

要使用搜索筛选器为组用户配置无双重身份验证,请执行以下操作:

  1. 为 LDAP 服务器添加身份验证操作
  2. 为 LDAP 服务器添加身份验证策略
  3. 绑定 LDAP 服务器的全局身份验证系统

为 LDAP 服务器添加身份验证操作

在命令提示窗口中,键入:

add authentication ldapaction <ldap action name> -serverip <IP> -ldapbase <> -ldapbinddn <binddn name> -ldapbinddnpassword <password>-ldaploginname <loginname> -groupattrname <grp attribute name> -subAttributename <>-searchFilter<>

示例:

add authentication ldapaction ldapact1 -serverip 1.1.1.1 -ldapbase base -ldapbindDn name -ldapbindDNpassword password -ldapLoginName name -groupAttrName name -subAttributeName name - searchFilter "memberOf=CN=grp4,CN=Users,DC=aaatm-test,DC=com"

为 LDAP 服务器添加身份验证策略

在命令提示窗口中,键入:

add authentication policy <policy name> --rule true -action <ldap action name>

示例:

add authentication policy pol1 -rule true -action ldapact1

绑定 LDAP 策略的全局身份验证系统

在命令提示窗口中,键入:

bind system global ldappolicy -priority <priority> -nextFactor <policy label name>

示例:

bind system global radpol11 -priority 1 -nextFactor label11

显示双因素身份验证的自定义提示消息

当您使用 SingleAuth.xml 文件(位于 /flash/nsconfig/loginschema/LoginSchema)配置双因素密码字段时

下面是 SingleAuth.xml 文件的片段,其中“SecondPassword:”是第二个密码字段名称,将提示用户输入第二个密码。

<?xml version="1.0" encoding="UTF-8"?>
<AuthenticateResponse xmlns="http://citrix.com/authentication/response/1">
<Status>success</Status>
<Result>more-info</Result>
<StateContext/>
<AuthenticationRequirements>
<PostBack>/nf/auth/doAuthentication.do</PostBack>
<CancelPostBack>/nf/auth/doLogoff.do</CancelPostBack>
<CancelButtonText>Cancel</CancelButtonText>
<Requirements>
<Requirement><Credential><ID>login</ID><SaveID>ExplicitForms-Username</SaveID><Type>username</Type></Credential><Label><Text>singleauth_user_name</Text><Type>nsg-login-label</Type></Label><Input><AssistiveText>singleauth_please_supply_either_domain\username_or_user@fully.qualified.domain</AssistiveText><Text><Secret>false</Secret><ReadOnly>false</ReadOnly><InitialValue/><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><ID>passwd</ID><SaveID>ExplicitForms-Password</SaveID><Type>password</Type></Credential><Label><Text>SecondPassword:</Text><Type>nsg-login-label</Type></Label><Input><Text><Secret>true</Secret><ReadOnly>false</ReadOnly><InitialValue/><Constraint>.+</Constraint></Text></Input></Requirement>
<Requirement><Credential><Type>none</Type></Credential><Label><Text>singleauth_first_factor</Text><Type>nsg_confirmation</Type></Label><Input/></Requirement>
<Requirement><Credential><ID>saveCredentials</ID><Type>savecredentials</Type></Credential><Label><Text>singleauth_remember_my_password</Text><Type>nsg-login-label</Type></Label><Input><CheckBox><InitialValue>false</InitialValue></CheckBox></Input></Requirement>
<Requirement><Credential><ID>loginBtn</ID><Type>none</Type></Credential><Label><Type>none</Type></Label><Input><Button>singleauth_log_on</Button></Input></Requirement>
</Requirements>
</AuthenticationRequirements>
</AuthenticateResponse>

使用 Citrix ADC GUI 配置双因素身份验证

  1. 登录到 Citrix ADC 设备。
  2. 转到系统 > 身份验证 > 高级策略 > 策略
  3. 单击“添加”以创建第一级身份验证策略。
  4. 在“创建身份验证策略”页面中,设置以下参数。
    1. 名称。策略名称
    2. 操作类型。选择操作类型为 LDAP,Active Directory,RADIUS,TACACS 等。
    3. 操作。要与策略关联的身份验证操作(配置文件)。您可以选择现有身份验证操作,或单击加号并创建适当类型的新操作。
    4. 表达式。提供高级策略表达式。
  5. 单击创建,然后单击关闭
    1. 表达式。提供高级策略表达式。
  6. 单击创建
  7. 单击“添加”以创建二级身份验证策略。
  8. 在“创建身份验证策略”页面中,设置以下参数
    1. 名称。策略名称
    2. 操作类型。选择操作类型为 LDAP,Active Directory,RADIUS,TACACS 等。
    3. 操作。要与策略关联的身份验证操作(配置文件)。您可以选择现有身份验证操作,或单击 + 图标创建适当类型的操作。
    4. 表达式。提供高级策略表达式
  9. 单击创建,然后单击关闭
    1. 表达式。提供高级策略表达式。
  10. 单击创建
  11. 身份验证策略页中,单击全局绑定
  12. 在“创建全局身份验证策略绑定”页面中,选择第一级身份验证策略,然后单击“添加绑定”。
  13. 在“策略绑定”页面中,选择身份验证策略并设置以下策略绑定参数。
    1. 下一个因素。选择二级身份验证策略标签。
  14. 单击绑定关闭

    本地化后的图片

  15. 单击完成
  16. 登录到 Citrix ADC 设备进行二级身份验证。用户现在可以提供第二个密码。只有当两个密码都正确时,用户才能访问 Citrix ADC 设备。

有关配置登录架构的详细信息,请参阅本地 OTP 支持功能。