云设计模式之 : 联邦身份模式

栏目: 后端 · 发布时间: 7年前

内容简介:用户经常需要使用不同的应用,每个应用一般都需要使用不同的账号,这给用户增加了管理多个账号的负担,如果将用户认证的功能委托给外部模块,既可以降低应用的部署难度,又能减少用户账号管理负担,并且让用户有一致性的体验。解决这个问题的方法之一就是使用联邦身份模式,不同应用都将认证的功能委托给可信任的第三方认证模块,这样认证和授权还能解耦。下面是这种模式的结构图:上图中,IdP或者STS作为身份认证中心,是Consumer和Service都信任的。Consumer要访问Service的资源时,被要求先进行身份认证,因此

1. 缘由

用户经常需要使用不同的应用,每个应用一般都需要使用不同的账号,这给用户增加了管理多个账号的负担,如果将用户认证的功能委托给外部模块,既可以降低应用的部署难度,又能减少用户账号管理负担,并且让用户有一致性的体验。

2. 解决方案

解决这个问题的方法之一就是使用联邦身份模式,不同应用都将认证的功能委托给可信任的第三方认证模块,这样认证和授权还能解耦。下面是这种模式的结构图:

云 <a href='https://www.codercto.com/topics/17995.html'>设计模式</a> 之 : 联邦身份模式

上图中,IdP或者STS作为身份认证中心,是Consumer和Service都信任的。Consumer要访问Service的资源时,被要求先进行身份认证,因此Consumer事先就会通过IdP获取到请求token,然后在访问Service时携带该token,Service通过验证token就知道Consumer是否是合法的消费者,同时Service能判断是否Consumer有足够的访问权限,这属于授权的内容。

3. 需要考虑的问题

采用该模式时,往往身份认证中心就变成了一个单点,如果应用被部署到多个数据中心,一般也要就近部署一个身份认证模块来保持其可用性和可靠性。比较适合的使用场景是支持Single sign-on单点登录的系统。

4. 具体示例

下面这张图展示的是一个部署在Microsoft Azure上的SAAS应用的认证模型。

云设计模式之 : 联邦身份模式

首先,用户请求自己公司的认证模块ADFS,获取到一个token,然后用户浏览器将该token转发到SAAS应用的认证模块Federation provider,获得后者认可的适用于SAAS应用的token。如果需要,Federation provider还会将token的部分内容进行某些转换,转换后SAAS应用也是可以识别的,最后再将token返回给用户。之后,用户访问SAAS应用时,SAAS应用将利用token里包含的信息对用户进行授权验证。

这样的话,用户不需要记住不同的账号以便可以访问公司内部资源和外部SAAS资源,公司的管理员也仅仅需要维护ADFS的信息,就能实现对用户账号和权限的管理。

微信扫码,进入【技术人成长】社群逛逛。

云设计模式之 : 联邦身份模式

以上所述就是小编给大家介绍的《云设计模式之 : 联邦身份模式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript DOM编程艺术 (第2版)

JavaScript DOM编程艺术 (第2版)

[英] Jeremy Keith、[加] Jeffrey Sambells / 杨涛、王建桥、杨晓云 等 / 人民邮电出版社 / 2011-4 / 49.00元

JavaScript是Web开发中最重要的一门语言,它强大而优美。无论是桌面开发,还是移动应用。JavaScript都是必须掌握的技术。W3C的DOM标准是开发Web应用的基石。已经得到所有现代浏览器的支持,这使得跨平台Web开发成了一件轻松惬意的事。 本书是超级畅销书的升级版,由倡导Web标准的领军人物执笔,揭示了前端开发的真谛,是学习JavaScript和DOM开发的必读之作。 本......一起来看看 《JavaScript DOM编程艺术 (第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

MD5 加密
MD5 加密

MD5 加密工具