使用连续访问评估保护应用程序
本文可帮助开发者通过连续访问评估提高应用程序安全性。 了解如何确保你的应用中支持零信任,以便在从 Microsoft Entra ID 获取访问令牌时接收访问资源的授权。
当 Microsoft Entra ID 发放这些访问令牌时,它将充分评估该授权的条件。 每次颁发初始令牌请求的令牌以及刷新令牌时,Microsoft Entra ID 都会执行标准授权操作,例如确保同意。
Microsoft Entra ID 主要使用 JSON 网络令牌 (JWT) 作为访问令牌。 资源 API 可以解码、验证和解释 JWT,而无需在每次调用资源 API 时回调 Microsoft Entra ID。 JWT 标准定义了一个过期声明,用于标识到期时或到期后你不得接受 JWT 令牌进行处理的时间。 默认情况下,Microsoft Entra 令牌在发放后 60 到 90 分钟过期。 在此期间,应用程序必须缓存和使用访问令牌,Microsoft Entra ID 不会评估授权条件。
在颁发令牌后评估条件
当 Microsoft Entra ID 颁发令牌时,Microsoft 客户担心用户条件更改与策略更改强制执行之间存在滞后。 这种缩短令牌生存期的方法可能会降低用户体验和可靠性,而不会消除风险。
一种解决方案是评估对受保护资源每次调用的条件。 实现此强制措施的最常见方法是令牌自检。 令牌自检不会对令牌使用 JWT 格式。 相反,令牌自检使用资源 API 无法解释的不透明字符串。 资源 API 会在每次调用时将令牌发送给标识提供者。 然后,标识提供者检查任何条件,并返回资源 API 可用来完成操作的数据。 此过程可能会很昂贵,因为它向每个 API 调用添加另一个往返 Web 请求。
若要通过连续访问评估 (CAE) 弥补这项开支,资源 API 可以侦听 Microsoft Entra ID 推送的有关 Microsoft Entra ID 为资源 API 发放的令牌的事件。 例如,当应用程序调用 Microsoft Graph API 时,Microsoft Graph 可以检查它是否从 Microsoft Entra ID 收到了有关令牌的事件。 如果原始身份验证的条件不同,并且用户需要重新进行身份验证,Microsoft Graph 会将错误返回到调用应用。
当发生以下任何事件时,Microsoft Entra ID 会向启用 CAE 的 Microsoft 资源发送事件:
- 已禁用或删除的用户帐户
- 已更改或重置用户密码
- 已启用用户多重身份验证
- 管理员显式撤销用户的所有刷新令牌
- Microsoft Entra ID 保护检测到用户风险升高
此外,启用 CAE 的 Microsoft 资源可以强制执行基于位置的条件访问策略。
通过 CAE 提高应用程序安全性和复原能力
基于 Microsoft Entra 连续访问评估构建的更安全、更可复原的应用程序视频演示了如何构建具有 CAE 支持的客户端应用程序。
观看上面的演示,了解应用程序通过以下步骤使用新式验证时如何工作:
- 使用新式验证时应用程序的工作原理
- 应用向 Microsoft 标识请求令牌
- 应用接收访问令牌
- 应用使用 JWT 调用 API/授权
- 自检
- 共享的信号和事件
- 关键事件评估
- 条件访问策略评估
- 调用 API 连续访问评估
- 声明质询
连续访问评估使应用程序有权访问在访问令牌生存期之外撤销的资源。 例如,应用程序具有有效期增加 75 分钟的令牌。 用户因凭证外泄而处于高风险状态。 CAE 阻止应用访问资源,要求用户在继续之前重新进行身份验证。 因此,CAE 实现了改善应用安全性的主要目标。
由于可以在令牌生存期之外撤消对资源的访问权限,Microsoft Entra ID 可以发放更长生存期的令牌。 对于支持 CAE 的应用,Microsoft Entra ID 可以发放有效期长达 28 小时的令牌。 尽管此更长的令牌生存期不会提高应用的复原能力,但它降低了应用程序成本,因为应用需要请求令牌的频率要少得多。
CAE 改进了应用在从 Microsoft Entra ID 获取访问令牌时可能遇到的问题的复原能力。 Microsoft Entra ID 会尽可能将刷新时间作为包含访问令牌的令牌响应的一部分发出。 Microsoft 身份验证库 (MSAL) 使用此刷新时间主动刷新令牌。 刷新时间是令牌过期时间的一部分(通常为一半)。 只要 MSAL 能够在令牌过期时间之前刷新访问令牌,应用程序就可以应对令牌刷新问题。
例如,当应用支持 CAE 时,Microsoft Entra ID 会发放一个令牌,授权应用调用有效期为 24 小时的 Microsoft Graph。 Microsoft Entra ID 然后告知 MSAL 在 12 小时后主动刷新令牌。 如果 MSAL 尝试刷新访问令牌失败,因为原始访问令牌在 12 小时内仍然有效,则应用程序在从 Microsoft Entra ID 获取令牌时能够更好地应对问题。
在应用中实现连续访问评估
如如何在应用程序中使用启用连续访问评估的 API 中所述,应用及其访问的资源 API 必须已启用 CAE。 但是,准备代码以使用启用了 CAE 的资源不会阻止你使用未启用 CAE 的 API。 不使用 MSAL 的应用程序可以添加对声明质询、声明请求和客户端功能的支持以使用 CAE。
后续步骤
- Microsoft Entra ID 中工作负载标识的连续访问评估描述了组织的 CAE 安全优势。
- 使用连续访问评估将零信任原则应用于身份验证会话管理描述了如何在不影响用户体验和工作效率的情况下,保护身份验证会话,以及实现会话管理现代化。
- 提高开发的身份验证和授权应用程序的复原能力介绍了一系列文章,提供了有关使用 Microsoft 标识平台和 Microsoft Entra ID 提高应用程序复原能力的指导。 内容包含了使用令牌和调用资源的最佳做法。
- 使用标识零信任方法生成应用概述了权限和访问的最佳做法。
- 将应用程序与 Microsoft Entra ID 和 Microsoft 标识平台集成可帮助开发人员生成和集成应用,IT 专业人员可在企业中保护这些应用。