防范Azure AD多租户应用授权配置错误的安全指南

本文详细介绍了Azure AD多租户应用中可能存在的授权配置错误问题,包括技术细节、安全增强措施以及针对管理员和开发者的具体防护指南,帮助用户有效防范未授权访问风险。

技术细节

Microsoft Azure Active Directory 应用程序可配置为单租户或多租户。多租户应用程序使开发者能够跨组织边界提供其应用,支持各种企业对企业、企业对消费者及复杂组织场景。配置为多租户的应用程序需要额外的授权(AuthZ)检查,以确保仅允许应被授权的实体访问。对于利用 Azure 应用服务身份验证等功能处理其 Azure AD 身份验证的应用程序,同样需要这些额外的授权检查。

在此特定案例中,部分应用被错误配置为多租户应用,而其他多租户应用未能正确处理授权检查,可能错误地授权了来自未在租户中显式注册的客户端对租户中资源的访问。实现正确授权检查的一部分是应用程序检查客户端提供的访问令牌中的服务主体。

请参阅以下指南,以保护您的多租户应用程序免受未授权访问。

安全增强

Azure AD 已更新,停止向未在资源租户中注册的客户端颁发访问令牌。即使应用程序未正确处理授权检查,这也防止了此问题的发生。

此功能已对超过 99% 的客户应用程序禁用。对于其余依赖来自无服务主体的客户端访问的多租户资源应用程序,我们已在 Azure 服务健康安全公告中向全局管理员(通过 Azure 门户和电子邮件)及 Microsoft 365 消息中心提供了说明。所有拥有多租户应用程序的客户仍需遵循以下安全指南。

Azure 应用服务身份验证引入了新的配置选项,以添加对客户端注册(服务主体)存在性及租户 ID 匹配允许列表的检查。这些选项可用于增强多租户应用程序的安全性。

保护使用 Azure AD 的多租户应用程序的指南

以下是根据您的角色可采取的一些步骤,以保护您的应用程序免受未授权访问。

如果您是管理员:

  • 清点租户中注册为多租户的所有应用程序。审查每个应用程序是否需要在注册租户之外使用。如果不需要,更新受众以限制为应用程序的租户。这将消除来自租户外部的意外访问。
  • 继续遵循安全最佳实践。审查并监控租户的登录日志。使用“分配必需”功能限制仅对明确分配给资源应用的实体进行访问。为管理对租户中资源的外部访问,实施条件访问策略。

如果您是应用程序开发者:

  • 审查您的 Azure AD 多租户应用程序的授权逻辑,并确保实施推荐的授权检查。
  • 对于使用应用服务身份验证功能的应用程序(默认仅提供身份验证),采取明确步骤包含授权逻辑。应用服务身份验证允许配置一些额外检查作为应用程序授权逻辑的一部分。您的应用程序还可以通过处理代码中的声明来执行授权检查。
  • 确保基于对象 ID(‘oid’)或其他安全标识符的授权逻辑。
  • 更新客户部署流程,包含为每个客户端应用创建服务主体以允许访问资源应用程序的步骤。
  • 确保您的应用程序使用 Microsoft 身份验证库(MSAL)进行身份验证和令牌管理。

致谢

我们感谢 Wiz 负责任地披露此发现,这使我们有机会调查并解决所提出的问题。我们鼓励所有研究人员与供应商合作,遵循协调漏洞披露(CVD),并遵守渗透测试的参与规则,以避免在进行安全研究时影响客户数据。

参考

如有疑问?通过 Azure 门户在 aka.ms/azsupt 提交支持案例。 Wiz 的博客网站:https://www.wiz.io/blog/azure-active-directory-bing-misconfiguration

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计