Citrix ADC

使用客户端证书进行身份验证

包含敏感内容的网站(例如网上银行网站或包含员工个人信息的网站)有时需要客户证书进行身份验证。若要配置身份验证、授权和审核以根据客户端证书属性对用户进行身份验证,请首先在流量管理虚拟服务器上启用客户端身份验证,然后将根证书绑定到身份验证虚拟服务器。然后,您实现两个选项之一。您可以将身份验证虚拟服务器上的默认身份验证类型配置为 CERT,也可以创建证书操作,该操作定义 Citrix ADC 必须执行哪些操作来根据客户端证书对用户进行身份验证。无论哪种情况,您的身份验证服务器都必须支持 CRL。您将 ADC 配置为从主题 CN 字段或客户端证书中的其他指定字段中提取用户名。

当用户尝试登录到未配置身份验证策略的身份验证虚拟服务器,并且未配置全局级联时,将从证书的指定字段中提取用户名信息。如果提取所需字段,则身份验证成功。如果用户在 SSL 握手期间未提供有效证书,或者用户名提取失败,则身份验证将失败。在验证客户端证书后,ADC 会向用户显示登录页面。

以下过程假定您已经创建了正常运行的身份验证、授权和审核配置,因此它们仅解释了如何使用客户端证书启用身份验证。这些过程还假定您已获得根证书和客户端证书,并将它们放置在 /nsconfig/ssl 目录中的 ADC 上。

使用命令行界面配置身份验证、授权和审核客户端证书参数

在命令提示符处,按所示顺序键入以下命令以配置证书并验证配置:

  • add ssl certKey <certkeyName> -cert <certFile> -key <keyFile> -password -inform <inform> -expiryMonitor <expiryMonitor> -notificationPeriod <notificationPeriod>

  • bind ssl certKey <certkeyName> -vServer <certkeyName> -CA -crlCheck Mandatory

  • show ssl certKey [<certkeyName>]

  • set aaa parameter -defaultAuthType CERT

  • show aaa parameter

  • set aaa certParams -userNameField "Subject:CN"

  • show aaa certParams

使用配置实用程序配置身份验证、授权和审核客户端证书参数

  1. 导航到 安全性 > AAA-应用程序流量 > 虚拟服务器。
  2. 在详细信息窗格中,选择要配置为处理客户端证书身份验证的虚拟服务器,然后单击 编辑。
  3. 配置页上的证书下,单击向右箭头 (>) 以打开 CA Cert 密钥安装对话框。
  4. CA 证书密钥 对话框中,单击 插入。
  5. CA 证书密钥-SSL 证书 对话框中,单击 安装。
  6. 在“安 装证书对话框中,设置以下参数,其名称与 CLI 参数名称对应,如所示:
    • 证书密钥对名称*— certkeyName
    • 证书文件名称 — certFile
    • 密钥文件名称 — keyFile
    • 证书格式 — inform
    • 密码-password
    • 证书捆绑包-bundle
    • 过期时通知 - expiryMonitor
    • 通知期 — notificationPeriod
  7. 单击安装,然后单击关闭
  8. CA 证书密钥对话框的证书列表中,选择根证书。
  9. 单击保存
  10. 单击返回返回到主配置屏幕。
  11. 导航到 安全 > AAA-应用程序流量 > 策略 > 身份验证 > CERT
  12. 在详细信息窗格中,选择要配置以处理客户端证书身份验证的策略,然后单击编辑
  13. 配置身份验证 CERT 策略对话框的“服务器”下拉列表中,选择刚刚配置为处理客户端证书身份验证的虚拟服务器。
  14. 单击确定。状态栏中将显示一条消息,指出配置已成功完成。

支持通知不成功的登录尝试次数

Citrix ADC 设备现在可以记录上次成功登录后进行的不成功登录尝试次数。仅当设备上启用了“持久登录尝试”选项时,该功能才起作用。默认情况下,该选项在 Citrix ADC 设备上处于禁用状态。

Citrix ADC 管理员可以使用此信息验证在安全的外部用户帐户上是否发生了任何未经授权的尝试。

要使用此功能,请在 Citrix ADC 命令提示符处键入:

set aaa parameter [–maxloginAttempts <value> [-failedLoginTimeout <value>]] -persistentLoginAttempts (ENABLED | DISABLED)

示例:

set aaa parameter –maxLoginAttempts 4 –failedLoginTimeout 3 –persistentLoginAttempts ENABLED