Citrix ADC

使用 aaad.debug 模块解决 Citrix ADC 和 Citrix Gateway 中的身份验证问题

本节介绍如何使用 aaad.debug 模块解决 Citrix ADC 和 Citrix Gateway 中的身份验证问题。

后台

Citrix Gateway 中的身份验证由身份验证、授权和审核 (AAA) 守护进程处理。可以通过查看 aaad.debug 模块的输出来监控 AAA 守护进程的原始身份验证事件,并作为一个有值的故障排除工具。aaad.debug 是一个管道,而不是平面文件,不显示结果或记录它们。因此,cat 命令可用于查看 aaad.debug 的输出。使用 nsaaad.debug 来解决身份验证问题的过程通常称为“调试 aaad”。

使用 aaad.debug 模块调试过程

此过程对于解决身份验证问题非常有用,例如:

  • 一般身份验证错误
  • 用户名/密码失败
  • 身份验证策略配置错误
  • 群提取差异

注意: 此过程适用于 Citrix Gateway 和 Citrix ADC 设备。

身份验证问题疑难解答

若要使用 aaad.debug 模块进行身份验证疑难解答,请完成以下过程:

  1. 使用安全外壳 (SSH) 客户端(如 PuTTY)连接到 Citrix Gateway 命令行界面。

  2. 运行以下命令以切换到 shell 提示符:shell
  3. 运行以下命令以更改为 /tmp 目录:cd /tmp
  4. 运行以下命令启动调试过程:cat aaad.debug
  5. 执行需要故障排除(例如用户登录尝试)的身份验证过程。
  6. 监控 cat aaad.debug 命令的输出以解释身份验证过程并进行故障排除。
  7. 按 Ctrl+Z 停止调试过程。
  8. 运行以下命令以将 aaad.debug 的输出记录到文件 cat aaad.debug | tee /var/tmp/<debuglogname> , 其中 /var/tmp 是必需的目录路径,<debuglogname.log> 是必需的日志名称。

以下部分提供了如何使用 aaad.debug 模块对身份验证错误进行故障排除和解释的示例。

密码不正确

在以下示例中,用户输入的 RADIUS 密码不正确。

process_radius Got RADIUS event
process_radius Received BAD_ACCESS_REJECT for: <username>
process_radius Sending reject.
send_reject_with_code Rejecting with error code 4001

用户名无效

在以下示例中,用户输入了不正确的 LDAP 用户名。

/home/build/rs_121/usr.src/netscaler/aaad/ldap_drv.c[450]: receive_ldap_user_search_event 1-140: Admin authentication(Bind) succeeded, now attempting to search the user testusernew

/home/build/rs_121/usr.src/netscaler/aaad/ldap_drv.c[453]: receive_ldap_user_search_event 1-140: Number of entires in LDAP server response = 0

/home/build/rs_121/usr.src/netscaler/aaad/ldap_drv.c[459]: receive_ldap_user_search_event 1-140: ldap_first_entry returned null, user testusernew not found

/home/build/rs_121/usr.src/netscaler/aaad/naaad.c[4781]: send_reject_with_code 1-140: Not trying cascade again 4009

/home/build/rs_121/usr.src/netscaler/aaad/naaad.c[4783]: send_reject_with_code 1-140: sending reject to kernel for : testusernew

/home/build/rs_121/usr.src/netscaler/aaad/naaad.c[4801]: send_reject_with_code 1-140: Rejecting with error code 4009

确定群提取结果

在以下示例中,可以确定组提取结果。AAA 组访问的许多问题涉及用户未在 Citrix Gateway 设备中为其分配的组选取正确的会话策略。这种情况的一些常见原因包括设备中的 AD 或 Radius 组名称拼写错误,以及用户不是 AD 或 Radius 服务器中安全组的成员。

/usr/home/build/rs_80_48/usr.src/usr.bin/nsaaad/../../netscaler/aaad/ldap_drv.c[40]:
start_ldap_auth attempting to auth scottli @ 10.12.33.216

/usr/home/build/rs_80_48/usr.src/usr.bin/nsaaad/../../netscaler/aaad/ldap_drv.c[291]:

/usr/home/build/rs_80_48/usr.src/usr.bin/nsaaad/../../netscaler/aaad/ldap_drv.c[551]: recieve_ldap_user_search_event built group string for scottli of:Domain Admins

aad.debug 模块错误代码

下表列出了各种 aaad.debug 模块错误代码、错误原因和解决方案。

aad.debug 模块错误代码 错误消息 错误原因 分辨率
4001 凭据/密码不正确。重试。 提供了错误的凭据 输入正确的凭据
4002 不允许 这是一个捕捉所有错误。当 ldapbind 操作由于不正确的用户凭据以外的原因失败时发生。 确保允许绑定操作
4003 无法连接到服务器。几分钟后尝试再次连接。 服务器超时 增加 Citrix ADC 上的 LDAP/Radius 服务器超时值(身份验证 > LDAP/Radius > 服务器 > 超时值)。默认超时值为 3 秒。
4004 系统错误 Citrix ADC/Citrix Gateway 内部错误或设备库中的运行时错误 检查系统错误的原因并重新发送相同的
4005 套接字错误 与身份验证服务器通话时出现套接字错误 确保 LDAP/RADIUS 服务器或任何其他身份验证服务器可以侦听 Citrix ADC 上配置的身份验证操作中提到的端口。例如,常见的错误情况可能是 Citrix ADC 上的 ldapprofile 配置为使用端口 636 /SSL,但是在 AD 上不打开相同的端口。
4006 用户名不正确 传递给 nsaaad 的坏(格式)用户名,如空用户名 输入正确的用户名
4007 密码不正确 传递给 nsaaad 的错误(格式)密码 输入正确的密码
4008 密码不一致 密码不匹配 输入正确的密码
4009 找不到用户 无此类用户 使用 AD 中存在的有效用户登录
4010 您当前没有登录权限 限制登录时间 在限制时间以外登录
4011 您的 AD 帐户已被禁用 帐户已禁用 启用您的 AD 帐户
4012 您的密码已过期 密码已过期 重置您的密码
4013 您没有权限登录 没有拨入权限(特定于 RADIUS)。如果用户未被授权在服务器上进行身份验证,则通常会发生这种情况。 需要更改网络访问权限设置
4014 无法更改您的密码 更改密码时出错。这可能是由于许多原因发生的。其中一个原因可能是尝试使用 Citrix ADC 上 ldapprofile 中提供的非 ssl 端口更改密码。 确保安全端口和 sec 类型用于更改密码
4015 您的帐户已暂时锁定 用户 AD 帐户已锁定 解锁您的 AD 帐户
4016 无法更新您的密码。密码必须满足域的长度、复杂性和历史记录要求。 更改密码时未满足用户密码要求 更改密码时满足所需要的要求
4017 NAC 进程 Microsoft Intune 特定的。Citrix Gateway 无法验证设备,这可能是由于 API 故障或连接故障。 确保 Citrix Gateway 可以访问 Microsoft Intune 托管设备
4018 NAC 不遵守规定 Microsoft Intune 返回一个状态,指出此设备不兼容的设备 确保 Microsoft Intune 托管设备符合 Citrix Gateway
4019 NAC 非管理 Microsoft Intune 返回一个状态,说这不是托管设备 确保 Microsoft Intune 特定配置已到位
4020 不支持身份验证 如果配置错误,则会出现此错误。例如,Citrix ADC 不支持身份验证类型,或者如果 Citrix ADC 设备上的身份验证配置文件配置不正确,或者尝试执行核算操作 (radius) 进行身份验证。 选中 Citrix ADC 上身份验证服务器的“身份验证”复选框(如果其未选中)。在 Citrix ADC 上使用适当的身份验证操作。
4021 用户帐户已过期 用户帐户已过期 更新您的用户帐户
4022 用户帐户被 Citrix ADC 锁定 用户帐户被 Citrix ADC 锁定 使用解锁 aaa 用户 <> 命令解锁帐户
4023 达到最大 OTP 设备限制 已达到接收 OTP 的设备限制 请尝试取消注册不需要的 OTP 设备或继续使用已注册的设备

使用 aaad.debug 模块解决 Citrix ADC 和 Citrix Gateway 中的身份验证问题