ACS 性能准则

应用于

  • Microsoft Azure Active Directory 访问控制(也称为访问控制服务或 ACS)

  • Windows Identity Foundation (WIF)

总结

本主题概述了开发使用 ACS 的应用程序和服务时应考虑的关键性能准则。 具体来说,本主题提供有关令牌大小和加密及其如何影响总体性能的指南。

概述

一般情况下,性能的关键属性是响应时间、吞吐量和资源利用率。 例如,如果应用程序的资源(如内存)有限,则可能会出现某些信息命中文件系统的情况,而文件系统的操作要比内存中操作慢得多,因此会影响总体响应时间。 以下是另一个示例,如果应用程序通过带宽有限的网络发送大量数据,会导致实际响应时间慢于所需的响应时间。 解决性能问题的一种方法是添加更多的资源(如网络带宽)、更快的 CPU 和更多的内存。 此方法会有所帮助,但并非始终如此。 另一种方法是改进代码,让代码使用较少的资源并交换较少的数据。 考虑声明感知应用程序的上下文以及开发人员控制的内容,有一些与使用 ACS 相关的关键因素会影响性能,即令牌和与令牌相关的加密操作。

目标

  • 定义影响使用 ACS 的应用程序性能的方面。

  • 提供如何改进每方面性能的指南。

令牌大小和加密

令牌大小和加密是开发人员控制的关键因素,会影响与 ACS 集成的应用程序的性能。

  • 令牌大小。 令牌大小以两种方式影响性能。 首先,它在某种程度上直接影响与网络带宽相关的性能。 令牌越大,所占用的网络带宽越多,从而导致总体响应越慢。 其次,令牌越大,验证完整性和提取令牌中的声明所需的 CPU 周期越多。 令牌处理包括分析令牌以及将令牌反序列化为二进制格式,以便你的代码可以使用它。该处理还包括多个加密操作,例如签名验证以及可选的解密。 令牌越大,对其进行处理时所用的 CPU 周期越多,从而导致资源占用率越高和总体响应越慢。 令牌大小取决于几个因素:令牌格式、应用于令牌的加密以及令牌中的声明。 ACS 支持 SAML、SWT 和 JWT 令牌。 通常,SWT 或 JWTJWT 令牌小于具有等效信息的 SAML 令牌。 有关详细信息,请阅读 ACS 中支持的令牌格式。 虽然不同令牌格式针对不同协议和应用程序体系结构进行了优化,但仍需注意一些注意事项。

    • SWT 令牌通过 WS 联合身份验证、WS 信任和 OAuth WRAP 或 OAuth 2.0 协议颁发。 这意味着,SWT 令牌可用于 Web 应用程序、WCF (SOAP) 服务和 WCF (REST) 服务。 WIF 不支持 SWT 令牌处理程序。

    • SAML 令牌通过WS-Trust和WS-Federation协议颁发。 这意味着,SAML 令牌可用于 Web 应用程序和 WCF (SOAP) 服务。 WIF 支持 SAML 2.0 和 SAML 1.1 令牌。 在以下主题中详细了解 WIF Windows Identity Foundation

    • JWT 令牌通过 WS 联合身份验证、WS 信任和 OAuth 2.0 协议颁发。 这意味着,SWT 令牌可用于 Web 应用程序、WCF (SOAP) 服务和 WCF (REST) 服务。

    对令牌大小影响最大的一个因素是令牌中包含的声明。 令牌携带的声明越多,其大小越大。 在大多数情况下,令牌携带的声明在开发人员的控制之下。 应用程序使用的声明由安全令牌服务 (STS) (例如 AD FS 或 ACS)添加、删除或更改。 ACS 使用规则组和规则在令牌中添加、删除或更改声明。 有关详细信息,请阅读 规则组和规则

  • 加密。 加密及其他带加密性质的操作(如签名、签名验证和解密)会直接影响性能。 加密操作由于涉及复杂的算法,将消耗计算能力。 某些令牌的颁发是为了对抗篡改攻击以确保数据完整性,ACS 将为所有此类令牌签名。 令牌的签名验证不是可选的。 如果信赖方应用程序是不使用 SSL 来加密通信的 ?eb 服务,则令牌加密是必需的。 使用 SOAP 的基于 WCF 的服务需要使用 WS 信任协议且经过加密的拥有证明令牌。 需要使用令牌加密来保护通过未加密通道的敏感信息。 但是,如果通信通道已加密(例如,使用 SSL 加密),则使用令牌加密是可选的,并且为了提高性能,可能不会应用令牌加密。

另请参阅

概念

ACS 安全准则
证书和密钥管理准则