openid saml2_单一登录云:SAML和OpenId

openid saml2

当访问不同组织拥有的不同应用程序时,每次从一个应用程序转到另一个应用程序时都必须进行身份验证。 这不仅耗时,而且您还必须记住多个经常丢失的密码。

单一登录是一次认证的能力,并且能够使用已认证的身份在应用程序之间无缝切换。

在Intranet内或在一个开发组织控制下的应用程序之间,可以通过生成会话ID并使用Cookie传递会话ID来轻松实现Web应用程序的单点登录。 但是,这种解决方案是专有的,如果您需要离开Intranet并访问云上的其他应用程序,则该解决方案将不起作用。 为了与云上的应用程序进行互操作,需要基于标准的解决方案。

一个相关的概念和好处是联盟身份。 组织可以同意一个通用名称来指代用户。 用户及其属性只需在一个地方创建,其他人可以参考此信息。

在此博客中,我们简要检查了两种可用于在云上进行单点登录的流行协议:SAML和OpenId。

OpenId

OpenId解决的问题是,作为用户,您不必维护和向访问的每个站点提供密码。

您使用一个称为OpenId提供程序的提供程序来维护密码或其他身份验证凭据。

您访问的网站或应用程序需要您的身份证明,因此需要OpenId提供程序来验证您所声称的身份。 这就是所谓的依赖方。

OpenId协议的基础是:

1.您访问Web应用程序(依赖方)并输入OpenId

2.根据您的OpenId,依赖方确定您的OpenId提供者是谁。

3.依赖方将您的请求重定向到OpenId提供程序。

4.如果您已通过身份验证,则将跳过此步骤。

OpenId提供程序通过询问密码或其他信息来对您进行身份验证。 提供者警告您,依赖方正在请求有关您的信息。

5.该请求被重定向回依赖方,在此向您显示您尝试访问的URL。

该协议不要求提供者或依赖方在任何地方进行注册。 它使用简单的HTTP请求和响应。 协议消息是纯文本键值对。 该协议可与现代的“ Web20” AJAX风格的应用程序很好地配合使用。

OpenId协议起源于面向消费者的网站,例如Google,Twitter,Facebook等,并且在该协议中很流行。

在OpenId规范中描述了OpenId规范
openid4java中有一个OpenId的Java实现

SAML(安全性声明标记语言)

SAML是基于XML的协议,可实现基于Web的身份验证,授权和单点登录。

SAML包括一个依赖方请求一个声明,以及一个SAML提供者响应该声明。

断言示例包括:

  • 身份验证声明:在时间t使用某某方法对该用户进行了身份验证。
  • 属性声明:此用户具有标题超级管理者。
  • 授权声明:该用户有权删除文件xyz.doc。

典型的SAML交互如下:

1.用户尝试访问作为依赖方的URL或Web应用程序
2.依赖方创建一个SAML身份验证请求。
3.依赖方将用户浏览器重定向到SAML提供程序。 该请求中嵌入了SAML身份验证请求。 4. SAML提供程序评估SAML请求并验证用户身份。 5. SAML提供将SAML身份验证响应返回给用户浏览器。 6.浏览器将SAML响应转发回依赖方。 7.依赖方验证并解释SAML响应。 8.如果响应表明身份验证成功,则将用户重定向到他最初尝试访问的URL。

SAML具有配置文件的概念。 交互因配置文件而异。 上面的交互是Web SSO配置文件。

SAML的起源更多于企业软件,Web服务,B2B通信中,并且可以追溯到2000年代初期XML非常流行的时候。 实际上,SAML1.x仅具有SOAP绑定。

SAML规范位于SAML规范中
OpenSAML上有一个SAML实现

我应该使用哪种协议?

OpenId是一个更简单的协议。 但是拥有SAML具有更多功能。

OpenId支持发现OpenId提供程序。 使用SAML通常需要昂贵的SAML项目。

OpenId仅支持服务提供商发起的SSO。 您转到服务提供商的网站,他们需要身份验证。 他们开始与OpenId提供程序进行对话。 SAML还可以支持身份提供商发起的SSO。 您已通过公司门户的身份验证。 贵公司有一个商务旅行合作伙伴旅行网站。 使用SAML,您可以从公司的门户(SAML提供者)转到合作伙伴网站(依赖方),而无需重新认证。

SAML比OpenId更长。 SAML在企业中更为流行,而OpenId在面向消费者的应用程序中更为流行。

OpenId和SAML都依赖外部传输层安全协议(例如SSL)来保证协议消息的安全。

如果您要启动一个新网站并希望接受来自其他流行网站(例如google或twitter)的用户,则可以考虑使用OpenId。 但是,如果您是一家企业,并且希望经过身份验证的用户无需重新身份验证即可访问合作伙伴站点,则可能需要SAML。

总之,SAML是一种功能丰富的协议,在企业中更为流行。 OpenId是更简单的协议,但有一些限制。

参考: 云的单一登录: The Khangaonkar Report博客上的JCG合作伙伴 Manoj Khangaonkar的SAML和OpenId

相关文章 :


翻译自: https://www.javacodegeeks.com/2011/12/single-sign-on-for-cloud-saml-openid.html

openid saml2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值