身份验证、授权和审核应用程序流量

LDAP 身份验证策略

与其他类型的身份验证策略一样,轻型目录访问协议 (LDAP) 身份验证策略由表达式和操作组成。创建身份验证策略后,将其绑定到身份验证虚拟服务器并为其分配优先级。绑定它时,您还将其指定为主策略或辅助策略。除了标准身份验证功能外,LDAP 还可以在其他活动目录 (AD) 服务器中搜索本地不存在的用户帐户。这个功能被称为推荐支持或推荐追逐。

通常,您可以将 Citrix ADC 配置为在身份验证期间使用身份验证服务器的 IP 地址。借助 LDAP 身份验证服务器,您还可以将 ADC 配置为使用 LDAP 服务器的 FQDN 而不是其 IP 地址来验证用户。在身份验证服务器可能位于多个 IP 地址中的任何一个,但始终使用单个 FQDN 的环境中,使用 FQDN 可以简化更复杂的身份验证、授权和审核配置。要通过使用服务器的 FQDN 而不是其 IP 地址来配置身份验证,请遵循正常的配置过程,除非创建身份验证操作。创建操作时,您可以使用 serverName 参数而不是 serverIP 参数,并将服务器的 FQDN 替换为其 IP 地址。

在决定是否将 ADC 配置为使用 LDAP 服务器的 IP 还是 FQDN 对用户进行身份验证之前,请考虑配置身份验证、授权和审核以对 FQDN 进行身份验证而不是 IP 地址的身份验证过程会增加额外的步骤。每次 ADC 对用户进行身份验证时,都必须解析 FQDN。如果许多用户尝试同时进行身份验证,则生成的 DNS 查找可能会减慢身份验证过程。

默认情况下,LDAP 引用支持处于禁用状态,无法全局启用。必须为每个 LDAP 操作显式启用它。您还必须确保 AD 服务器接受与引用 (GC) 服务器一起使用的相同 binddn 凭据。若要启用引用支持,您可以配置 LDAP 操作以跟踪引用,并指定要遵循的引用的最大数量。

如果启用了引用支持,并且 Citrix ADC 接收到对请求的 LDAP_RATE 响应,则身份验证、授权和审核将遵循引用包含在引用中的活动目录 (AD) 服务器并在该服务器上执行更新。首先,身份验证、授权和审核在 DNS 中查找引用服务器,并连接到该服务器。如果引用策略需要 SSL/TLS,它将通过 SSL/TLS 进行连接。然后,它将绑定到新服务器与之前的服务器一起使用的 binddn 凭据,并执行生成引用的操作。此功能对用户是透明的。

LDAP 连接的端口号为:

  • 389 用于不安全的 LDAP 连接(用于纯文本 LDAP)
  • 636 用于安全的 LDAP 连接(用于 SSL LDAP)
  • 3268 对于 Microsoft 不安全 LDAP 连接(纯文本全局编录服务器)
  • 3269 用于 Microsoft 安全 LDAP 连接(对于 SSL 全局编录服务器)

下表包含 LDAP 服务器的用户属性字段示例:

LDAP 服务器 用户属性 区分大小写
Microsoft Active Directory 服务器 sAMAccountName
Novell eDirectory ou
IBM Directory Server uid
Lotus Domino CN
Sun ONE 目录(以前称为 iPlanet) uid 或 cn

此表包含基本 DN 的示例:

LDAP 服务器 基本 DN
Microsoft Active Directory 服务器 DC=citrix,DC=local
Novell eDirectory ou=users,ou=dev
IBM Directory Server cn=users
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, o=citrix
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

有关设置一般身份验证策略的更多信息,请参阅身份验证策略。有关策略规则中使用的 Citrix ADC 表达式的详细信息,请参阅策略和表达式

使用命令行界面创建 LDAP 身份验证服务器的步骤

在命令提示符下,键入以下命令:

add authentication ldapAction <name> {-serverIP} <ip_addr|ipv6_addr|> | {-serverName <string>}}

示例

add authentication ldapAction ldap_server -serverip 1.1.1.1 -serverName ldap_test

使用配置实用程序创建 LDAP 身份验证服务器的步骤

  1. 导航到系统 > 身份验证 > 基本策略 > LDAP > 服务器 > 添加

    本地化后的图片

  2. 创建身份验证 LDAP 服务器页上,配置 LDAP 服务器的参数。
  3. 单击创建

使用命令行界面启用身份验证策略

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

示例:

add authentication ldappolicy ldap-service-policy ns_true ldap_Server

使用配置实用程序创建 LDAP 身份验证策略

  1. 导航到系统 > 身份验证 > 基本策略 > LDAP > 策略 > 添加
  2. 创建身份验证 LDAP 策略页上,配置 LDAP 策略的参数。

    本地化后的图片

  3. 单击创建

注意

您可以选择通过安全选项卡配置 LDAP 服务器/策略。导航到安全 > AAA-应用程序流量 > 策略 > 身份验证 > 基本策略 > LDAP > 服务器/策略

使用命令行界面启用 LDAP 引用支持

在命令提示符下,键入以下命令:

  • set authentication ldapAction <name> -followReferrals ON
  • set authentication ldapAction <name> -maxLDAPReferrals <integer>

示例

> set authentication ldapAction ldapAction-1 -followReferrals ON
> set authentication ldapAction ldapAction-1 -maxLDAPReferrals 2

为 LDAP 用户提供基于密钥的身份验证支持

使用基于密钥的身份验证,您现在可以通过 SSH 获取存储在 LDAP 服务器中用户对象上的公钥列表。基于角色的身份验证 (RBA) 过程中的 Citrix ADC 设备必须从 LDAP 服务器中提取公有 SSH 密钥。检索到的与 SSH 兼容的公钥必须允许您通过 RBA 方法登录。

在“add authentication ldapAction”和“set authentication ldapAction”命令中引入了一个新属性“sshPublicKey”。通过使用此属性,您可以获得以下优势:

  • 可以存储检索到的公钥,并且 LDAP 操作使用此属性从 LDAP 服务器检索 SSH 密钥信息。
  • 可提取最多 24 KB 的属性名称。

注意

外部身份验证服务器(如 LDAP)仅用于检索 SSH 密钥信息。它不用于身份验证目的。

下面是通过 SSH 进行的事件流的示例:

  • SSH 守护进程向身份验证、授权和审核守护进程端口发送密码字段为空的 AAA_AUTHENTICATE 请求。
  • 如果 LDAP 配置为存储 SSH 公钥,则身份验证、授权和审核将使用“sshPublicKey”属性以及其他属性进行响应。
  • SSH 守护进程使用客户端密钥验证这些密钥。
  • SSH 守护进程在请求负载中传递用户名,身份验证、授权和审核将返回特定于此用户的密钥以及通用密钥。

要配置 sshPublicKey 属性,请在命令提示符处键入以下命令:

  • 通过添加操作,您可以在配置 ldapAction 命令时添加“sshPublicKey”属性。

    add authentication ldapAction <name> {-serverIP <ip_addr|ipv6_addr|*> | {-serverName <string>}} [-serverPort <port>] … [-Attribute1 <string>] … [-Attribute16 <string>][-sshPublicKey <string>][-authentication off]

  • 通过设置操作,您可以将“sshPublicKey”属性配置为已添加的 ldapAction 命令。

    set authentication ldapAction <name> [-sshPublicKey <string>][-authentication off]

LDAP 身份验证的名称值属性支持

您现在可以使用唯一名称和值配置 LDAP 身份验证的属性。名称在 LDAP 操作参数中进行配置,并通过查询名称获取值。通过利用此功能,Citrix ADC 设备管理员现在可以实现以下优势:

  • 通过按名称(而不仅仅是按值)记住属性,最大限度地减少管理员的工作量
  • 增强搜索以查询与名称关联的属性值
  • 提供用于提取多个属性的选项

要在 Citrix ADC 设备命令提示符处配置此功能,请键入:

add authentication ldapAction <name> [-Attribute1 <string>]

示例

add authentication ldapAction ldapAct1 attribute1 mail

支持验证端到端 LDAP 身份验证

Citrix ADC 设备现在可以通过 GUI 验证端到端 LDAP 身份验证。为了验证此功能,GUI 中引入了一个新的“测试”按钮。Citrix ADC 设备管理员可以利用此功能实现以下优势:

  • 整合完整的流程(数据包引擎 — AAA 守护进程 — 外部服务器),提供更好的分析
  • 缩短验证和故障排除与单个场景相关的问题的时间

您有两个选项可以通过使用 GUI 配置和查看 LDAP 端到端身份验证的测试结果。

从系统选项

  1. 导航到系统 > 身份验证 > 基本策略 > LDAP,单击服务器选项卡。
  2. 从列表中选择可用的 LDAP 操作
  3. 配置身份验证 LDAP 服务器页上,在连接设置”部分下有两个选项。
  4. 若要检查 LDAP 服务器连接,请单击测试 LDAP 可达性选项卡。您可以查看成功连接到 LDAP 服务器的弹出消息,其中包含 TCP 端口详细信息和有效凭据的真实性。
  5. 要查看端到端 LDAP 身份验证,请单击测试最终用户连接链接。
  6. 测试最终用户连接页上,单击测试
    • 在身份验证页面上,输入要登录的有效凭据。将显示成功屏幕。

    本地化后的图片

    • 如果身份验证失败,将显示错误屏幕。

    本地化后的图片

从身份验证选项

  1. 导航到身份验证 > 仪表板,从列表中选择可用的 LDAP 操作。
  2. 配置身份验证 LDAP 服务器页上,在连接设置”部分下有两个选项。
  3. 若要检查 LDAP 服务器连接,请单击测试 LDAP 可达性选项卡。您可以查看成功连接到 LDAP 服务器的弹出消息,其中包含 TCP 端口详细信息和有效凭据的真实性。
  4. 要查看端到端 LDAP 身份验证状态,请单击测试最终用户连接链接。
  5. 测试最终用户连接页上,单击测试

    • 在身份验证页面上,输入要登录的有效凭据。将显示成功屏幕。

    本地化后的图片

    • 如果身份验证失败,将显示错误屏幕。

    本地化后的图片

LDAP 身份验证的 14 天密码过期通知

Citrix ADC 设备现在支持对基于 LDAP 的身份验证的 14 天密码过期通知。通过使用此功能,管理员可以选择通知最终用户密码到期阈值时间(以天为单位)。14 天密码过期通知是自助服务密码重置 (SSPR) 的前兆。

注意

密码到期通知的最大值或阈值时间(以天为单位)为 255 天。

密码到期通知的优点

  • 允许用户自行重置密码,并为管理员提供灵活的方式,以便在几天内通知最终用户密码到期。
  • 消除了最终用户对密码到期日的依赖性。
  • 将通知发送到 VPN 门户页面给用户(基于天数),以便在到期前更改密码。

注意

此功能仅适用于基于 LDAP 的身份验证方案,不适用于 RADIUS 或 TACACS。

了解 14 天密码通知

Citrix ADC 设备可从 LDAP 身份验证服务器中获取两个属性(最大值寿限和最后一次设置)。

  • Max-Pwd-Age。此属性表示密码有效之前的最长时间(以 100 纳秒为单位)。该值存储为一个大整数,表示从密码到期前设置密码的时间开始的 100 纳秒间隔数。
  • Pwd-Last-Set。此属性确定上次更改帐户密码的日期和时间。

通过从 LDAP 身份验证服务器获取这两个属性,Citrix ADC 设备可确定特定用户密码到期的剩余时间。在验证服务器上验证任何用户凭据并向用户发送通知时,系统会收集此信息。

在“set aaa parameter”命令中引入了一个新的参数“pwdExpiryNotification”。通过使用此参数,管理员可以跟踪密码到期的剩余天数。Citrix ADC 设备现在可以开始向最终用户通知其密码过期。

注意

目前,此功能仅适用于具有带 LDAP 实施的 Microsoft AD 服务器的身份验证服务器。对基于 OpenLDAP 的服务器的支持稍后的目标是。

下面是用于设置 14 天密码到期通知的事件流的示例:

  1. 管理员通过使用 Citrix ADC 设备设置密码过期的时间(14 天)。
  2. 用户发送 HTTP 或 HTTPS 请求以访问后端服务器上的资源。
  3. 在提供访问权限之前,Citrix ADC 设备会使用 LDAP 身份验证服务器上配置的内容验证用户凭据。
  4. 除了对身份验证服务器的此查询外,Citrix ADC 设备还会带有获取两个属性(最大 Pwd 年龄和 Pwd 最后集)详细信息的请求。
  5. 根据密码到期的剩余时间,将显示到期通知。
  6. 然后,用户将采取相应的操作来更新密码。

使用命令行界面配置 14 天到期通知的步骤

注意

可以为 CVPN 和完整 VPN 用例配置 14 天到期通知,而不是 ICA 代理。

在命令提示符下,键入以下命令:

  • set aaa parameter –pwdExpiryNotificationDays <positive_integer>
  • show aaa parameter

示例

> set aaa parameter -pwdExpiryNotificationDays 14
Done
> show aaa parameter                          Configured AAA parameters  EnableStaticPageCaching: YES  EnableEnhancedAuthFeedback: NO  DefaultAuthType: LOCAL MaxAAAUsers:           Unlimited                                       AAAD nat ip: None            EnableSessionStickiness : NO  aaaSessionLoglevel : INFORMATIONAL               AAAD Log Level : INFORMATIONAL                 Dynamic address: OFF
图形界面模式:开启
最大 Saml 放宽规模:1024              密码到期通知天数:14

使用 GUI 配置 14 天过期通知

  1. 导航到安全 > AAA-应用程序流量 > 身份验证设置
  2. 单击更改身份验证 AAA 设置
  3. 配置 AAA 参数页上,在密码到期通知(天)字段中指定天数。

    本地化后的图片

  4. 单击确定”

    通知显示在 VPN 门户页面的右上角,如下所示。

    本地化后的图片