分析公司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