Himeji: a scalable centralized system for authorization at Airbnb

摘要

在过去的几年里,Airbnb的工程从单体的Ruby on Rails架构转移到面向服务的架构。在我们的Rails架构中,我们每个资源都有一个API来访问基础数据。这些API有授权检查以保护敏感数据。由于有一个单一的方法来访问资源的数据,管理这些检查很容易。在向SOA过渡的过程中,我们转向了一个分层的架构,其中有包裹数据库的数据服务和从多个数据服务中提取的展示服务。将权限检查从单片机转移到SOA的最初方法是将这些检查转移到展示服务。然而,这导致了几个问题。

  1. 重复的和难以管理的授权检查。通常情况下,多个提供访问相同基础数据的展示服务都有重复的授权检查代码。在某些情况下,这些检查变得不同步,难以管理。
  2. 分散到多个服务。这些授权检查大多需要调用其他服务。这很慢,负载难以维持,而且影响了整体性能和可靠性。

欢迎在评论区写下你对这篇文章的看法。

评论

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.134.0. UTC+08:00, 2024-09-29 00:19
浙ICP备14020137号-1 $Map of visitor$