跳转到主要内容
Chinese, Simplified

多租户软件即服务(SaaS)应用程序的授权和API访问控制是一个复杂的主题。当您考虑到必须确保安全的微服务API的激增以及不同租户、用户特征和应用程序状态产生的大量访问条件时,这种复杂性就显而易见了。为了有效地解决这些问题,解决方案必须在微服务、前端后端(BFF)层和多租户SaaS应用程序的其他组件提供的许多API中实施访问控制。这种普遍的方法必须与灵活的实施范式相结合,该范式可以根据许多因素和属性做出复杂的访问决策。

传统上,API访问控制和授权由应用程序代码中的自定义逻辑处理。这种方法容易出错,而且不安全,因为可以访问此代码的开发人员可能会意外或故意更改授权逻辑,从而导致未经授权的访问。此外,API访问控制通常是不必要的,因为没有那么多API需要保护。应用程序设计中偏向微服务和面向服务的架构的范式转变增加了必须使用某种形式的授权和访问控制的API的数量。此外,在多租户SaaS应用程序中维护基于租户的访问的需要可能会变得非常复杂,通常使用孤立的或效率极低的模型来保持这种租赁。

本指南中概述的最佳实践提供了几个好处:

  • 授权逻辑可以集中化,并用高级声明性语言编写,而不是特定于任何编程语言。
  • 授权逻辑是从应用程序代码中抽象出来的,可以等幂地应用于应用程序中的所有API。
  • 该抽象防止了对授权逻辑的意外更改,并使其与SaaS应用程序的集成一致且简单。
  • 抽象防止了为每个API端点编写自定义授权逻辑的需要。
  • 本指南中概述的方法支持根据组织的要求使用多种访问控制范式。
  • 这种授权和访问控制方法提供了一种在SaaS应用程序的API层维护租户数据隔离的简单而直接的方法。

目标业务成果

本规范性指南描述了可用于多租户SaaS应用程序的授权和API访问控制的幂等设计模式。本指南适用于开发具有复杂授权要求或严格API访问控制需求的应用程序的任何团队。该体系结构详细介绍了使用开放策略代理(OPA)创建策略决策点(PDP)或策略引擎,以及在API中集成策略执行点(PEP)。本指南还讨论了基于属性的访问控制(ABAC)模型或基于角色的访问控制模型,或这两种模型的组合来做出访问决策。

我们建议您使用本指南中提供的设计模式和概念来通知和标准化多租户SaaS应用程序中的授权和API访问控制的实现。本指南有助于实现以下业务成果:

  • 多租户SaaS应用程序的标准化API授权架构–此架构通过PDP、PEP、策略引擎和OPA实现。这些概念和技术有助于维护多租户SaaS应用程序中的租户隔离,并为应用程序提供API授权的整体方法。
  • 授权逻辑与应用程序的解耦–当授权逻辑嵌入应用程序代码中或通过临时强制机制实现时,可能会发生意外或恶意更改,从而导致意外的跨租户数据访问或其他安全漏洞。为了帮助减少这些可能性,您可以使用OPA等策略引擎将授权决策与应用程序代码分开,并在应用程序中实施一致的策略。策略可以在高级声明性语言中集中维护,这使得维护授权逻辑比在应用程序代码的多个部分中嵌入策略要简单得多。这种方法还可确保一致地应用更新。
  • 访问控制模型的灵活方法–基于角色的访问控制(RBAC)、基于属性的访问控制或这两种模型的组合都是访问控制的有效方法。这些模型试图通过使用不同的方法来满足业务的授权要求。本指南对这些模型进行比较和对比,以帮助您选择适合您的组织的模型。该指南还详细讨论了这些模型如何应用于策略引擎,尤其是OPA。本指南中讨论的体系结构使其中一个或两个模型都能成功采用。
  • 严格的API访问控制–本指南提供了一种以最小的努力在应用程序中一致和普遍地保护API的方法。这对于通常使用大量API来促进应用程序内部通信的面向服务或微服务应用程序架构尤其重要。严格的API访问控制有助于提高应用程序的安全性,使其不易受到攻击或利用。
原文地址
https://docs.aws.amazon.com/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/welcome.html
本文地址
Article

微信

知识星球

微信公众号

视频号