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

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

内容简介:用户经常需要使用不同的应用,每个应用一般都需要使用不同的账号,这给用户增加了管理多个账号的负担,如果将用户认证的功能委托给外部模块,既可以降低应用的部署难度,又能减少用户账号管理负担,并且让用户有一致性的体验。解决这个问题的方法之一就是使用联邦身份模式,不同应用都将认证的功能委托给可信任的第三方认证模块,这样认证和授权还能解耦。下面是这种模式的结构图:上图中,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的信息,就能实现对用户账号和权限的管理。

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

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

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

查看所有标签

猜你喜欢:

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

Head First HTML5 Programming(中文版)

Head First HTML5 Programming(中文版)

埃里克•弗里曼 (Eric Freeman)、伊丽莎白•罗布森 (Elisabeth Robson) / 中国电力出版社 / 2012-9 / 78.00元

《Head First HTML5 Programming(中文版)》内容简介:你可能想创建具有动态性、交互性、包含丰富数据而且互连的Web页面。先等一下,Web页面?为什么不用HTML5创建成熟的Web应用呢?另外,为什么不使用现代技术,像在移动设备上一样轻松地应用到桌面浏览器呢?当然,你肯定希望使用最新的HTML5技术来完成,比如地理定位、视频、2D绘制、Web存储、Web工作线程等,是不是?......一起来看看 《Head First HTML5 Programming(中文版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具