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

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

在Intranet内或在一个开发组织控制下的应用程序之间,可以通过生成一个sessionid并使用cookie传递它来轻松实现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 。

相关文章 :

  • 使用Spring Security保护GWT应用程序
  • 在云中开发和测试
  • 使用Spring Security 3.1保护RESTful Web服务,第3部分
  • Apache Shiro:简化应用程序安全性
  • 使用Spring Security 3.1的RESTful服务进行基本身份验证和摘要身份验证,第6部分
  • 2011年:软件安全性和质量状况

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

单一登录云:SAML和OpenId相关推荐

  1. openid saml2_单一登录云:SAML和OpenId

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

  2. 文华软件登录显示请选择服务器,文华财经随身行要登录云服务器

    文华财经随身行要登录云服务器 内容精选 换一换 数据盘可以在购买云服务器的时候购买,由系统自动挂载给云服务器.也可以在购买了云服务器之后,单独购买云硬盘并挂载给云服务器.对于Windows云服务器而言 ...

  3. 虚拟机登服务器,用虚拟机登录云服务器

    用虚拟机登录云服务器 内容精选 换一换 只有运行中的云服务器才允许用户登录.Windows操作系统用户名"Administrator".忘记密码,请先通过"重置密码&qu ...

  4. 文华软件登录显示请选择服务器,文华财经提示先登录云服务器

    文华财经提示先登录云服务器 内容精选 换一换 当云服务器网络异常.防火墙未放行本地远程桌面端口.云服务器CPU负载过高等场景均可能导致云服务器无法正常登录.当您的云服务器无法远程登录时,我们建议您首先 ...

  5. 密钥文件登录服务器,密钥文件登录云服务器

    密钥文件登录云服务器 内容精选 换一换 远程桌面协议(Remote Desktop Protocol,RDP),是微软提供的多通道的远程登录协议.本节为您介绍如何使用RDP文件远程登录Windows弹 ...

  6. java单终端登陆_配置终端服务单一登录

    配置终端服务单一登录 配置终端服务单一登录 单一登录是一种身份验证方法,允许具有域帐户的用户使用密码或智能卡登录一次,然后,不再要求其提供凭据即可访问远程服务器. 若要在终端服务中实现单一登录功能,请 ...

  7. asp.net单一登录

    asp.net 使用 Application 限制单一登录 原理:用户登录后系统会分配一个与用户唯一对应的SessionID,将当前用户ID与其SessionID对应保存在Application中,一 ...

  8. MobaXterm中修改服务器ip,如何使用mobaxterm登录云服务器

    如何使用mobaxterm登录云服务器 内容精选 换一换 本节介绍如何查看云服务器的mac地址.云服务器的mac地址不支持修改.登录Linux云服务器.执行以下命令,查看云服务器的mac地址.ifco ...

  9. java单一登录_java实现单一登录 踢人效果

    1.建一个session监听类 public class SessionListener implements HttpSessionListener{ public static HashMap s ...

最新文章

  1. 百度Apollo发布海量自动驾驶数据集,还有两项重磅挑战赛
  2. p2p网络测试工具_自媒体 IPFS官方升级DHT方案,提升网络整体性能
  3. 详细讲解 移植Uboot到ARMer9开发系统上
  4. html5列表去掉符号,从Python字符串中删除不在允许列表中的HTML标记
  5. linux shell sed d删除指定行并更换分隔符为#
  6. 关于PostMessage后台发送组合键
  7. .NET 3.5 - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
  8. 高等数学下-赵立军-北京大学出版社-题解-练习10.5
  9. javascript中substring()、substr()、slice()的区别
  10. 高中生住校好还是走读好?为什么?
  11. 2010年年终“飞”的总结
  12. Nginx学习日记第五篇 -- upstream及fastcgi
  13. 【优化算法】自治群体粒子群优化算法(AGPSO)【含Matlab源码 1450期】
  14. Matlab循环语句
  15. 计算机 高新 会计电算化,会计软件应用(用友软件系列)用友通T3试题汇编(高级会计电算化员级)...
  16. 亲手制作:超级DOS工具+Vista+加强版WindowsXP Lite5.8集成
  17. 大数据框架之Zookeeper详解
  18. 面试的一般流程及其常见的问题
  19. Golang 多版本管理神器 gvm
  20. 计算机维修志愿活动策划书,“义务维修,温暖校园”志愿服务活动策划书

热门文章

  1. java中无限大_Java 9中的无限集
  2. cuba.platform_CUBA Platform 6.3的新增功能
  3. 嵌入式java基准测试_Java正则表达式库基准测试– 2015年
  4. primefaces_PrimeFaces扩展中的全新JSF组件
  5. 重命名Jakarta EE的Java EE规范
  6. 如何在STS中创建Spring Boot项目
  7. 快速提示:使用Chrome开发工具调试GWT应用程序
  8. SpringBoot AutoConfiguration魔术如何工作?
  9. 带有JSF,Servlet和CDI的DynamicReports和JasperReports
  10. 构建忽略测试_分类测试以减少构建时间