身份反模式:联邦筒仓和意大利面条身份

分析公司Quocirca的最新研究证实,现在许多企业的外部用户比内部用户更多:在欧洲,有58%的企业直接与其他企业和/或消费者的用户进行交易; 仅在英国,这一数字就达到了65%。 如果您回顾历史,当今大多数企业都是通过收购,合并和合伙制发展的。 根据Dealogic的数据,仅在美国,2013年前9个月的并购交易总额达到了8651亿美元。 与去年同期相比增长了39%,是自2008年以来的九个月最高水平。

这对企业身份管理意味着什么?


您将必须使用多个异构用户存储-身份验证协议-旧式系统等等。

SAML,OpenID,OpenID Connect,WS-Federation均支持身份联合-跨域身份验证。 但是,我们是否总能期望联盟用例中的所有各方都支持SAML,OpenID或OpenID Connect? 我们今天看到的大多数联邦系统都处于孤岛中。 它可以是SAML联合的孤岛,OpenID Connect联合的孤岛或OpenID联合的孤岛。

屏幕截图2014年10月3日下午1.29.52

屏幕截图2014年10月3日下午1.47.41
即使在给定的联合仓库中,您如何随着越来越多的服务提供商和身份提供商进行扩展? 每个服务提供者都必须信任每个身份提供者,这会导致进入Spaghetti Identity反模式。

屏幕截图2014年10月3日下午1.41.13

Federation SilosSpaghetti Identity是通过Identity Bus模式直接解决的两个反模式

使用身份总线 ,给定的服务提供者不会与给定的身份提供者耦合,也不会与给定的联合协议耦合。 用户应该能够通过仅提供OpenID Connect令牌的身份提供者登录仅接受SAML 2.0令牌的服务提供者。 身份总线充当中间人,其在异构身份协议之间中介和转换身份令牌。

让我们看看身份总线模式的一些好处。

  1. 引进新的服务提供商非常容易。 您只需要在身份总线上注册服务提供商,然后从那里选择信任的身份提供商。 无需将服务提供商配置添加到每个身份提供商。
  2. 删除现有服务提供商非常容易。 您只需要从身份总线中删除服务提供商即可。 无需从每个身份提供者中删除服务提供者。
  3. 引入新的身份提供者非常容易。 您只需要在身份总线上注册身份提供者。 任何服务提供商均可使用。
  4. 删除现有的身份提供者非常容易。 您只需要从身份总线中删除身份提供者。
  5. 强制执行新的身份验证协议非常容易。 假设您需要同时使用用户名/密码和双重安全性(基于SMS的身份验证)对用户进行身份验证–您只需要将该功能添加到身份总线,然后从此处选择针对给定服务提供商的身份验证协议集即可服务提供商注册的时间。 每个服务提供商可以在身份总线上选择其希望如何认证用户。
  6. 索赔转换。 您的服务提供商可能会从http://sp1.org/claims/email属性ID中读取用户的电子邮件地址,但用户的身份提供商可能会将其作为http://idp1.org/claims/emai发送。 身份总线可以将其从身份提供者收到的声明转换为服务提供者期望的格式。
  7. 角色映射。 您的服务提供商需要在用户登录后授权他们。用户在身份提供商处可以执行的操作与同一用户在服务提供商处可以执行的操作不同。 来自身份提供者的用户角色定义了他可以在身份提供者处执行的操作。 服务提供者的角色定义了用户可以在服务提供者处执行的操作。 身份总线能够将身份提供者的角色映射到服务提供者的角色。 例如,用户可以在SAML响应中从其身份提供者带来idp-admin角色,然后身份总线将找到与此映射的服务提供者角色相对应,例如sp-admin,并将其添加到SAML响应中,然后返回从身份总线连接到服务提供商。
  8. 即时调配。 由于身份总线位于所有身份事务的中间,因此它可以将所有外部用户身份提供给内部用户存储。
  9. 集中监控和审计。
  10. 引入新的联合协议所需的更改最少。 如果您具有支持专有联合协议的服务提供商或身份提供商,则只需将该功能添加到身份总线。 无需在每个身份提供商或服务提供商处实现它。

WSO2 Identity Server是一个开源的身份和权利管理服务器,它支持SAML 2.0,OpenID,OAuth 2.0,OpenID Connect,XACML 3.0,SCIM,WS-Federation(被动)和许多其他身份联合模式。 下图显示了WSO2 Identity Server的高层体系结构-支持Identity Bus模式。

is-architecture-新页面(1)

翻译自: https://www.javacodegeeks.com/2014/10/identity-anti-patterns-federation-silos-and-spaghetti-identity.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多个气泡向上冒出!

这里展示白色半透明气泡如下图:实际是动态 思路:HTML里只需要一个CANVAS元素,Javascript里操作canvas 1、给canvas里绘制背景图片 2、在绘制半径为0-10px的圆形,x坐标屏幕水平随机,y所标竖直大于屏幕高度。 圆形背景…

分享25个优秀的网站底部设计案例

相对于网站头部来说,关注网站底部设计的人很少。我们平常也能碰到有些网站的底部设计得很漂亮,给网站的呈现来一个完美的结尾。这篇文章收集了25个优秀的网站底部设计案例,一起欣赏。 me & oli La Bubbly Poogan’s Porch GiftRocket Lin…

wbepack中output.filename和output.chunkFilename

对于webpack配置中filename和chunkFilename在使用中有些不懂的地方,研究之后记录如下。 filename: string | function 此选项决定了每个输出 bundle 的名称。这些 bundle 将写入到 output.path 选项指定的目录下。 对于单个入口起点,filename 会是一个…

OP AMP - 反馈理论在运放中的应用

实际应用的系统绝大多数是闭环的,运放更是如此。 关于反馈理论,需要了解极点,零点,波特图,以及如何用相位裕度,幅值裕度 确定系统的稳定性,这里不作赘述 ,不懂的部分可以到网上搜点…

阅读react-redux源码 - 零

阅读react-redux源码 - 零阅读react-redux源码 - 一阅读react-redux源码(二) - createConnect、match函数的实现 react的技术栈一定会遇到redux,而在react中使用redux需要使用react-redux,那么react-redux是怎么包装redux已适用react的呢? …

CORS(跨域资源共享)

CORS(跨域资源共享)使用额外的HTTP头部来告诉浏览器,允许运行在origin(domain)上的Web应用访问来自不同源服务器上的指定资源。 浏览器访问一个web应用,这个web应用会发很多的跨域请求,例如加载不同源的JS/CSS脚本&am…

[转]jQuery设计思想

转自:http://kb.cnblogs.com/page/109875/ jQuery是目前使用最广泛的javascript函数库。 据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库。微软公司甚至把jQuery作为他们的官方库。 对于网页开发者来说&#xff…

敏捷开发绩效管理之四:为团队设立外部绩效目标(目标管理,外向型绩效)...

这是敏捷开发绩效管理的第四篇。(之一,之二,之三,之四,之五,之六,之七)最近在看德鲁克的书,发现其中很明确地写着“企业的绩效只存在于外部,而企业内部只有成…

【K8S in Action】服务:让客户端发现pod 并与之通信(2)

一 通过Ingress暴露服务 Ingress (名词) 一一进入或进入的行为;进入的权利;进入的手段或地点;入口。一个重要的原因是每个 LoadBalancer 服务都需要自己的负载均衡器, 以及 独有的公有 IP 地址, 而 Ingres…

一个罐子统治一切:Apache TomEE + Shrinkwrap == JavaEE引导

警告:我不是Spring Boot的专家。 我发现很多事情对此非常有趣,并且当然可以真正改善您的日常工作。 而且,我对Spring Boot没有任何反对,也没有开发或使用它的人。 但是我认为社区高估了该产品。 一年前,我开始收到很多…

iview-admin框架运行步骤

第一步: 前往github下载整个iview-admin框架的全部源码 github地址: https://github.com/iview/iview-admin 第二步: 点击Clone or download绿色按钮。下载整个压缩包 第三步: 解压至D盘,在根目录中按 1、前往github下…

.net 垃圾回收学习[How To: Use CLR Profiler][翻译学习]【2】

http://msdn.microsoft.com/zh-cn/library/ms979205 注意:内容可能已经过期了。 注意:CLR Profiler最新版本:http://www.microsoft.com/download/en/details.aspx?id16273 Identifying Common Garbage Collection Issues 可以使用CLR Profil…

JavaOne 2014:会议与合同利益冲突

杜克街咖啡馆,工程师可以在街上进行走廊交谈 。 与签约不兼容 我的第11届JavaOne会议(2004年至2014年为11 10 1)非常出色。 值得参加此活动并结识社区中所有参与的人。 现在,这里是绅士的,但 。 除了经济上的明显优…

JQuery(三)-- AJAX的深入理解以及JQuery的使用

HTTP HTTP http: 超文本传输协议。特点: 简单、快速、灵活、无状态、无连接 URL: 统一资源定位符。 组成:协议名://主机IP:端口号/项目资源地址?传递参数的键值对#锚点 ①ip地址在同一个网段是唯一的。如果是在公…

JSF的工作方式和调试方式–可以使用polyglot吗?

JSF不是我们通常认为的那样。 这也是一个调试起来可能有些棘手的框架,尤其是在初次遇到时。 在这篇文章中,让我们继续探讨为什么会出现这种情况,并提供一些JSF调试技术。 我们将讨论以下主题: JSF不是我们经常想到的 JSF调试的难…

React组件实现越级传递属性

如果有这样一个结构:三级嵌套,分别是:一级父组件、二级子组件、三级孙子组件,且前者包含后者,结构如图: 如果把一个属性,比如color,从一级传递给三级,一般做法是使用prop…

尝试Office 2003 VSTO的开发、部署

背景:一年前,某项目需要使用到Excel进行数据录入,考虑到很多用户还是使用XPOffice 2003,所以开发的时候直接使用Excel 2003版本进行VBA开发。也许很多人都会说,Win10都出了,微软的Office都要免费了&#xf…

初级开发人员在编写单元测试时常犯的错误

自从我编写第一个单元测试以来已经有10年了。 从那时起,我不记得我已经编写了成千上万的单元测试。 老实说,我在源代码和测试代码之间没有任何区别。 对我来说是同一回事。 测试代码是源代码的一部分。 在过去的3-4年中,我与多个开发团队合作…

OpenDaylight开发hello-world项目之开发工具安装

OpenDaylight开发hello-world项目之开发环境搭建 OpenDaylight开发hello-world项目之开发工具安装 OpenDaylight开发hello-world项目之代码框架搭建 在ODL开发之前,要安装好开发环境。ODL使用java语言开发,所以要安装好java。ODL的代码框架是有maven这个…

Google Chrome 扩展程序开发

根据公司的规定,每月八小时,弹性工作制。所以大家平时来的不太准时,如果有事,下班也就早些回去了。所以一个月下来工作时间可能不够,但是公司的考勤日历是这样的: 除了请假和法定节假日外,其他样…