如何解决微服务架构中的身份验证问题?
相关阅读:
厉害了Word哥!阿里巴巴73款开源产品最全总结全景图
Borsos指出,单点登录(SSO)方案可能看起来是一个好主意,但这意味着每个面向用户的服务都必须与认证服务交互,这会产生大量非常琐碎的网络流量,同时这个方案实现起来也相当复杂 。 在其他方面,选择SSO方案安全性会很好,用户登录状态是不透明的,可防止攻击者从状态中推断任何有用的信息。
分布式会话方案,原理主要是将关于用户认证的信息存储在共享存储中,且通常由用户会话作为key来实现的简单分布式哈希映射。 当用户访问微服务时,用户数据可以从共享存储中获取。 该解决方案的另一个优点是用户登录状态是不透明的。 当使用分布式数据库时,它也是一个高度可用且可扩展的解决方案。 这种方案的缺点在于共享存储需要一定保护机制,因此需要通过安全链接来访问,这时解决方案的实现就通常具有相当高的复杂性了。
客户端令牌方案, 此令牌在客户端生成,由身份验证服务进行签名,并且必须包含足够的信息,以便可以在所有微服务中建立用户身份。 令牌会附加到每个请求上,为微服务提供用户身份验证。 这种解决方案的安全性相对较好,但身份验证注销是一个大问题, 缓解这种情况的方法可以使用短期令牌和频繁检查认证服务等。 对于客户端令牌的编码方案,Borsos更喜欢使用JSON Web Tokens(JWT),它足够简单且库支持程度也比较好。
客户端令牌与API网关结合,这个方案意味着所有请求都通过网关,从而有效地隐藏了微服务。 在请求时,网关将原始用户令牌转换为内部会话ID令牌。 在这种情况下,注销就不是问题,因为网关可以在注销时撤销用户的令牌。 这种方案虽然库支持程度比较好,但实现起来还是可能很复杂。
Borsos建议使用客户端令牌(使用JWT)和API网关结合的方案,因为这个方案通常使用起来比较容易,且性能也不错。 SSO方案虽然能满足需求,但他认为还是应该避免使用。若分布式会话方案所需要的相关技术已经应用在你的场景上,那么这个方案也是比较有趣的。他同时强调在选择解决方案时应着重考虑注销的重要性。
-END-
欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。
本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。
长按下方的二维码可以快速关注我们
如想加群讨论学习,请点击右下角的“加群学习”菜单入群。
如何解决微服务架构中的身份验证问题?相关推荐
- PPT分享:基于事件解决微服务架构中分布式数据问题
简介 本文主要介绍世界级软件架构师 Chris Richardson在2021年最新分享的PPT.PPT分享的标题是<Events to the rescue: solving distribu ...
- 如何解决微服务架构中的雪崩问题?
记得在三年前公司因为业务发展需要,就曾经将单体应用迁移到分布式框架上来.当时就遇到了这样一个问题:系统仅有一个控制单元,它会调用多个运算单元,如果某个运算单元(作为服务提供者)不可用,将导致控制单元( ...
- 使用nhmicro提供的micro-datasource嵌入式的解决微服务架构中分布式事务问题
2019独角兽企业重金招聘Python工程师标准>>> 应用原理: 使用micro-datasource数据源使事务与线程解耦,通过groupid在其他线程进行事务提交或回滚. 多个 ...
- PPT分享:基于Eventuate平台解决微服务架构难题
简介 本文主要介绍世界级软件架构师 Chris Richardson在2021年最新分享的PPT.PPT分享的标题是<Overview of the Eventuate Platform> ...
- 网站如何经过身份验证_如何在微服务架构中实现安全性?
首先为自己打个广告,我目前在某互联网公司做架构师,已经有5年经验,每天都会写架构师系列的文章,感兴趣的朋友可以关注我和我一起探讨,同时需要架构师资料的可以私信我免费送 作者 | Chris Richa ...
- 微服务架构中的雪崩问题产生原因及解决办法
微服务架构中的雪崩问题产生原因及解决办法 参考文章: (1)微服务架构中的雪崩问题产生原因及解决办法 (2)https://www.cnblogs.com/panchanggui/p/10330924 ...
- 如何在微服务架构中实现安全性?
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者 | Chris Richardson 网络安全已成为每个企业都面临的关键问题.几乎每天都有 ...
- nuget的原理_微服务架构中APIGateway原理
背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest ...
- Spring Cloud与微服务学习总结(5)——认证鉴权与API权限控制在微服务架构中的设计与实现(三)
本文转载自( http://blueskykong.com/2017/10/24/security3/) 1. 前文回顾 在开始讲解这一篇文章之前,先对之前两篇文章进行回忆下.在第一篇 认证鉴权与AP ...
- 《微服务架构设计模式》读书笔记 | 第9章 微服务架构中的测试策略(上)
第9章 微服务架构中的测试策略(上) 前言 1. 微服务架构中的测试策略概述 1.1 编写自动化测试 1.2 使用模拟和桩进行测试 1.3 使用范围对测试进行分类 1.4 使用测试象限对测试进行分类 ...
最新文章
- 如何用Python做Web开发?——Django环境配置
- android 关于页面,解析android中的帮助、about、关于作者、HELP等提示页面
- 解决前端页面闪烁问题(转载)
- solr中的ik分词器的原理是什么
- 2019 湖南多校第五场题解
- SpringCloud 搭建项目环境、创建 Dept 微服务、客户端调用微服务
- Java笔记-字符串编码与解码以及编码表原理
- c combobox绑定mysql数据库_C# ComboBox:组合框控件数据绑定
- PHP中的数组建必须为数字吗,PHP检查数组中缺少的数字
- HDU5904 LCIS【LCIS】
- 802.1W RSTP
- Codeforces - 570D 离散DFS序 特殊的子树统计 (暴力出奇迹)
- java基于springboot校园音乐点歌网站平台ssm
- 2021-02-06-身高与车架大小
- 【愚公系列】2023年01月 .NET CORE工具案例-基于SqlSugar的多库多表融合查询
- 专家有料 | 张祖优:腾讯云DevSecOps实践与开源治理探索
- excel制作跨职能流程图_如何绘制泳道图(跨职能流程图)
- 【时间函数】gettimeofday
- Window脚本学习笔记之定时关闭进程
- 华盛顿大学计算机科学,华盛顿大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第18位(QS世界排名)...
热门文章
- Selecting Foreground or Background Colors
- 《Linux内核设计与实现》学习笔记之“Linux进程管理机制”
- super-smack
- 开发OA产品的部分网站
- NDoc使用简要手册增加了例子代码
- fcpx教程,如何在 final cut pro 中导出视频的图文?
- 苹果Mac微软office办公套件:Microsoft 365
- 如何在 Mac 上创建自动填充的智能文件夹?
- iOS开发之openURL:(打电话,打开网页等)
- Dr.Cleaner pro for mac(系统清理和优化软件)