文集文档索引

与鉴权、认证、RABC、OAuth 等等一系列相关的笔记


  • 文集信息
  • 目录大纲
  • 最新文档
  • 知识宇宙

文集详情

文集导读

微服务下的权限控制 BytebyteGo Design Secure System CheatSheet 在传统的单体架构中,单个服务保存所有的用户数据,可以校验用户,并在认证成功后创建 HTTP 会话。在微服务架构中,用户是在和服务集合交互,每个服务都有可能需要知道请求的用户是谁。一种朴素的解决方案是在微服务系统中应用与单体系统中相同的模式,但是问题就在于如何让所有的服务访问用户的数据。解决这个问题大致两个思路:若使用共享用户数据库时,更新数据库表会成为一个难题,因为所有服务必须同时升级以便能够对接修改后的表结构;若将相同的数据分发给所有服务时,当某个用户已经被认证,如何让每个服务知晓这个状态是一个问题。 Borsos 指出,单点登录(SSO)方案可能看起来是一个好主意,但这意味着每个面向用户的服务都必须与认证服务交互,这会产生大量非常琐碎的网络流量,同时这个方案实现起来也相当复杂。在其他方面,选择 SSO 方案安全性会很好,用户登录状态是不透明的,可防止攻击者从状态中推断任何有用的信息。 分布式会话方案,原理主要是将关于用户认证的信息存储在共享存储中,且通常由用户会话作为 key 来实现的简单分布式哈希映射。当用户访问微服务时,用户数据可以从共享存储中获取。该解决方案的另一个优点是用户登录状态是不透明的。当使用分布式数据库时,它也是一个高度可用且可扩展的解决方案。

目录大纲

    最新文档

    知识宇宙

    正在加载知识图谱...


    转发