配置外部用户身份验证

Citrix ADC 设备中的身份验证可以是本地的,也可以是外部的。为了对外部用户进行身份验证,设备使用外部身份验证服务器,如 LDAP、RADIUS 和 TACACS+。要对外部用户进行身份验证并授予用户对设备的访问权限,必须使用身份验证策略。Citrix ADC 系统身份验证使用高级身份验证策略。高级身份验证策略使用 Citrix ADC 高级策略表达式。高级身份验证策略用于分区的 Citrix ADC 设备中的系统用户管理。

注意

如果您的设备具有经典策略及其表达式,则必须停止使用该策略并将经典策略使用情况迁移到高级策略基础结构。

创建身份验证策略后,必须将其绑定到系统全局实体。您可以通过将单个身份验证策略绑定到系统全局实体来配置外部身份验证服务器(例如 TACACS)。或者,您可以通过将多个策略绑定到系统全局实体来配置身份验证服务器级联。

注意

当外部用户登录设备时,系统会在 ns.log 文件中生成错误消息“用户不存在”。发生这种情况的原因是系统运行 systemuser_systemcmdpolicy_binding 命令来初始化用户的 GUI。

配置 LDAP 身份验证

您可以将 Citrix ADC 设备配置为对一个或多个 LDAP 服务器的用户访问进行身份验证。LDAP 授权要求 Active Directory、LDAP 服务器和设备上的组名称相同。字符和大小写也必须相同。

默认情况下,LDAP 身份验证是通过使用 SSL/TLS 协议保护的。有两种类型的安全 LDAP 连接。在第一种类型中,LDAP 服务器接受与用于接受清除 LDAP 连接的端口分开的 SSL/TLS 连接。用户建立 SSL/TLS 连接后,可以通过连接发送 LDAP 流量。第二种类型允许不安全和安全的 LDAP 连接,并由服务器上的单个端口处理。在这种情况下,要创建一个安全的连接,客户端首先建立一个清晰的 LDAP 连接。然后通过连接将 LDAP 命令 StartTLSS 发送到服务器。如果 LDAP 服务器支持 StartTLSS,则通过使用 TLS 将连接转换为安全的 LDAP 连接。

LDAP 连接的端口号为:

  • 389 用于不安全的 LDAP 连接
  • 636 用于安全的 LDAP 连接
  • 3268 用于 Microsoft 不安全的 LDAP 连接
  • 3269 用于 Microsoft 安全的 LDAP 连接

使用 StartTLSS 命令的 LDAP 连接使用端口号 389。如果设备上配置了端口号 389 或 3268,则会尝试使用 StartTLSS 进行连接。如果使用任何其他端口号,则连接尝试使用 SSL/TLS。如果无法使用 StartTLSS 或 SSL/TLS,则连接失败。

配置 LDAP 服务器时,字母字符的大小写必须与服务器和设备上的大小写匹配。如果指定了 LDAP 服务器的根目录,则还会搜索所有子目录以查找用户属性。在大型目录中,这可能会影响性能。因此,Citrix 建议您使用特定组织单位 (OU)。

下表列出了基本可分辨名称 (DN) 的示例。

LDAP 服务器 基本 DN
Microsoft Active Directory DC=citrix, DC=local
Novell eDirectory dc=citrix, dc=net
IBM Directory Server cn= 用户
Lotus Domino OU=City, O=Citrix, C=US
Sun ONE 目录(前身为 iPlanet) ou=People, dc=citrix, dc=com

下表列出了绑定可分辨名称 (DN) 的示例。

LDAP 服务器 绑定 DN
Microsoft Active Directory CN=Administrator, CN=Users, DC=citrix, DC=local
Novell eDirectory cn=admin, dc=citrix, dc=net
IBM Directory Server LDAP_dn
Lotus Domino CN=Notes Administrator, O=Citrix, C=US
Sun ONE 目录(前身为 iPlanet) uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
LDAP 服务器 绑定 DN
Microsoft Active Directory CN=Administrator, CN=Users, DC=citrix, DC=local
Novell eDirectory cn=admin, dc=citrix, dc=net
IBM Directory Server LDAP_dn
Lotus Domino CN=Notes Administrator, O=Citrix, C=US
Sun ONE 目录(前身为 iPlanet) uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot

使用命令行界面配置 LDAP 身份验证

配置 LDAP 经典策略

在命令提示窗口中执行以下操作:

步骤 1: 创建 LDAP 操作。

add authentication ldapAction <name> {-serverIP <ip_addr|ipv6_addr|*> | {-serverName <string>}} >] [-authTimeout <positive_integer>] [-ldapBase <string>] [-ldapBindDn <string>] {-ldapBindDnPassword } [-ldapLoginName <string>] [-groupAttrName <string>] [-subAttributeName <string>]

示例

add authentication ldapAction ldap_act -serverIP <IP> -authTimeout 30 -ldapBase "CN=xxxxx,DC=xxxx,DC=xxx" -ldapBindDn "CN=xxxxx,CN=xxxxx,DC=xxxx,DC=xxx" -ldapBindDnPassword abcd -ldapLoginName sAMAccountName -groupattrName memberOf -subAttributeName CN

步骤 2:创建 LDAP 策略。

add authentication ldapPolicy <name> <rule> [<reqAction>]

示例

添加身份验证最低限度应用策略经典的应用程序 _ 真正的应用程序。

步骤 3:创建 LDAP 策略 创建 LDAP 高级身份验证策略:

add authentication ldapPolicy <name> <rule> [<reqAction>]

示例

add authentication policy ldap_pol_advance -rule true -action ldap_act

步骤 4:将 LDAP 策略绑定到将评估策略的以下绑定点。

System Global: bind system global <policyName> [-priority <positive_integer]

VPN Global: bind vpn global <policyName> [-priority <positive_integer>]

Authentication Server: bind authentication vserver <name> [-policy <string> [-priority <positive_integer>]

VPN Server: bind vpn vserver <name> [-policy <string> [-priority <positive_integer>]

配置 LDAP 经典策略

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

add authentication Policy <name> -rule <expression> -action <string>

示例

add authentication policy ldap_pol_classic -rule true -action ldap_act

使用 GUI 配置 LDAP 身份验证

导航到“系统”>“身份验证”>“LDAP”,然后创建 LDAP 身份验证策略。

确定 LDAP 目录中的属性

如果您需要确定 LDAP 目录属性的帮助,您可以使用 Softerra 免费的 LDAP 浏览器轻松查找它们。

您可以从 Softerra LDAP 管理员网站 http://www.ldapbrowser.com 上下载 LDAP 浏览器。安装浏览器后,设置以下属性:

  • LDAP 服务器的主机名或 IP 地址。
  • LDAP 服务器的端口。默认值为 389。
  • 基本 DN 字段可以留空。
  • LDAP 浏览器提供的信息可帮助您确定“身份验证”选项卡所需的基本 DN。
  • 匿名绑定检查确定 LDAP 服务器是否需要浏览器连接到它的用户凭据。如果 LDAP 服务器需要凭据,请将复选框保持清除状态。

完成设置后,LDAP 浏览器将在左侧窗格中显示配置文件名称并连接到 LDAP 服务器。

配置 RADIUS 身份验证

您可以将 Citrix ADC 设备配置为对一个或多个 RADIUS 服务器的用户访问进行身份验证。如果您使用的是 RSA SecurID、SafeWord 或 Gemalto Protiva 产品,请使用 RADIUS 服务器。

您的配置可能需要使用网络访问服务器 IP 地址 (NAS IP) 或网络访问服务器标识符 (NAS ID)。将设备配置为使用 RADIUS 身份验证服务器时,请遵循以下准则:

  • 如果启用 NAS IP 的使用,设备将其配置的 IP 地址发送到 RADIUS 服务器,而不是用于建立 RADIUS 连接的源 IP 地址。
  • 如果配置 NAS ID,设备会将标识符发送到 RADIUS 服务器。如果未配置 NAS ID,设备将其主机名发送到 RADIUS 服务器。
  • 启用 NAS IP 后,设备会忽略使用 NAS IP 与 RADIUS 服务器通信所配置的任何 NAS ID。

使用 GUI 配置 RADIUS 身份验证

导航到“系统”>“身份验证”>“Radius”,然后创建 RADIUS 身份验证策略。

选择 RADIUS 身份验证协议

Citrix ADC 设备支持 RADIUS 实现,这些实现配置为使用多种协议中的任何一种进行用户身份验证,包括:

  • 密码身份验证协议
  • 质疑握手身份验证协议 (CHAP)
  • Microsoft 质询握手身份验证协议(MS-CHAP 版本 1 和版本 2)

如果设备的部署配置为使用 RADIUS 身份验证,并且 RADIUS 服务器配置为使用密码身份验证协议,则可以通过向 RADIUS 服务器分配强共享密钥来加强用户身份验证。强 RADIUS 共享秘密由大写和小写字母、数字和标点符号的随机序列组成,并且长度至少为 22 个字符。如果可能,请使用随机字符生成程序来确定 RADIUS 共享机密。

要进一步保护 RADIUS 流量,请为每个设备或虚拟服务器分配不同的共享密钥。在 RADIUS 服务器上定义客户端时,还可以为每个客户端分配单独的共享机密。如果执行此操作,则必须单独配置使用 RADIUS 身份验证的每个策略。

创建 RADIUS 策略时,将在设备上配置共享机密。

配置 IP 地址提取

您可以将设备配置为从 RADIUS 服务器中提取 IP 地址。当用户使用 RADIUS 服务器进行身份验证时,服务器将返回分配给该用户的框架 IP 地址。以下是 IP 地址提取的属性:

  • 允许远程 RADIUS 服务器从内部网络为登录到设备的用户提供 IP 地址。
  • 允许使用 ipaddress 类型对任何 RADIUS 属性进行配置,包括供应商编码的属性。

配置 RADIUS 服务器进行 IP 地址提取时,您可以配置供应商标识符和属性类型。

供应商标识符使 RADIUS 服务器能够从 RADIUS 服务器上配置的 IP 地址池中为客户端分配 IP 地址。供应商 ID 和属性用于建立 RADIUS 客户端和 RADIUS 服务器之间的关联。供应商 ID 是 RADIUS 响应中提供内部网络 IP 地址的属性。值为零表示属性未经供应商编码。属性类型是 RADIUS 响应中的远程 IP 地址属性。最小值为 1,最大值为 255。

一个常见的配置是提取 RADIUS 属性框架 IP 地址。供应商 ID 设置为零或未指定。属性类型设置为 8。

使用 GUI 配置 IP 地址提取

  1. 导航到“系统”>“身份验证”>“Radius”,然后选择策略。
  2. 修改服务器参数并在组供应商标识符组属性类型字段中设置相关值。

配置 TACACS+ 身份验证

您可以配置 TACACS+ 服务器进行身份验证。与 RADIUS 身份验证类似,TACACS+ 使用私有密钥、IP 地址和端口号。默认端口号为 49。要将设备配置为使用 TACACS+ 服务器,请提供服务器 IP 地址和 TACACS+ 密钥。只有当使用的服务器端口号不是默认端口号 49 时,才需要指定端口。

使用 GUI 配置 TACACS+ 身份验证

导航到“系统”>“身份验证”>“TACACS”,然后创建 TACACS 身份验证策略。

在设备上配置 TACACS+ 服务器设置后,将策略绑定到系统全局实体。

将身份验证策略绑定到系统全局实体

身份验证策略为“配置”时,将策略绑定到系统全局实体。

使用命令行界面将传统身份验证策略绑定到系统全局

在命令行提示符处,执行以下操作:

bind system global <policyName> [-priority <positive_integer>]

示例

bind system global ldap_pol_classic -priority 10

使用命令行界面将高级身份验证策略绑定到系统全局

在命令行提示符处,执行以下操作:

bind system global <policyName> [-priority <positive_integer>]

示例

bind system global ldap_pol_advanced -priority 10

使用 GUI 将身份验证策略绑定到系统全局

  1. 导航到“系统”>“身份验证”,然后选择身份验证类型。
  2. 在“策略”选项卡上,单击“全局绑定”并绑定身份验证策略。