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

分析公司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,一经查实,立即删除!

相关文章

OpenSSL命令

Openssl Windows下编译过程1、下载openssl源代码以及相应的vc工程2、下载perl工具,如:ActivePerl-5.8.8.820-MSWin32-x86-274739.msi3、安装ActivePerl4、打开控制台程序,在openssl解压后的目录下执行Perl Configure VC-WIN32命令&#xff0c…

修改webpack的publicPath为动态设置以适配公司活动平台

背景: 我们需要将React开发的应用部署到一个活动搭建平台上,这意味我们只需要上传源码,没有搭建服务器的环节,没有配置Nginx的环节。具体步骤就是在该平台新建一个活动,然后将自己的源码传到这个活动下,然…

多个气泡向上冒出!

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

注入域对象而不是基础结构组件

依赖注入是Java(以及许多其他编程语言)中广泛使用的软件设计模式,用于实现控制反转 。 它提高了可重用性,可测试性,可维护性,并有助于构建松耦合的组件。 如今,依赖注入是将Java对象连接在一起的…

分享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 会是一个…

页面添加锚点后如何点击不改变URL?

直接奔主题&#xff0c;前端简单地锚点实现方法大家都会&#xff0c;无非就是在把 a 标签的 href 写成想要跳到的元素的id &#xff0c;比如点击 <a href"#box"></a> 页面就会自动滚动到 <div id"box"></div> 元素的位置。 那么这…

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

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

具有Spring Boot和Java配置的Spring Batch教程

我一直在努力将Podcastpedia.org的一些批处理作业迁移到Spring Batch。 以前&#xff0c;这些工作是以我自己的方式开发的&#xff0c;我认为现在是时候使用一种更“标准化”的方法了。 因为我以前从未在Java配置中使用过Spring&#xff0c;所以我认为通过在Java中配置Spring B…

阅读react-redux源码 - 零

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

kali linux 开启配置ssh服务

1. 一、配置SSH参数 修改sshd_config文件&#xff0c;命令为&#xff1a;vi /etc/ssh/sshd_config将#PasswordAuthentication no的注释去掉&#xff0c;并且将NO修改为YES //kali中默认是yes2. 将PermitRootLogin without-password修改为PermitRootLogin yes3. 然后&#xf…

CORS(跨域资源共享)

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

[转]jQuery设计思想

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

Java转换难题者,不适合工作(或面试)

一个非常艰苦的面试问题可能是这样的&#xff1a; int i Integer.MAX_VALUE; i 0.0f; int j i; System.out.println(j Integer.MAX_VALUE); // true为什么打印出正确的文字&#xff1f; 乍一看&#xff0c;答案似乎很明显&#xff0c;直到您意识到如果长时间更改int&…

问题:jquery给标签添加事件,但标签还未加载会成功吗

之后研究解决转载于:https://www.cnblogs.com/sz-toosimple/p/11170912.html

Access-Ctrol-Allow-Headers:*兼容问题导致的跨域失败

现象&#xff1a; 通过抓包看到在部分客户端上跨域的非简单请求只发送一个预检的OPTIONS请求&#xff0c;之后的真实请求并没有发送。 出现问题的环境&#xff1a; 部分IOS低版本系统。 windows系统微信内必现&#xff08;2020-04-29&#xff09;。 分析 通过上面条件OPT…

在github上托管Maven存储库(包含源代码和javadoc)

如何通过maven将小型开源库提供给其他开发人员&#xff1f; 一种方法是将其部署在Maven Central Repository上 。 我想要做的是将其部署到github &#xff0c;因此我可以自由地对其进行修改。 这篇文章将告诉您如何做到这一点。 我将工件部署到github的典型方法是使用mvn depl…

关于移动端页面强制竖屏

最近工作中写了一个移动端的页面&#xff0c;本来是没什么的&#xff0c;但是有一个要求感觉很奇怪&#xff0c;从前也没有遇到过&#xff0c;就是我写的这个页面需要放在一个APP中&#xff0c;但是这个APP是横屏的&#xff0c;打开这个页面的webview也是横屏的&#xff08;最新…

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

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

面向对象程序设计-C++ Default constructor Copy constructor Destructor Operator Overloading【第九次上课笔记】...

先上笔记内容吧&#xff1a; 这次上课的内容有关 构造函数析构函数运算符重载return * this内容很细&#xff0c;大家好好回顾笔记再照应程序复习吧 :) #include <iostream>using namespace std;class Integer { public:int i;int geti () const {return this->i;}vo…