本文可帮助你作为开发人员,通过持续访问评估提高应用程序安全性。 了解如何 确保应用中的零信任支持 在从 Microsoft Entra ID 获取访问令牌时接收 访问资源的授权 。
Microsoft Entra ID 颁发这些访问令牌时,它将完全评估 该授权的条件。 Microsoft Entra ID 执行标准授权操作,例如确保获得同意,每次颁发初始令牌请求的令牌和刷新令牌时都会进行这些操作。
Microsoft Entra ID 主要使用 JSON Web 令牌(JWT)作为访问令牌。 资源 API 可以在每次调用资源 API 时解码、验证和解释 JWT,而无需在每次调用资源 API 时调用Microsoft Entra ID。 JWT 标准定义了 exp 声明,它标识了一个过期时间,在该时间或之后,不得接受 JWT 令牌以进行处理。 默认情况下,Microsoft Entra 令牌在颁发后 60 到 90 分钟过期。 确保在 Microsoft Entra ID 未评估授权条件的期间,您的应用程序缓存并使用访问令牌。
评估颁发令牌之外的条件
Microsoft Entra ID 颁发令牌时,用户条件更改和策略更改强制实施之间可能会出现滞后。 令牌生存期降低的方法可能会降低用户体验和可靠性,而不会消除风险。
一种解决方案是评估对受保护资源的每次调用的条件。 实现此强制措施的最常见方法是令牌探查。 令牌自省未使用 JWT 格式对令牌进行处理。 相反,令牌内省使用资源 API 无法解释的不透明字符串。 资源 API 会在每次调用时将令牌发送到标识提供者。 然后,标识提供者检查是否有任何条件,并返回资源 API 可用于完成操作的数据。 此过程可能很昂贵,因为它会向每个 API 调用添加另一个往返 Web 请求。
若要通过持续访问评估(CAE)解决这一问题,资源 API 可以侦听 Microsoft Entra ID 推送的有关 Microsoft Entra ID 为资源 API 颁发的令牌的事件。 例如,当应用程序调用 Microsoft 图形 API 时,Microsoft Graph 可以检查它是否从Microsoft Entra ID 收到有关令牌的事件。 如果原始身份验证的条件不同,并且用户需要重新进行身份验证,Microsoft Graph 会将错误返回到调用应用。
Microsoft Entra ID 会在发生以下任一事件时将事件发送到启用了 CAE 的Microsoft资源:
- 禁用或删除的用户帐户
- 已更改或重置用户密码
- 已启用用户多重身份验证
- 管理员显式撤销用户的所有刷新令牌
- Microsoft Entra ID 保护检测到提升的用户风险
此外,启用了 CAE 的Microsoft资源可以强制实施基于位置的条件访问策略。
使用 CAE 提高应用程序安全性和复原能力
以下 基于 Microsoft Entra Continuous Access Evaluation 视频构建的更安全且可复原的应用 演示了如何构建具有 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 专业人员可在企业中保护的应用。