AAA 流量模块验证的参考设计
Citrix ADC 摘要
Citrix ADC 是一款一体式应用程序交付控制器,可通过以下方式使应用程序运行率提高五倍、降低应用程序拥有成本、优化用户体验并确保应用程序始终可用:
-
高级 L4-7 负载平衡和流量管理
-
成熟的应用程序加速,如 HTTP 压缩和缓存
-
集成的应用程序防火墙,实现应用程序安全
-
服务器卸载,显著降低成本并整合服务器
作为服务和应用程序交付方面无可争议的领导者,Citrix ADC 部署在全球数千个网络中,以优化、保护和控制所有企业和云服务的交付。Citrix ADC 直接部署在 Web 服务器和数据库服务器前,将高速负载平衡和内容切换、HTTP 压缩、内容缓存、SSL 加速、应用程序流可见性和强大的应用程序防火墙整合到一个易于使用的集成平台。通过端到端监视,将网络数据转换为可操作的商业智能,大大简化了会议 SLA。Citrix ADC 允许使用简单的声明式策略引擎来定义和管理策略,无需编程专业知识。
Citrix ADC AAA-TM 模块
交通管理
AAA 允许任何具有适当凭据的客户端从 Internet 上的任何位置安全地连接到受保护的应用程序服务器,从而为分布式 Internet 环境提供安全性。此功能包含身份验证、授权和审核这三个安全功能。通过身份验证,Citrix ADC 能够在本地或通过第三方身份验证服务器验证客户端的凭据。它只允许批准的用户访问受保护的服务器。授权使 ADC 能够验证受保护服务器上的哪些内容应允许每个用户访问。审核使 ADC 能够在受保护的服务器上保留每个用户活动的记录。
Citrix Gateway
企业现在可以通过 Citrix Gateway 跨企业、Web、SaaS 和本地虚拟应用程序和桌面实现联合和单点登录。Citrix Gateway 利用其身份验证、授权和审核 (AAA) 功能与内容切换,使用户能够通过单个网关和 URL 访问其所有授权企业应用程序。如今为其 Virtual Apps and Desktops 基础结构部署 Citrix ADC 的组织可以轻松扩展其功能,以便跨企业旧版、Web、虚拟和公共、私有和混合云应用程序进行单点登录。使用第三方单点登录和应用程序交付解决方案和网关的客户可以通过在 Citrix Gateway 上进行整合来部署满足其所有单点登录需求的单一解决方案。
身份验证机制包括 LDAP、RADIUS、SAML、Kerberos、基于证书的身份验证等。
当 Citrix Gateway 虚拟服务器置于 Unified Gateway 虚拟服务器之后,将自动使用升级之前在 Citrix Gateway 虚拟服务器上配置的任何身份验证机制。
除了向 Citrix Gateway 虚拟服务器分配不可寻址 IP 地址 (0.0.0.0) 之外,不需要其他配置步骤。
身份验证概述
要了解 AAA 在分布式环境中的工作原理,请考虑具有员工在办公室、家中和旅行时访问的 Intranet 的组织。内联网上的内容是保密的,需要安全访问。任何想要访问 Intranet 的用户都必须具有有效的用户名和密码。为了满足这些要求,ADC 执行以下操作:
-
如果用户在没有登录的情况下访问 Intranet,则将用户重定向到登录页面。
-
收集用户的凭据,将其传递到身份验证服务器,并将其缓存到可通过 LDAP 访问的目录中。
-
在将用户的请求传递到应用程序服务器之前,验证用户是否有权访问特定 Intranet 内容。
-
维护会话超时,用户必须再次进行身份验证才能重新获得对 Intranet 的访问权限。(您可以配置超时。)
-
在审核日志中记录用户访问,包括无效的登录尝试。
身份验证要求多个实体:客户端、Citrix ADC 设备、外部身份验证服务器(如果使用)以及应用程序服务器,在出现提示时以正确顺序执行一系列复杂任务时相互响应。
当经过身份验证的客户端请求资源时,ADC 在将请求发送到应用程序服务器之前,会检查与客户端帐户关联的用户和组策略,以验证客户端是否已授权访问该资源。ADC 处理受保护的应用程序服务器上的所有授权。您无需对受保护的应用程序服务器进行任何特殊配置。
密码更改
AAA-TM 使用身份验证服务器特定于协议的方法处理用户的密码更改。对于大多数协议,用户和管理员都不需要做任何与没有 AAA-TM 不同的操作。即使使用 LDAP 身份验证服务器,并且该服务器是具有单个指定域管理服务器的 LDAP 服务器分布式网络的一部分,密码更改通常也会无缝处理。当 LDAP 服务器的经过身份验证的客户端更改其密码时,客户端会向 AAA-TM 发送凭据修改请求,然后将其转发到 LDAP 服务器。如果用户的 LDAP 服务器也是域管理服务器,则该服务器会适当响应,然后 AAA-TM 执行请求的密码更改。否则,LDAP 服务器会向域管理服务器发送 AAA-TM 的 LDAP_REFERRAL 响应。AAA-TM 遵循对指定的域管理服务器的引用,对该服务器进行身份验证,并在该服务器上执行密码更改。
注意:使用 LDAP 身份验证服务器配置 AAA-TM
时,系统管理员必须牢记以下条件和限制:
- AAA-TM 假定引用中的域管理服务器接受与原始服务器相同的绑定凭据。
- AAA-TM 仅遵循 LDAP 推荐的密码更改操作。在其他情况下,AAA-TM 拒绝遵循转介。
- AAA-TM 仅遵循一个级别的 LDAP 转介。如果第二个 LDAP 服务器还返回引用,AAA-TM 拒绝遵循第二个引用。
审计/日志记录支持
ADC 支持审核所有状态和状态信息,因此您可以按时间顺序查看每个用户在登录时所做操作的详细信息。要提供此信息,设备会在发生时将每个事件记录到设备上的指定审核日志文件或 syslog 服务器。审核需要配置您使用的设备和任何 syslog 服务器。
限制和使用指南
身份验证列表:
一个用于 AAA-TM 部署的公有 IP 在 Citrix ADC 上部署
Citrix ADC 通过利用身份验证子系统支持的各种 AAA 功能,支持流量管理 (TM) 虚拟服务器(以下称为 vserver)的 AAA 框架。用于身份验证的服务器称为 “身份验证虚拟服务器” 或 AAA 虚拟服务器。
Citrix ADC 可以将上述图片整合到一个公共端点,方法是将身份验证虚拟服务器幻灯片与 TM 虚拟服务器相邻,以便有一个公共端点,反过来还有一个证书。下图对此进行了描述:
由 Citrix Virtual Apps and Desktops 托管的 Windows 应用程序
您可以在组织的内部网络(或 Intranet)的外围部署 Citrix Gateway,以便为驻留在内部网络中的服务器、应用程序和其他网络资源提供安全的单点访问权限。所有远程用户必须连接到 Citrix Gateway,然后才能访问内部网络中的任何资源。
Citrix Gateway 最常安装在网络中的以下位置:
-
在网络 DMZ
-
在没有 DMZ 的安全网络中
还可以将 Citrix Gateway 与 Citrix Virtual Apps、Virtual Desktops、StoreFront 和 Endpoint Management Server 一起部署给用户,以便访问其 Windows、Web、移动和 SaaS 应用程序。
如果您的部署包括 Citrix Virtual Apps、StoreFront 或 Virtual Desktops,则可以在单跃点或双跃点 DMZ 配置中部署 Citrix Gateway。早期版本的虚拟桌面或虚拟应用程序不支持双跳部署。
SAML 2.0 SaaS 应用程序
安全断言标记语言 (SAML) 是一种基于 XML 的身份验证机制,提供单点登录功能,由 OASIS 安全服务技术委员会定义。
为什么是 SAML? 考虑服务提供商 (LargeProvider) 为客户(BigCompany)承载多个应用程序的场景。BigCompany 拥有必须无缝访问这些应用程序的用户。在传统的设置中,LargeProvider 需要维护 BigCompany 的数据库用户。这引起以下每个利益相关者的一些关注意:
-
LargeProvider 必须确保用户数据的安全。
-
BigCompany 必须验证用户,并保持用户数据最新,不仅在自己的数据库中,而且在由 LargeProvider 维护的用户数据库中。例如,从 BigCompany 数据库中删除的用户也必须从 LargeProvider 数据库中删除。
-
用户必须分别登录到每个托管应用程序。
SAML 身份验证机制提供了一种替代方法。以下部署图显示了 SAML 的工作原理:
传统认证机制引起的关切解决方式如下:
-
LargeProvider 不必为 BigCompany 用户维护数据库。从身份管理中解放出来,大型提供商可以专注于提供更好的服务。
-
BigCompany 不承担确保 LargeProvider 用户数据库与其自己的用户数据库保持同步的负担。
-
用户可以登录一次,登录到 LargeProvider 上托管的一个应用程序,并自动登录到托管该位置的其他应用程序。
Citrix ADC 设备可以部署为 SAML 服务提供商 (SP) 和 SAML 身份提供商 (IdP)。阅读相关主题,了解必须在 Citrix ADC 设备上执行的配置。
ADFS 混合云集成
AD FS 是一种基于标准的服务,它允许在受信任的业务合作伙伴(称为联合)之间通过外联网安全共享身份信息。当用户需要从其联合合作伙伴之一访问 Web 应用程序时,用户自己的组织负责对用户进行身份验证,并以 “声明” 的形式向承载 Web 应用程序的合作伙伴提供身份信息。托管合作伙伴使用其信任策略将传入声明映射到其 Web 应用程序所理解的声明,该应用程序使用声明来做出授权决策。
Active Directory 联合身份验证服务 (AD FS) 使本地用户和联合用户能够使用基于声明的单点登录 (SSO) 到 Web 站点和服务。您可以使用 AD FS,使您的组织能够通过使用联合身份验证在 Active Directory 域与其他外部组织安全地协作。这减少了重复帐户、管理多个登录以及建立跨组织信任时可能出现的其他凭据管理问题的需要。
ADFS 代理模式
AD FS 2.0 代理是代理外部用户和内部 AD FS 2.0 服务器之间的连接的服务。它充当反向代理,通常驻留在组织的外围网络(又称 DMZ)中。就用户而言,他们不知道他们正在与 AD FS 代理服务器交谈,因为联合身份验证服务由相同的 URL 访问。代理服务器处理三个主要功能。
-
断言提供程序:代理接受来自用户的令牌请求,并将信息通过 SSL(默认端口 443)传递给内部 AD FS 服务器。它从内部 AD FS 服务器接收令牌并将其传递回用户。
-
断言使用者:代理接受来自用户的令牌并将其通过 SSL(默认端口 443)传递给内部 AD FS 服务器进行处理。
-
元数据提供程序:代理还将响应联合元数据的请求。
AD FS 2.0 代理不是使用 AD FS 的要求。这是一个额外的功能。安装 AD FS 2.0 代理的原因是您不希望将实际的 AD FS 2.0 服务器公开到互联网。AD FS 2.0 服务器是域加入的资源,而 AD FS 2.0 代理没有该要求。如果您的所有用户和应用程序都在网络内部,则不需要使用 AD FS 2.0 代理。如果需要将联合身份验证服务公开到 Internet,则最好使用 AD FS 2.0 代理。
有关详细信息,请参阅以下链接了解 AD FS 2.0 代理。
ADFS IDP 模式
联合伙伴的身份提供商 (IP) 发送反映其用户身份、组和属性数据的声明。因此,您的组织不再需要撤销、更改或重置合作伙伴用户的凭据,因为这些凭据由合作伙伴组织管理。此外,如果伙伴关系需要终止,则可以通过单个信任策略更改来执行它。如果没有 AD FS,则需要停用每个合作伙伴用户的单个帐户。配置为标识提供程序可重复使用现有 Active Directory 对象管理的现有帐户进行身份验证。它无需构建复杂的帐户同步机制或开发自定义代码,以执行接受最终用户凭据、根据凭据存储验证凭据和管理身份等任务。
Citrix ADC nFactor (Multifactor) 身份验证
nFactor 为身份验证提供了全新的视角,简化了身份验证流程,并在身份验证期间提供了极大的灵活性。
多重身份验证要求用户提供多个标识证明以获取访问权限,从而增强应用程序的安全性。Citrix ADC 设备提供了一种可扩展且灵活的方法来配置多重身份验证。这种方法称为 nFactor 身份验证。
使用 nFactor 身份验证,您可以:
-
配置任意数量的身份验证因素。
-
根据执行上一个因子的结果选择下一个因子。
-
自定义登录界面。例如,您可以自定义标签名称、错误消息和帮助文本。o 提取用户组信息而无需进行身份验证。
-
配置身份验证因子的直通。这意味着该因素不需要显式登录交互。
-
配置应用不同类型的身份验证的顺序。Citrix ADC 设备上支持的任何身份验证机制均可配置为 nFactor 身份验证设置的任何因子。
这些因子按照配置它们的顺序执行。
- 配置 Citrix ADC,以继续执行身份验证失败时必须执行的身份验证因子。
为此,您可以配置另一个身份验证策略,条件完全相同,但优先级次高,操作设置为 “NO_AUTH”。
还必须配置下一个因子,该因子必须指定要应用的替代身份验证机制。
客户企业应用程序
自适应多因素身份验证 (MFA),实现更严格的安全性
企业有几个利益相关者使用他们的应用程序和数据。员工合作伙伴、供应商以及需要从不同地点访问应用程序和数据并使用各种设备的其他几名员工。企业需要一种方法,以不同的方式对不同用户组进行身份验证。虽然不同的网关可用于不同的用户组,但此方法将影响维护和体验的一致性。
-
SSO:Citrix ADC 支持所有 SSO 协议 — SAML 协议、KCD 协议、基于表单的协议、401/NTLM。Citrix ADC 支持 SAML 协议,可以发挥 SAML IDP 角色(上述用例 1)以及 SAML SP 角色(上述用例 2)。
-
主机分析:Citrix ADC 支持用于主机配置文件检查的端点分析 (EPA) 功能。EPA 可用于授予隔离访问权限,以防用户未满足完全访问所需的安全检查。
-
合规性审核:Citrix ADC 支持广泛的审核机制,如 Appflow、系统日志和用户定义的日志记录。
配置步骤
适用于托管 Windows 应用程序的 Citrix Gateway
网络架构
在 DMZ 中部署 Citrix Gateway 时,用户连接必须遍历第一个防火墙才能连接到 Citrix Gateway。默认情况下,用户连接在端口 443 上使用 SSL 建立此连接。要允许用户连接连接到内部网络,必须通过第一个防火墙在端口 443 上允许 SSL。
Citrix Gateway 对来自用户设备的 SSL 连接进行解密,并代表用户建立与第二个防火墙后面的网络资源的连接。必须通过第二个防火墙打开的端口取决于您授权外部用户访问的网络资源。
例如,如果您授权外部用户访问内部网络中的 Web 服务器,并且此服务器侦听端口 80 上的 HTTP 连接,则必须通过第二个防火墙允许端口 80 上的 HTTP 连接。Citrix Gateway 代表外部用户设备通过第二个防火墙与内部网络上的 HTTP 服务器建立连接。
在安全网络中部署的 Citrix Gateway
在安全网络中部署 Citrix Gateway 时,请将 Citrix Gateway 上的一个接口连接到 Internet,将另一个接口连接到安全网络中运行的服务器。将 Citrix Gateway 放入安全网络,为本地和远程用户提供访问功能。此配置只有一个防火墙。但是,对于从远程位置进行连接的用户而言,这会降低部署的安全性。尽管 Citrix Gateway 会拦截来自 Internet 的流量,但在用户进行身份验证之前,流量会进入安全网络。在 DMZ 中部署 Citrix Gateway 时,在网络流量到达安全网络之前对用户进行身份验证。
在安全网络中部署 Citrix Gateway 时,Citrix Gateway 插件连接必须遍历防火墙才能连接到 Citrix Gateway。默认情况下,用户连接使用端口 443 上的 SSL 协议建立此连接。要支持此连接,必须在防火墙上打开端口 443。
SAML 身份提供程序 (IdP) 模式
SAML IdP(身份提供程序)是部署在客户网络上的 SAML 实体。IdP 接收来自 SAML SP 的请求,并将用户重定向到登录页面,用户必须在其中输入凭据。IdP 使用用户目录(外部身份验证服务器,如 LDAP)对这些凭据进行身份验证,然后生成发送到 SP 的 SAML 断言。
SP 验证令牌,然后向用户授予访问请求的受保护应用程序的权限。
将 Citrix ADC 设备配置为 IdP 时,所有请求均由与相关 SAML IdP 配置文件关联的身份验证虚拟服务器接收
注意: Citrix ADC 设备可以在设备上或任何外部 SAML 上配置 SAML SP 的部署中用作 IdP。
用作 SAML IdP 时,Citrix ADC 设备将执行以下操作:
-
支持传统登录支持的所有身份验证方法。
-
以数字方式对断言进行签名。Citrix ADC 11.0 Build 55.x 中引入了对 SHA256 算法的支持。
-
支持单因素和双因素身份验证。SAML 不能配置为辅助身份验证机制。
-
可以使用 SAML SP 的公钥对断言进行加密。当断言包含敏感信息时,建议使用此方法。Citrix ADC 11.0 Build 55.x 中引入了支持。
-
可以配置为仅接受来自 SAML SP 的数字签名请求。Citrix ADC 11.0 Build 55.x 中引入了支持
-
可以使用以下基于 401 的身份验证机制登录 SAML IdP:协商、NTLM 和证书。Citrix ADC 11.0 Build 55.x 中引入了支持。
-
可以配置为发送 16 个属性,NameId 属性除外。必须从相应的身份验证服务器提取属性。您可以在 SAML IdP 配置文件中为每个用户指定名称、表达式、格式和友好名称。Citrix ADC 11.0 Build 55.x 中引入了支持。
-
如果 Citrix ADC 设备配置为多个 SAML SP 的 SAML IdP,则用户无需每次都显式身份验证即可访问不同 SP 上的应用程序。Citrix ADC 设备为第一次身份验证创建会话 Cookie,并且每个后续请求都使用此 Cookie 进行身份验证。Citrix ADC 11.0 Build 55.x 中引入了支持。
-
可以在 SAML 断言中发送多值属性。Citrix ADC 11.0 Build 64.x 中引入了支持。
-
支持发布和重定向绑定。在 Citrix ADC 11.0 构建 64.x 中引入了对重定向绑定的支持。o
如果 Citrix ADC SAML IdP 和对等 SAML SP 上的系统时间不同步,则消息可能会被任何一方失效。为了避免这种情况,您现在可以配置断言有效的时长。
此持续时间(称为 “倾斜时间”)指定应接受邮件的分钟数。
可以在 SAML SP 和 SAML IdP 上配置偏斜时间。
注意:
Citrix ADC 11.0 Build 64.x 中引入了支持。
- 可以配置为仅向 IdP 上预配置或受其信任的 SAML SP 提供断言。对于此配置,SAML IdP 必须具有相关 SAML SP 的服务提供商 ID(或颁发者名称)。Citrix ADC 11.0 Build 64.x 中引入了支持。
ADFS 代理模式配置
配置
要将 Citrix ADC 设置为 ADFS 代理,必须在 Citrix ADC 系统中启用以下功能-负载平衡、内容切换 SSL 卸载。将 Citrix ADC 配置为 ADFS 代理涉及以下步骤:
- 设置内容交换虚拟服务器。这是 ADFS 代理 VIP,此虚拟服务器的 IP 地址是用作替换 ADFS 服务器 IP 的 IP。
- 创建四个负载平衡虚拟服务器:一个用于主动和被动身份验证,一个用于元数据访问,另一个用于重写请求 URL。
- 创建所需的内容切换策略并将其绑定到 CS vserver。这些将包括:
- 两种用于解析主动和被动身份验证请求的策略,启用/禁用预身份验证(如果在 ADFS 服务器上首选身份验证,则禁用)
- 一种用于分析元数据请求的策略,这些请求未经身份验证且已禁用预身份验证。
- 一个策略用于重写从 /adf/服务/信任到/adf/服务/信任/代理的请求 URL。
- 创建 AAA 虚拟服务器、LDAP 身份验证和协商和会话策略,以便在 NetS-caler 上验证请求,并向后端 ADFS 服务器执行 Kerberos 模拟/KCD(Kerberos 约束委派)。
有关更多信息,请参阅Citrix ADC ADFS 代理的部署指南。
数据包流
Citrix ADC 作为 ADFS 代理的数据包流,具有内部/外部用户访问:
-
ADFS 启用内部/外部用户对 Office 365 的访问。
-
用户被重定向到适用的联合身份验证服务进行身份验证。
-
用户被重定向到企业的内部联合身份验证服务。
-
内部用户负载平衡到 ADFS 场。
-
外部用户连接到 Citrix ADC AAA-TM 登录页面。
-
用户对 Active Directory 或类似的身份验证服务进行身份验证。
-
执行身份验证后,Citrix ADC 会对 ADFS 场进行 SSO (Kerberos/NTLM)。
-
ADFS 服务器验证 SSO 凭据并返回 STS 令牌。
-
外部用户连接到验证令牌和声明的联合身份验证服务。
-
基于验证,联合身份验证服务向用户提供新的安全令牌。
-
外部用户向资源提供带有安全令牌的授权 cookie 以供访问。
使用 Citrix ADC 作为 ADFS 代理的优势
-
满足负载平衡和 ADFS 代理的需求
-
适用于内部和外部用户访问方案
-
支持多种预身份验证方法,并启用多重身份验证
-
为最终用户提供 SSO 体验
- 支持主动和被动协议
- 主动协议应用程序示例 - Outlook、Lync
-
被动协议应用程序示例 - Outlook Web App、浏览器
-
Citrix ADC 是一种用于基于 DMZ 的部署的硬化设备
- 通过额外的内核 ADC 特性增加价值
- 内容切换
- SSL 卸载
- 重写
- 响应者
- 速率限制
- 安全性(AAA-TM、网关、应用程序防火墙)