你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用完全托管标识服务平台

几乎每个云应用程序都需要使用用户标识。 标识是新式安全做法的基础,例如零信任,应用程序的用户标识是解决方案体系结构的关键部分。

对于大多数解决方案,强烈建议使用标识即服务 (IDaaS) 平台(完全托管标识解决方案),而不是生成或运行自己的标识解决方案。 在本文中,我们会介绍生成或运行自己的标识系统时的难题。

建议

重要

利用 IDaaS(如 Microsoft Entra ID、Azure AD B2C 或其他类似系统),即可缓解本文中所述的许多问题。 建议尽可能使用此方法。

解决方案要求可能会导致你使用自己托管和运行的框架或现成的标识解决方案。 虽然使用预生成标识平台可缓解本文中所述的一些问题,但处理其中许多问题仍然是你在使用此类解决方案时的责任。

应避免使用从头开始生成的标识系统。

避免存储凭据

运行自己的标识系统时,必须存储凭据数据库。 绝对不应以明文形式存储凭据,甚至不应存储为加密数据。

不过,你可能会在存储凭据之前考虑加密哈希和加盐凭据,这使它们更难以受到攻击。 但是,即使是哈希凭据和加盐凭据也容易受到多种攻击。

无论如何保护各个凭据,维护凭据数据库都会使你成为攻击的目标。 近年来,无论是大型组织还是小型组织,都经历过凭据数据库被作为攻击目标。

请将凭据存储视为责任,而不是资产。 利用 IDaaS,可以将凭证存储问题外包给可投入时间和资源来安全管理凭证的专家。

实现标识和联合身份验证协议

新式标识协议很复杂。 行业专家设计了 OAuth 2、OpenID Connect 和其他协议,以确保其可缓解实际攻击和漏洞。 这些协议还会发展变化,以适应技术、攻击策略和用户期望的变化。 具有协议专业知识及其使用方式的标识专家,在实现和验证遵循这些协议的系统方面非常具有优势。 有关协议和平台的详细信息,请参阅 Microsoft 标识平台中的 OAuth 2.0 和 OpenID Connect (OIDC)

联合标识系统也很常见。 标识联合协议的建立、管理和维护很复杂,并且需要专业知识和经验。 有关详细信息,请参阅联合标识模式

采用新式标识功能

用户希望标识系统具有一系列高级功能,包括:

  • 无密码身份验证,它使用安全方法登录,而无需用户输入凭据。

  • 单一登录 (SSO),支持用户使用雇主、学校或其他组织的标识登录。

  • 多重身份验证 (MFA),这会提示用户以多种方式对自己进行身份验证。 例如,用户可以使用密码登录,也可以在移动设备上使用验证器应用或通过电子邮件发送的代码登录。

  • 审核,用于跟踪标识平台中发生的每个事件,包括成功、失败和中止的登录尝试。 若要以取证方式分析登录尝试,以后可能需要详细的日志。

  • 条件访问,围绕基于各种因素的登录尝试创建风险配置文件。 这些因素可能包括用户的标识、登录尝试的位置、以前的登录活动以及数据或应用程序的敏感度。

  • 实时访问控制,暂时允许用户基于审批过程登录,然后自动删除授权。

如果要自行生成标识组件作为业务解决方案的一部分,则不太可能证实实现这些功能以及维护这些功能所涉及工作的合理性。 其中一些功能还需要额外工作,例如与消息提供程序集成以发送 MFA 代码,以及在足够时间内存储和保留审核日志。

IDaaS 平台还可以提供一组改进的安全功能,这些功能基于其收到的登录请求量。 例如,当大量客户使用单个标识平台时,以下功能效果最佳:

  • 检测风险登录事件,例如来自僵尸网络的登录尝试
  • 检测用户活动之间的不可能旅行
  • 检测常见凭据,例如其他用户经常使用的密码,因此可能会面临泄露风险增加
  • 使用机器学习技术,将登录尝试分类为有效或无效
  • 监视所谓的“暗网”,以获取泄露的凭据并防止其利用
  • 持续监视威胁形势和攻击者使用的当前矢量

如果生成或运行自己的标识系统,则无法利用这些功能。

使用可靠的高性能标识系统

由于标识系统是新式云应用程序的关键部分,因此必须具有可靠性。 如果标识系统不可用,则解决方案的其余部分可能会受到影响,要么以降级方式运行,要么根本无法运行。 通过将 IDaaS 与服务级别协议结合使用,可以让你更加确定标识系统在需要时可保持正常运行。 例如,Microsoft Entra ID 为基本和高级服务层级的正常运行时间提供 SLA,其中涵盖了登录和令牌颁发过程。 有关详细信息,请参阅 Microsoft Entra ID 的 SLA

同样,标识系统必须运行良好,并能够扩展到系统可能遇到的增长级别。 根据应用程序体系结构,每个请求都可能需要与标识系统交互,并且任何性能问题对用户来说都显而易见。 IDaaS 系统已进行激励,以扩展到大型用户负载。 它们旨在吸收大量流量,包括由不同形式的攻击生成的流量。

测试安全性并应用严格控制措施

如果运行标识系统,则应负责保护标识系统。 需要考虑实现的控制措施示例包括:

  • 定期渗透测试,这需要专业知识。
  • 审核员工和有权访问系统的任何其他人。
  • 通过专家审查的所有更改,严格控制对解决方案进行的所有更改。

这些控制措施通常成本高昂且难以实现。

使用云原生安全控制措施

使用 Microsoft Entra ID 作为解决方案的标识提供者时,可以利用云原生安全功能,例如 Azure 资源托管标识

如果选择使用单独的标识平台,则需要考虑应用程序如何利用托管标识和其他 Microsoft Entra 功能,并同时与自己的标识平台集成。

专注于核心价值

维护安全、可靠且响应迅速的标识平台成本高昂且复杂。 在大多数情况下,标识系统并非向解决方案增加价值的组件,也不是将你与竞争对手区分开来的组件。 最好将标识要求外包给专家生成的系统。 这样,你便可以专注于设计和生成解决方案的组件,为客户增加业务价值。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤