身份验证、授权和审核的工作原理

身份验证、授权和审核允许任何具有适当凭据的客户端从 Internet 上的任何位置安全地连接到受保护的应用程序服务器,从而为分布式 Internet 环境提供了安全性。此功能集成了身份验证、授权和审核这三个安全功能。身份验证使 Citrix ADC 能够在本地验证或使用第三方身份验证服务器验证客户端凭据,并且仅允许获得批准的用户访问受保护的服务器。通过授权,ADC 可以验证受保护服务器上应允许每个用户访问哪些内容。审核使 ADC 能够记录每个用户在受保护的服务器上的活动。

要了解身份验证、授权和审核在分布式环境中的工作方式,请考虑使用员工在办公室、家中和旅行时访问的 Intranet 的组织。内联网上的内容是保密的,需要安全访问。任何想要访问 Intranet 的用户都必须具有有效的用户名和密码。为满足这些要求,ADC 执行以下操作:

  • 如果用户在未登录的情况下访问 Intranet,则将用户重定向到登录页面。
  • 收集用户的凭据,将其传递到身份验证服务器,并将其缓存在可通过 LDAP 访问的目录中。
  • 在将用户的请求传递到应用程序服务器之前,验证用户是否有权访问特定的 Intranet 内容。
  • 维护会话超时,用户必须再次进行身份验证才能重新获得对 Intranet 的访问权限。(您可以配置超时。)
  • 在审核日志中记录用户访问的访问,包括无效的登录尝试。

身份验证要求多个实体:客户端、 Citrix ADC 设备、外部身份验证服务器(如果使用了外部身份验证服务器)和应用程序服务器通过按正确顺序执行一系列复杂的任务来相互响应。如果您使用的是外部身份验证服务器,则此过程可分解为以下 15 个步骤。

  1. 客户端在应用程序服务器上发送 URL 的 GET 请求。
  2. Citrix ADC 设备的流量管理虚拟服务器将请求重定向到应用程序服务器。
  3. 应用程序服务器确定客户端尚未通过身份验证,因此通过 TM虚拟服务器向客户端发送 HTTP 200 OK 响应。响应包含一个隐藏的脚本,导致客户端为 /cgi/tm 发出 POST 请求。
  4. 客户端发送 /cgi/tm 的 POST 请求。
  5. Citrix ADC 设备的身份验证虚拟服务器将请求重定向到身份验证服务器。
  6. 身份验证服务器创建身份验证会话,设置和缓存由流量管理虚拟服务器的初始 URL 和域组成的 cookie,然后通过身份验证虚拟服务器发送 HTTP 302 响应,将客户端重定向到 /vpn/index.HTML。
  7. 客户端发送 /vpn/index.HTML的 GET 请求。
  8. 身份验证虚拟服务器将客户端重定向到身份验证服务器登录页面。
  9. 客户端发送登录页面的 GET 请求,输入凭据,然后将带有凭据的 POST 请求发回登录页面。
  10. 身份验证虚拟服务器将 POST 请求重定向到身份验证服务器。
  11. 如果凭据正确,身份验证服务器会告诉身份验证虚拟服务器登录客户端并将客户端重定向到初始 GET 请求中的 URL。
  12. 身份验证虚拟服务器将客户端登录并发送 HTTP 302 响应,该响应将客户端重定向到最初请求的 URL。
  13. 客户端为其初始 URL 发送 GET 请求。
  14. 流量管理虚拟服务器将 GET 请求重定向到应用程序服务器。
  15. 应用程序服务器通过流量管理虚拟服务器以初始 URL 进行响应。

如果使用本地身份验证,则过程类似,但身份验证虚拟服务器处理所有身份验证任务,而不是将连接转发到外部身份验证服务器。下图说明了身份验证过程。

图 1. 身份验证过程流量

本地化后的图片

当经过身份验证的客户端请求资源时,ADC 在向应用程序服务器发送请求之前检查与客户端帐户关联的用户和组策略,以验证客户端是否有权访问该资源。ADC 处理受保护的应用程序服务器上的所有授权。您无需对受保护的应用程序服务器进行任何特殊配置。

身份验证、授权和审核流量管理通过使用身份验证服务器特定于协议的方法来处理用户的密码更改。对于大多数协议,用户和管理员都不需要在没有身份验证、授权和审核流量管理的情况下执行任何不同的操作。即使正在使用 LDAP 身份验证服务器,并且该服务器是具有单个指定域管理服务器的 LDAP 服务器的分布式网络的一部分,密码更改通常会无缝处理。当 LDAP 服务器的经过身份验证的客户端更改其密码时,客户端会向身份验证、授权和审核流量管理发送凭据修改请求,后者将其转发到 LDAP 服务器。如果用户的 LDAP 服务器也是域管理服务器,则该服务器会适当响应并进行身份验证、授权和审核流量管理,然后执行请求的密码更改。否则,LDAP 服务器会向域管理服务器发送身份验证、授权和审核流量管理 LDAP_RATION 响应。身份验证、授权和审核流量管理遵循引用到指定域管理服务器,对该服务器进行身份验证,并在该服务器上执行密码更改。

使用 LDAP 身份验证服务器配置身份验证、授权和审核流量管理时,系统管理员必须牢记以下条件和限制:

  • 身份验证、授权和审核流量管理假定引用中的域管理服务器接受与原始服务器相同的绑定凭据。
  • 身份验证、授权和审核流量管理仅遵循 LDAP 引用进行密码更改操作。在其他情况下,身份验证、授权和审核流量管理拒绝遵循引用。
  • 身份验证、授权和审核流量管理只遵循一个级别的 LDAP 引用。如果第二个 LDAP 服务器还返回引用,则身份验证、授权和审核流量管理拒绝跟随第二个引用。

ADC 支持对所有状态和状态信息进行审核,因此您可以按时间顺序查看每个用户登录时执行的操作的详细信息。为了提供此信息,设备会在发生时将每个事件记录到设备上的指定审核日志文件或 syslog 服务器。审核需要配置设备和您使用的任何 syslog 服务器。

配置 No_Auth 策略以绕过某些流量

现在,您可以配置 No_Auth 策略,以便在流量管理虚拟服务器上启用基于 401 的身份验证时绕过某些流量身份验证。对于此类流量,您必须绑定“无身份验证”策略。

使用 CLI 配置 No_Auth 策略以绕过某些流量

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

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

示例:

add authentication policy ldap -rule ldapAct1 -action NO_AUTHN

身份验证、授权和审核的工作原理