我有一个全新的基于Rails api的应用程序,我需要实现授权。
整体架构:
React frontend -> Rails API layer -> Rails model/server layer
在探索不同的方法时,我感到很困惑。
cancancan / pundit
)并且如果不允许用户将错误消息抛出到API层。如果有人可以根据他们的经验提出建议,那将是一个很大的帮助。
答案 0 :(得分:1)
在应用程序之外 - 始终外部授权。将授权逻辑与业务逻辑分离。
自SOA(面向服务的体系结构),API体系结构和现在的微服务开始以来,趋势是打破应用程序孤岛并以可重用常用功能的方式设计系统。例如,您使用中央身份验证服务(我不希望实现您自己的身份验证方案)和中央日志记录机制。
同样适用于授权。有一种叫做externalized authorization的东西可以促进:
ABAC推广以下架构和流程(更多details here)
今天有2个标准实施ABAC。 XACML提供语言和架构(见上文)。 ALFA提供language。
查看此项目:CanCanCan。