微服务系统中的认证策略

标签: 服务 系统 认证 | 发表时间:2017-04-04 23:02 | 作者:wangkeheng
分享到:
出处:http://www.iteye.com

软件安全本身就是个很复杂的问题,由于微服务系统中的每个服务都要处理安全问题,所以在微服务场景下会更复杂。David Borsos在最近的伦敦微服务大会上作了相关内容的演讲,并评估了四种面向微服务系统的身份验证方案。

 

在传统的单体架构中,单个服务保存所有的用户数据,可以校验用户,并在认证成功后创建HTTP会话。在微服务架构中,用户是在和服务集合交互,每个服务都有可能需要知道请求的用户是谁。一种朴素的解决方案是在微服务系统中应用与单体系统中相同的模式,但是问题就在于如何让所有的服务访问用户的数据。解决这个问题大致两个思路:若使用共享用户数据库时,更新数据库表会成为一个难题,因为所有服务必须同时升级以便能够对接修改后的表结构;若将相同的数据分发给所有服务时,当某个用户已经被认证,如何让每个服务知晓这个状态是一个问题。

 

Borsos指出, 单点登录(SSO)方案可能看起来是一个好主意,但这意味着每个面向用户的服务都必须与认证服务交互,这会产生大量非常琐碎的网络流量,同时这个方案实现起来也相当复杂 。 在其他方面,选择SSO方案安全性会很好,用户登录状态是不透明的,可防止攻击者从状态中推断任何有用的信息。

 

分布式会话方案,原理主要是将关于用户认证的信息存储在共享存储中,且通常由用户会话作为key来实现的简单分布式哈希映射。 当用户访问微服务时,用户数据可以从共享存储中获取。 该解决方案的另一个优点是用户登录状态是不透明的。 当使用分布式数据库时,它也是一个高度可用且可扩展的解决方案。 这种方案的缺点在于共享存储需要一定保护机制,因此需要通过安全链接来访问,这时解决方案的实现就通常具有相当高的复杂性了。

 

客户端令牌方案, 此令牌在客户端生成,由身份验证服务进行签名,并且必须包含足够的信息,以便可以在所有微服务中建立用户身份。 令牌会附加到每个请求上,为微服务提供用户身份验证。 这种解决方案的安全性相对较好,但身份验证注销是一个大问题, 缓解这种情况的方法可以使用短期令牌和频繁检查认证服务等。 对于客户端令牌的编码方案,Borsos更喜欢使用JSON Web Tokens(JWT),它足够简单且库支持程度也比较好。

 

客户端令牌与API网关结合,这个方案意味着所有请求都通过网关,从而有效地隐藏了微服务。 在请求时,网关将原始用户令牌转换为内部会话ID令牌。 在这种情况下,注销就不是问题,因为网关可以在注销时撤销用户的令牌。 这种方案虽然库支持程度比较好,但实现起来还是可能很复杂。

 

Borsos建议使用客户端令牌(使用JWT)和API网关结合的方案,因为这个方案通常使用起来比较容易,且性能也不错。 SSO方案虽然能满足需求,但他认为还是应该避免使用。若分布式会话方案所需要的相关技术已经应用在你的场景上,那么这个方案也是比较有趣的。他同时强调在选择解决方案时应着重考虑注销的重要性。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [服务 系统 认证] 推荐:

微服务系统中的认证策略

- - 企业架构 - ITeye博客
软件安全本身就是个很复杂的问题,由于微服务系统中的每个服务都要处理安全问题,所以在微服务场景下会更复杂. David Borsos在最近的伦敦微服务大会上作了相关内容的演讲,并评估了四种面向微服务系统的身份验证方案. 在传统的单体架构中,单个服务保存所有的用户数据,可以校验用户,并在认证成功后创建HTTP会话.

官方认证 Windows Phone 解锁服务 ChevronWP7 Labs 定价:$9

- ccyuling - LiveSino - LiveSide 中文版
WMPoweruser 注意到 ChevronWP7 团队成员 Chris Walsh 在 Twitter 上透露“ChevronWP7 Labs 解锁费用只需 $9”. ChevronWP7 Labs 解锁服务正是为希望在真机上测试应用而又暂时不想向微软 App Hub 支付 $99 费用的开发者,或者是所在市场仍未被支持的开发者提供的.

BlackBerry 两款手机通过 MasterCard PayPass 认证,将于英法开展服务

- ZeeJee - Engadget 中国版
说起移动设备付账服务,大家也许会想起 Google Wallet,但其实还有其他选择,例如 MasterCard Worldwide 的 PayPass. 配备 NFC 功能的 BlackBerry Bold 9900 及 Curve 9360 日前通过 PayPass 认证,成为全球首两部获得有关认证的手机,让用户与银行可以通过其 SIM 卡使用 PayPass付账服务,而有关的服务将率先于英国及法国的 Orange 旗下开展,总算是开启了移动付账的新里程碑了.

使用Spring Security Oauth2完成RESTful服务password认证的过程 - 王安琪

- - 博客园_首页
        摘要:Spring Security与Oauth2整合步骤中详细描述了使用过程,但它对于入门者有些重量级,比如将用户信息、ClientDetails、token存入数据库而非内存. 配置过程比较复杂,经过几天时间试验终于成功,下面我将具体的使用Spring Security Oauth2完成password认证的过程记录下来与大家分享.

图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证

- - CSDN博客推荐文章
1.1 nginx 包及其依赖包下载. 出于模块的依赖性,Nginx 依赖以下三个包:. gzip 模块需要 zlib 库( http://www.zlib.net/);. rewrite 模块需要 pcre 库( http://www.pcre.org/);. ssl 功能需要 openssl 库( http://www.openssl.org/);.

八款企业用户反馈系统服务

- huige - 天涯海阁-Web2.0Share
去年一年电子商务发展很快,很多电子商务网站也广受投资人的青睐,对于电子商务而言,除了网站信息流,支付和物流以外,其实相关的基础配套服务也非常重要,比如用户反馈系统,一个好的用户反馈系统可以很好的提高用户满意度. 这方面的企业级服务国外相对较成熟,国内这一块相对发展还不是特别成熟,个人觉得有很大的潜力,当然用户反馈系统不仅仅可以用于电子商务领域,任何互联网产品和传统领域都是有用武之地的,这样的服务对于中小型企业尤其有价值.

Nokia 推出 Drive 导航系统、Mix Radio 和 ESPN Sports Hub 服务

- 米十三 - Engadget 中国版
Nokia 所说的「真正的」男子汉 Windows Phone 的杀手应用应该就在这了. 这次推出的 Lumia 800 即将成为首部内建完整导航的 WP7 手机,这个支持 Turn-by-Turn 的 Nokia Drive 导航应用,相信只要是 Nokia 的爱用者应该都会很习惯,主要是因为其接口看起来就有如其前身 Ovi Maps 一样简单易用,并且也拥有类似的功能 -- 脱机地图下载,让你不用担心没有网络信号时会找不着路.

如何选择服务器操作系统(Linux/Unix)

- - 标点符
Linux的发行版有上百种,如何选择也是一种难题. 一、Ubuntu Desktop 和 Ubuntu Server. 这个是最方便,也是最快捷的方式. 如果刚开始使用Ubuntu,且不太熟悉命令行的可以选用Ubuntu Desktop来学习. 继而转为Ubuntu Server. 对于初学者,Ubuntu可以更好地上手,并且提供了很好提供了apt软件管理方式(这个是目前最好的软件管理方式),使用起来非常方便,同事Ubuntu的社区也非常的活跃,使用的人数也较多.

在线状态服务在网站系统中的应用

- - idea's blog
我的前一篇博客文章” 谈谈Facebook的聊天系统架构“, 对Facebook的聊天系统架构进行了分析. 其中的有些思想和系统划分, 对即使不是做聊天系统, 如一般的网站系统, 也是很有借鉴意义的. 例如其中的在线状态服务器(Presence).. 在线状态服务, 是这样的一个服务, 它维护了网站当前的在线用户列表, 接受其它模块的查询.

服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

- - 知乎每日精选
早期,我们使用 Debian 作为服务器软件,后来转向了CentOS,主要原因如下:. 1、CentOS/RHEL的生命周期是7年,基本上可以覆盖硬件的生命周期,也就意味着一个新硬件安装以后,不用再次安装操作系统. 要知道重新折腾一个生产机是很麻烦而且有风险的事情. [2012.2.1]今天刚刚收到红帽子的通知邮件,RedHat 5, RedHat 6的生命周期,延长到10年,太牛叉了.