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 加密),则使用令牌加密是可选的,并且为了提高性能,可能不会应用令牌加密。