使用零信任方法生成标识的应用

零信任是一个安全框架,不依赖于在安全网络外围后面提供给交互的隐式信任。 它改为使用显式验证、最低特权访问和假设出现信息泄露的原则来保证用户和数据的安全,同时允许从网络外围访问应用程序等常见方案。

应用开发人员可以通过采用零信任原则来提高应用安全性,最大限度地减少信息泄露的影响,并确保其应用程序满足客户的安全要求。 本文档介绍如何开发人员使用零信任方法来标识,其中包括身份验证、授权和标识管理。

零信任的实现仍在发展,并且每个组织的历程都是不同的。 但对大部分客户来说,标识是个合理的起点。 下面是一些策略和控制,我们看到组织在推出零信任时将这些策略和控制确定为优先事项:

  • 组织正在将用户同意限制为向发布者经过验证的应用授予低风险权限。 IT 管理员通过要求 发布者验证来显式接受验证原则,并且仅允许用户同意低风险权限来获得最低特权原则。 在你的组织或客户同意之前,管理员将评估应用所请求的权限以及应用的可信度。
  • 组织正在为应用和服务设置凭据卫生和轮换策略。 如果应用的凭据泄露,则攻击者可能会伪装成该应用的标识来获取令牌,从而能够访问敏感数据、横向移动或建立持久性。
  • 组织正在推出强身份验证。IT 管理员希望能够设置要求多重身份验证和无密码 FIDO2 设备的策略。
  • 组织正在阻止旧式协议和 API。 这包括阻止较旧的身份验证协议(例如“基本身份验证”),以及要求使用 Open ID Connect 和 OAuth 2.0 等新式协议 。 Microsoft 宣布于 2022 年 6 月 30 日停用 Azure Active Directory (Azure AD) Graph 和旧版 Azure Active Directory 身份验证库 (ADAL)。 组织正在确保它们所依赖的应用程序已做好准备。

零信任的首要建议

以下最佳做法是确保应用安全的关键。 我们还发布了一份 白皮书 ,详细介绍了这些最佳做法。

使用可信、基于标准的身份验证库。 使用库可节省自行开发解决方案所用的时间。 但更重要的是,它将保持最新状态,并及时应对最新的技术和威胁。 Microsoft 提供了几个身份验证库,包括 Microsoft 身份验证库 (MSAL)Microsoft 标识 Web 身份验证库用于托管标识的 Azure SDK。 通过这些库,可以访问条件访问、设备注册和管理等功能,以及最新的创新(例如无密码和 FIDO2 身份验证),而无需编写任何额外的代码。

遵循Azure AD 应用程序注册安全最佳做法。 Azure AD 应用程序注册是业务应用程序的关键部分。 应用程序的任何配置错误或清理失误都可能导致故障时间或泄露。

将凭据保存在代码外部。 这使 IT 管理员可以执行凭据轮换,而无需关闭或重新部署应用。 你可以使用 Azure Key VaultAzure 托管标识等服务。

针对最低特权访问进行设计。 这是零信任的关联原则。 应始终向用户提供完成其工作所需的最低权限。 例如,可以使用增量同意,以便仅在需要时请求权限。 另一个示例是使用 Microsoft Graph 中的精细范围。 可以使用 Graph 浏览器来浏览范围,以调用 API 并查看哪些权限是必需的。 范围按照特权从最低到最高的顺序显示。 选择尽可能低的特权可将应用程序受到攻击的可能性降至最低。 若要了解详细信息,请参阅应用程序最低权限访问的最佳做法

支持持续访问评估 (CAE) 。 CAE 使 Microsoft Graph 能够快速撤销活动会话来响应安全事件。 例如:当删除或禁用用户帐户、为用户启用多重身份验证 (MFA)、管理员显式撤销为用户颁发的令牌,或者检测到用户面临风险时。 此外,启用 CAE 后,为 Microsoft Graph 颁发的令牌的有效期为 24 小时,而不是 1 小时(正常的有效期)。 这对于复原非常有用,因为应用可以继续运行,而无需每一小时返回到 Azure Active Directory 一次以刷新令牌。

为 IT 定义要分配给用户和组的应用角色。应用角色 可帮助你在应用程序中实现基于角色的访问控制 (RBAC) 。 应用角色的常见示例包括“管理员”、“读者”和“参与者”等角色,使应用程序能够将敏感操作限制给分配给角色的用户或组。 使用应用角色还可实现其他功能,例如 Azure AD 的 Privileged Identity Management (PIM) 功能,该功能为用户提供对敏感角色的实时访问和限时访问,从而减少恶意行动者获取该访问权限或未经授权的用户意外影响敏感资源的机会。

成为已验证的发布者。 当应用程序标记为“发布者已验证”时,表示发布者已使用 Microsoft 合作伙伴网络帐户(该帐户已完成既定的验证过程)验证了该应用的标识。 这很适合多租户应用的开发人员,因为它有助于在客户租户中与 IT 管理员建立信任。

后续步骤