身份反模式:联邦筒仓和意大利面条身份
分析公司Quocirca的最新研究证实,现在许多企业的外部用户比内部用户更多:在欧洲,有58%的企业直接与其他企业和/或消费者的用户进行交易; 仅在英国,这一数字就达到了65%。 如果您回顾历史,当今大多数企业都是通过收购,合并和合伙制发展的。 根据Dealogic的数据,仅在美国,2013年前9个月的并购交易总额达到了8651亿美元。 与去年同期相比增长了39%,是自2008年以来的九个月最高水平。
这对企业身份管理意味着什么?
您将必须使用多个异构用户存储-身份验证协议-旧式系统等等。
SAML,OpenID,OpenID Connect,WS-Federation均支持身份联合-跨域身份验证。 但是,我们是否总能期望联盟用例中的所有各方都支持SAML,OpenID或OpenID Connect? 我们今天看到的大多数联邦系统都处于孤岛中。 它可以是SAML联合的孤岛,OpenID Connect联合的孤岛或OpenID联合的孤岛。
即使在给定的联合仓库中,您如何随着越来越多的服务提供商和身份提供商进行扩展? 每个服务提供者都必须信任每个身份提供者,这会导致进入Spaghetti Identity反模式。
Federation Silos和Spaghetti Identity是通过Identity Bus模式直接解决的两个反模式 。
使用身份总线 ,给定的服务提供者不会与给定的身份提供者耦合,也不会与给定的联合协议耦合。 用户应该能够通过仅提供OpenID Connect令牌的身份提供者登录仅接受SAML 2.0令牌的服务提供者。 身份总线充当中间人,其在异构身份协议之间中介和转换身份令牌。
让我们看看身份总线模式的一些好处。
- 引进新的服务提供商非常容易。 您只需要在身份总线上注册服务提供商,然后从那里选择信任的身份提供商。 无需将服务提供商配置添加到每个身份提供商。
- 删除现有服务提供商非常容易。 您只需要从身份总线中删除服务提供商即可。 无需从每个身份提供者中删除服务提供者。
- 引入新的身份提供者非常容易。 您只需要在身份总线上注册身份提供者。 任何服务提供商均可使用。
- 删除现有的身份提供者非常容易。 您只需要从身份总线中删除身份提供者。
- 强制执行新的身份验证协议非常容易。 假设您需要同时使用用户名/密码和双重安全性(基于SMS的身份验证)对用户进行身份验证–您只需要将该功能添加到身份总线,然后从此处选择针对给定服务提供商的身份验证协议集即可服务提供商注册的时间。 每个服务提供商可以在身份总线上选择其希望如何认证用户。
- 索赔转换。 您的服务提供商可能会从http://sp1.org/claims/email属性ID中读取用户的电子邮件地址,但用户的身份提供商可能会将其作为http://idp1.org/claims/emai发送。 身份总线可以将其从身份提供者收到的声明转换为服务提供者期望的格式。
- 角色映射。 您的服务提供商需要在用户登录后授权他们。用户在身份提供商处可以执行的操作与同一用户在服务提供商处可以执行的操作不同。 来自身份提供者的用户角色定义了他可以在身份提供者处执行的操作。 服务提供者的角色定义了用户可以在服务提供者处执行的操作。 身份总线能够将身份提供者的角色映射到服务提供者的角色。 例如,用户可以在SAML响应中从其身份提供者带来idp-admin角色,然后身份总线将找到与此映射的服务提供者角色相对应,例如sp-admin,并将其添加到SAML响应中,然后返回从身份总线连接到服务提供商。
- 即时调配。 由于身份总线位于所有身份事务的中间,因此它可以将所有外部用户身份提供给内部用户存储。
- 集中监控和审计。
- 引入新的联合协议所需的更改最少。 如果您具有支持专有联合协议的服务提供商或身份提供商,则只需将该功能添加到身份总线。 无需在每个身份提供商或服务提供商处实现它。
WSO2 Identity Server是一个开源的身份和权利管理服务器,它支持SAML 2.0,OpenID,OAuth 2.0,OpenID Connect,XACML 3.0,SCIM,WS-Federation(被动)和许多其他身份联合模式。 下图显示了WSO2 Identity Server的高层体系结构-支持Identity Bus模式。
翻译自: https://www.javacodegeeks.com/2014/10/identity-anti-patterns-federation-silos-and-spaghetti-identity.html
身份反模式:联邦筒仓和意大利面条身份相关推荐
- 筒仓计算表格_身份反模式:联邦筒仓和意大利面条身份
筒仓计算表格 分析公司Quocirca的最新研究证实,现在许多企业的外部用户比内部用户更多:在欧洲,有58%的企业直接与其他企业和/或消费者的用户进行交易: 仅在英国,这一数字就达到了65%. 如果回 ...
- 设置SQLSERVER的混合身份验证模式(SA账号)
设置SQLSERVER的混合身份验证模式(SA账号) 2010-10-01 01:07:12| 分类: SqlServer|举报|字号 订阅 安装SQLSERVER的时候,没有设置混合验证模式,只用 ...
- [译] How to NOT React:React 中常见的反模式与陷阱
原文地址:How to NOT React: Common Anti-Patterns and Gotchas in React 原文作者:NeONBRAND 译文出自:掘金翻译计划 本文永久链接:g ...
- 都在说微服务,那么微服务的反模式和陷阱是什么(一)
译者:程超 译文:http://www.jianshu.com/p/3986239138fe 中文目录 1.数据驱动的迁移反模式 1.1.太多的数据迁移 1.2.功能分割优先,数据迁移最后 2.超时反 ...
- 从安全到镜像流水线,Docker 最佳实践与反模式一览
作者 | Timothy Mugayi 译者 | 弯月,责编 | 夕颜 封图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 在使用Docker的大部分时间里,我们并不关 ...
- 打docker镜像_从安全到镜像流水线,Docker 最佳实践与反模式一览
作者 | Timothy Mugayi 译者 | 弯月,责编 | 夕颜 封图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 在使用Docker的大部分时间里,我们并不关 ...
- kubernetes 部署_用于Kubernetes部署的10种反模式
kubernetes 部署 As container adoption and usage continues to rise, Kubernetes (K8s) has become the lea ...
- goto 语句让 Go 代码变成意大利面条?
Goto 语句在社区的讨论中经常被人诟病,认为其破坏了结构化编程和程序的抽象,是有害的,可怕的,是一种糟粕. 最早的观点来源于 1968 年,Edsger Dijkstra 写了一封信<Go T ...
- 03 | 微服务反模式与缺陷:代码共享反模式
译者简介:ASCE1885, <Android 高级进阶>作者. 本文首发于Source Code Chain开发者社区,欢迎使用我的专属邀请链接加入一起交流. 微服务被称为"无 ...
最新文章
- 解决eclipse ctrl+鼠标左键不能用
- Android逆向进阶——让你自由自在脱壳的热身运动(dex篇)
- scrapy配置文件操作核心API解读
- 详解基于CentOS6.2下DNS主从复制搭建与部署
- 为什么要用动态代理?静态代理与动态代理详解
- 3D打印材料PLA,ABS对比
- 作者:季统凯,男,博士,中国科学院云计算中心主任、研究员,国云科技股份有限公司董事长,中国云计算专家委员会委员。...
- STM32之ADC单通道单次例程
- SpringBoot + Redis + Shiro 实现权限管理
- 输入学号查询课程c语言,广工c语言课程设计
- 被逮到一个初始状态考虑不周的Bug
- 四十六 常用内建模块 itertools
- Git基础知识与常用命令
- What's new document web part for SharePoint v1.1 [Free]
- 如何通过手机访问本地编写的html页面
- Android全面屏如何做适配
- 泰拉瑞亚 服务器linux,Linux/CentOS7搭建泰拉瑞亚原版/mod服务器教程
- 【基础知识】~ 半加器 全加器
- HIP HOP 街舞文化
- (附源码)计算机毕业设计ssm高校社团管理系统
热门文章
- JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel
- java schema名_关于Schema的名字空间
- (转)mybatis热部署加载*Mapper.xml文件,手动刷新*Mapper.xml文件
- 利用java求积分(定积分和无穷限积分)
- spring的bean范围_Spring Bean范围
- 子模板继承父模板示例_模板设计模式示例
- docker 部署java_使用Java EE 7,WildFly和Docker进行持续部署–(第1部分)
- asyncexec_如何安全使用SWT的显示器asyncExec
- Mockito匹配器优先
- java ee maven_针对新手的Java EE7和Maven项目–第7部分