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

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

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

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

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

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

查看所有标签

猜你喜欢:

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

The Art of Computer Programming, Volumes 1-3 Boxed Set

The Art of Computer Programming, Volumes 1-3 Boxed Set

Donald E. Knuth / Addison-Wesley Professional / 1998-10-15 / USD 199.99

This multivolume work is widely recognized as the definitive description of classical computer science. The first three volumes have for decades been an invaluable resource in programming theory and p......一起来看看 《The Art of Computer Programming, Volumes 1-3 Boxed Set》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具