零信任身份和访问管理开发最佳做法

本文帮助开发人员了解应用程序开发生命周期的身份和访问管理最佳做法。 通过身份和访问管理 (IAM) 开始开发安全、符合零信任要求的应用程序。

零信任安全框架使用显式验证、最低权限访问和假设违规的原则。 保护用户和数据,同时允许从网络外围以外访问应用程序等常见方案。 减少对安全网络外围后面的交互操作的隐式信任的依赖,这些交互可能会容易受到安全攻击。

尽管零信任实现不断发展,但每个组织的旅程都是独一无二的,通常从用户和应用程序标识开始。 下面是许多组织在推出零信任时优先考虑的策略和控件:

  1. 对应用和服务实现凭据安全机制和轮换策略。 当攻击者盗用机密(如证书或密码)时,他们可以通过系统深入访问,伪装成该应用来获取令牌。 然后,它们访问敏感数据、横向移动并建立持久化。
  2. 推出强身份验证。 IT 管理员正在配置需要多重身份验证和无密码 FIDO2 设备的策略。
  3. 限制用户将关于低风险权限应用的同意授予已验证发布者应用。 通过访问 API(如 Microsoft Graph)中的数据,可以生成富应用程序。 组织和客户在授予同意之前评估应用的权限请求和可信度。 IT 管理员通过要求发布者验证明确地接受验证原则。 他们仅允许用户同意低风险权限,从而应用最低特权原则。
  4. 阻止旧式协议和 API。 IT 管理员阻止较旧的身份验证协议(例如“基本身份验证”),并要求使用 Open ID Connect 和 OAuth2 等新式协议。

使用可信、基于标准的身份验证库

使用已知且已接受的标准和库开发应用程序,以提高应用程序可移植性和安全性。 可信、基于标准的身份验证库保持最新状态,使应用能够响应最新的技术和威胁。 使用基于标准的开发方法概述了受支持的标准(OAuth 2.0、OpenID 连接、SAML、WS 联合身份验证和 SCIM),以及将它们与 MSAL 和 Microsoft 标识平台 配合使用的优势。

使用 Microsoft 身份验证库 (MSAL)、Microsoft 标识 Web 身份验证库用于托管标识的 Azure SDK 等库开发应用程序,而不使用存在已知漏洞和大量文档的协议。 MSAL 和 SDK 允许使用这些功能,无需编写额外的代码:

  • 条件性访问
  • 设备注册和管理
  • 无密码和 FIDO2 身份验证

MSAL 和 Microsoft Graph 是开发 Microsoft Entra 应用程序的最佳选择。 MSAL 开发人员已完成确保符合协议要求的工作。 直接使用 Microsoft Entra ID 时,Microsoft 优化 MSAL 以提高效率。

在 Microsoft Entra ID 中注册应用

遵循 Microsoft Entra ID 中应用程序属性的安全最佳做法。 Microsoft Entra ID 中的应用程序注册至关重要,因为应用程序安全机制的任何配置错误或失效都可能导致故障或入侵。

提高安全性的应用程序属性包括重定向 URI、访问令牌(永远不会用于隐式流)、证书和机密、应用程序 ID URI 以及应用程序所有权。 开展定期安全和运行状况评估,与代码的安全威胁模型评估相似。

委派标识和访问管理

开发应用程序以使用令牌进行客户定义和管理的显式身份验证和访问控制。 Microsoft 建议不要开发自己的用户名和密码管理系统。

从代码中删除凭据,以使 IT 管理员可以轮换凭据,而无需关闭或重新部署应用。 使用 Azure Key VaultAzure 托管标识等服务委派 IAM。

最低权限访问的计划和设计

零信任的主要原则是最低权限访问。 充分开发和记录应用程序,使客户能够成功配置最低特权策略。 支持令牌和 API 时,为客户提供应用程序调用的资源的完善文档。

始终提供用户执行特定任务所需的最低权限。 例如,使用增量许可仅在需要时请求权限,并使用 Microsoft Graph 中的精细范围

Graph 浏览器中浏览范围,以调用 API 并查看必需的权限。 它们按照特权从最低到最高的顺序显示。 选择尽可能低的特权可确保应用程序受到攻击的可能性降低。

遵循利用最低特权原则来增强安全性中的指南,以降低应用程序的攻击面并缩小发生入侵时的安全漏洞爆炸半径。

安全地管理令牌

当应用程序从 Microsoft Entra ID 请求令牌时,安全地管理它们:

  • 验证它们对于应用程序来说范围正确。
  • 适当地缓存它们。
  • 按预期方式使用。
  • 通过检查错误类和编写适当的响应来处理令牌问题。
  • 在令牌响应中查看其范围和详细信息,而不是直接读取访问令牌。

支持连续访问评估 (CAE)

CAE 允许 Microsoft Graph 快速拒绝访问来响应安全事件。 示例包括以下租户管理员活动:

  • 删除或禁用用户帐户。
  • 为用户启用多重身份验证 (MFA)。
  • 显式撤消颁发给用户的令牌。
  • 检测变成高风险状态的用户。

当支持 CAE 时,Microsoft Entra ID 颁发的用于调用 Microsoft Graph 的令牌有效期为 24 小时,而非标准的 60 到 90 分钟。 CAE 通过要求每小时刷新令牌并让 MSAL 在令牌过期之前主动刷新令牌,为应用增加复原能力。

为 IT 组织定义要分配给用户和组的应用角色

应用角色可帮助你在应用程序中实现基于角色的访问控制。 应用角色的常见示例包括管理员、读者和参与者。 基于角色的访问控制允许应用程序根据其定义的角色限制对用户或组的敏感操作

成为经过验证的发布者

作为经过验证的发布者,你已使用 Microsoft 合作伙伴网络帐户验证了自己的身份,并完成了既定的验证流程。 对于多租户应用的开发人员来说,成为经过验证的发布者有助于在客户租户中与 IT 管理员建立信任。

后续步骤