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 。

相关文章 :

  • 使用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

openid saml2

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

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

相关文章

小不咖啡——自己写着玩的网站

请戳: www.xiao-bu.com 性能欠佳,bug很多,切勿见怪。。。 大部分时间在画图。。。一口老血喷在屏幕上。。。。 转载于:https://www.cnblogs.com/hydor/p/4561184.html

apache配置 index.php,修改apache配置文件去除thinkphp url中的index.php

例如你的原路径是 http://localhost/test/index.php/index/add那么现在的地址是 http://localhost/test/index/add如何去掉index.php呢?1、httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置#LoadModule rewrite_module modules/mod_rewrite.so把前面的警号…

一次线上ctf的网络协议分析

拿到的是两个东西 我们先看secret.log 很多乱码但是有一串16进制数 把这段复制下来,我们放到HxD看 点击新建,直接粘贴 发现不对,观察头部,发现少了一个数(5) 因为加上5就是一个rar头部 即 导出来&…

Bash脚本教程之算数运算

目录 算术表达式 数值的进制 位运算 逻辑运算 赋值运算 求值运算 expr 命令 let 命令 算术表达式 ((...))语法可以进行整

Hibernate Collection Cache如何工作

介绍 之前,我描述了Hibernate用于存储实体的二级缓存条目结构。 除了实体,Hibernate还可以存储实体关联,本文将阐明集合缓存的内部工作原理。 领域模型 对于即将进行的测试,我们将使用以下实体模型: 存储库具有一组C…

linux php 版本切换,linux更换PHP版本,多个PHP版本切换

各位兄弟姐妹,linux下怎么进行更换PHP版本,切换不同的PHP版本呢?比如说我现在的PHP版本是5.3 我想要换成5.5 之后我可以在这两个版本间切换?我现在的情况是centos6.5 php版本是5.3 想要升级到5.5回复内容:各位兄弟姐妹…

配置防火墙打开 80 端口

1.打开iptables vi /etc/sysconfig/iptables 2.增加一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 3.重启防火墙 service iptables restart转载于:https://www.cnblogs.com/lanhuan/p/4561293.html

JSFuck奇葩的js编码

以前对黑客很崇拜,黑客的世界无比精彩。最近为了炫耀,想起了这段特殊的代码。 [][([外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1GiImO3K-1631794288635)((![][])][![]]([外链图片转存失败,源站可能有防盗链机制,建议将图片…

Bash脚本教程之行操作

目录 简介 光标移动 清除屏幕 编辑操作 自动补全 操作历史 基本用法 history 命令

安卓学习 intent

其实学习了好几个星期了,是看老罗的视频,但进度太慢 今天 换了一本书 Intent 切换页面 啊啊啊啊 CompentName compnew CompentName(MainActivity.this,SecondActivity.class); Intent intent new Intent(); intent.compentName(comp); startActivity(i…

Bash脚本教程之目录堆栈

目录 cd - pushd,popd dirs 命令 为了方便用户在不同目录之间切换,Bash 提供了目录堆栈功能。 cd - Bash 可以记忆用户进入过的目录。默认情况下,只记忆前一次所在的目录,cd -命令可以返回前一次的目录。 # 当前目录是 /path/to/foo $ cd bar# 重新回到 /path/to/foo…

php 映射程序,windows磁盘映射技术分享

磁盘映射就是将本地某个文件夹或者局域网中的某个计算机的某个目录映射成本地驱动器号,就是说把本地的文件夹或者网络上其他机器的共享的文件夹映射成为自己机器上的一个磁盘,这样可以可以更方便的打开相应的文档,下面作者分享几个在windows下…

模拟服务器和客户端交互的python脚本

脚本: 模拟服务器和客户端交互: import argparse, socket from datetime import datetimeIP "127.0.0.1" CODING "utf8" MAX_BYTES 65535 # UDP最大长度def server(port): # port:端口号sock socket.socket(socke…

Jersey WebResource –标头不附加

昨天我在使用Jersey WebResource类进行HTTP调用时遇到了一个奇怪的问题:似乎我设置的标头在执行HTTP调用时被忽略了。 提前阅读。 我试图实现的目标是调用REST Api从我们的应用程序中获取一些数据。 为此,我使用了Jersey客户端 ,显然&#x…

动态规划 dynamic programming

动态规划dynamic programming June,7, 2015 作者:swanGooseMan 出处:http://www.cnblogs.com/swanGooseMan/p/4556588.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 &…

Bash脚本教程之脚本入门

目录 Shebang 行 执行权限和路径 env 命令 注释 脚本参数 shift 命令 getopts 命令 配置项参数终止符 --

php m pi 2,PHP学习(2)

PHP 的自定义常量自定义常量需要我们使用define()函数去定义,用法为define(name,value,case_insensitive)其中case_insensitive为可选参数,规定常量是否区分大小写,值为true(不敏感)或者false(默认,敏感)例子:define(&…

Bash脚本教程之read命令

目录 用法 参数 IFS 变量 用法 有时,脚本需要在执行过程中,由用户提供一部分数据,这时可以使用read命令。它将用户的输入存入一个变量,方便后面的代码使用。用户按下回车键,就表示输入结束。 read命令的格式如下。 read [-options] [variable...] 上面语法中,optio…

利用Vulnhub复现漏洞 - JBoss JMXInvokerServlet 反序列化漏洞

JBoss JMXInvokerServlet 反序列化漏洞 Vulnhub官方复现教程漏洞原理 复现过程启动环境端口设置浏览器设置BurpSuit设置 复现漏洞序列化数据生成发送POCEXP Vulnhub官方复现教程 https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/ 漏洞原理 这…

linux mysql 安装启动失败,Linux服务器一键安装包的mysql启动失败

Linux服务器上用一键安装包配置的环境,启动mysql失败,提示如下错误信息:排查方法:1、查看服务器的磁盘空间是否正常,登录服务器执行命令df -h查看磁盘空间,如果服务器的系统盘或者数据盘空间满了&#xff0…