比较SSO协议: WS-Fed, SAML, and OAuth
真实比喻
在我们获得技术之前,让我们用完全非技术性的东西来解决这个问题。作为工程师,我们非常注重将事情分解为组件和流程。这有助于我们了解事情,以便我们可以排除故障或构建复杂的系统。当你去机场登机时,你的登录协议,身份验证协议和令牌类型是什么?这三个组件将成为整个博客的焦点。我将如何定义它们:
- 什么是登录协议(Sign-in protocol)?去了其中一个值机亭,然后打印我的登机牌,然后通过TSA线,然后去登机口,最后登上飞机。我希望我能以这种方式与机场互动并按顺序执行这些动作,否则,我将无法登机。
- 什么是身份验证协议(Authentication protocol)?虽然我的登机牌是其中的一部分,但我必须提供身份证或护照来证明我是谁。
- 什么是令牌类型(Token Type)?我的登机牌是我登机的令牌。
现在,当我们谈论WS-Fed或SAML时,总是问自己同样的问题:什么是登录协议,什么是身份验证协议,什么是令牌类型。无论您是否理解这些概念,询问这些问题都会产生影响。
1 WS-FED
WS-Fed是一种登录协议,用简单的英语表示当你试图获得访问权限的应用程序将你重定向到ADFS服务器时,它必须以特定的方式(WS-Fed)处理。
A 登录协议
典型的请求
- Wa = signin1.0:这告诉ADFS服务器为用户调用登录。
- Wtrealm:这告诉ADFS我想要的应用程序是什么。这必须与ADFS中列出的其中一个信赖方信任的标识符相匹配。
- Wctx:这是应用程序希望在用户进行身份验证后发送回的一些会话数据。
- wct:这是我尝试访问应用程序的确切时间。
B 身份认证协议
略。。。
C 令牌类型
最后,在输入我的凭据后,ADFS让我发送回原始应用程序的令牌类型是什么:当使用WS-Fed登录协议时,ADFS将始终向您的浏览器发出SAML 1.1令牌然后,您将自动POST回应用程序
2 SAML
SAML是登录协议和令牌类型。关于登录协议,SAML和WS-Fed实现了同样的目的,但处理方式却截然不同。
A 登录协议
示例
让我们分解这些参数:
- SAMLRequest:这实际上是一个Base64编码的XML文档。您实际上可以将此值减去SAMLRequest =粘贴到此处以对其进行解码并以纯文本格式查看@https://idp.ssocircle.com/sso/toolbox/samlDecode.jsp
- RelayState:在我针对ADFS进行身份验证后,应用程序希望将其发送回的会话数据。
- SigAlg:使用哪种签名算法对请求进行签名。
- 签名:上述请求的数字签名。
B 身份认证协议
略。。
C 令牌类型
ADFS将始终为使用SAML登录协议配置的应用程序发出SAML 2.0令牌。
3 OAuth
虽然有一些关于OAuth是登录协议或身份验证协议的争论,虽然它确实在不断发展,但在ADFS 2012 R2领域,OAuth是另一种登录协议。
A 登录协议
示例
让我们分解这些参数:
- response_type: 告诉我想要执行OAuth并获得授权代码的ADFS服务器。
- client_id:我想要访问的应用程序的ID。
- 资源:我正在尝试访问的应用程序的URL / URI。
- redirect_uri:告诉ADFS将授权代码发回的人
B 身份认证协议
C 令牌类型
原文链接:https://blogs.technet.microsoft.com/askpfeplat/2014/11/02/adfs-deep-dive-comparing-ws-fed-saml-and-oauth/
比较SSO协议: WS-Fed, SAML, and OAuth的更多相关文章
- SAML和OAuth2这两种SSO协议的区别
目录 简介 SAML SAML的缺点 OAuth2 OAuth2的缺点 两者的对比 CAS简介 简介 SSO是单点登录的简称,常用的SSO的协议有两种,分别是SAML和OAuth2.本文将会介绍两种协 ...
- SSO & Single Sign On
SSO & Single Sign On 单点登录 https://en.wikipedia.org/wiki/Single_sign-on https://cloud.google.com/ ...
- SAML - SSO(转)
http://baike.baidu.com/view/758527.htm?fr=aladdin SAML即安全断言标记语言,英文全称是Security Assertion Markup Langu ...
- 在wildfly中使用SAML协议连接keycloak
目录 简介 OpenID Connect和SAML SAML的工作流程 在keycloak中使用SAML 准备wildfy和应用程序 简介 我们知道SSO的两个常用的协议分别是SAML和OpenID ...
- OAuth 2.0 / RCF6749 协议解读
OAuth是第三方应用授权的开放标准,目前版本是2.0版,以下将要介绍的内容和概念主要来源于该版本.恐篇幅太长,OAuth 的诞生背景就不在这里赘述了,可参考 RFC 6749 . 四种角色定义: R ...
- OpenID Connect:OAuth 2.0协议之上的简单身份层
OpenID Connect是什么?OpenID Connect(目前版本是1.0)是OAuth 2.0协议(可参考本人此篇:OAuth 2.0 / RCF6749 协议解读)之上的简单身份层,用 A ...
- 转 OAuth 2.0授权协议详解
http://www.jb51.net/article/54948.htm 作者:阮一峰 字体:[增加 减小] 类型:转载 时间:2014-09-10我要评论 这篇文章主要介绍了OAuth 2.0授权 ...
- Java项目接入sso单点登录
最近在落地cat(java开发的一款开源监控系统)接入公司的内部项目,其中有项需求是接入公司的sso单点登录系统.研究了公司之前java项目接入sso系统,大部分是采用spring框架,然后依赖spr ...
- SSO单点登录和CAS
一.单点登录流程 =====客户端====== 1.拦截客户端的请求判断是否有局部的session 2.1如果有局部的session,放行请求. 2.2如果没有局部session 2.2.1请求中有携 ...
随机推荐
- Python 操作Sonqube API 获取检测结果并打印
1.需求:每次Sonqube检查完毕后,需要登陆才能看到结果无法通过Jenkins发布后直接看到bug 及漏洞数量. 2.demo:发布后,可以将该项目的检测结果简单打印出来显示,后面还可以集成钉钉发 ...
- 面试官:讲讲mysql表设计要注意啥
内容时参考一个博主的,内容写的很好,就忍不住拿过来了,如遇到,请见谅 参考连接:https://www.cnblogs.com/rjzheng/p/11174714.html
- AtCoder NIKKEI Programming Contest 2019 C. Different Strokes (贪心)
题目链接:https://nikkei2019-qual.contest.atcoder.jp/tasks/nikkei2019_qual_C 题意:给出 n 种食物,Takahashi 吃下获得 a ...
- SCSS 教程
https://www.jianshu.com/p/a99764ff3c41 https://www.sass.hk/guide/ 1. 使用变量; sass让人们受益的一个重要特性就是它为css引入 ...
- $noip2018$游记+考后总结
游记部分 Day-5 - Day0 敲了敲模板,打了几场模拟赛,都在颓废,其他什么都没做 Day1 早上继续写模板,水了会QQ,其他什么都没做 中午试图背模板,没成功(其实下午才发现敲的模板一个没用上 ...
- P2701 [USACO5.3]巨大的牛棚Big Barn
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 模糊查询(附上源码和jquery-1.12.1.js,jquery-ui.js,jquery-ui.css)
直接上源码: <!doctype html> <html lang="en"> <head> <meta charset="ut ...
- ICEM-三棱锥的一种画法(2D转3D)
原视频下载地址:https://yunpan.cn/cqwC3eZHn5AvJ 访问密码 9456
- [RK3399] /bin/sh: 1: lz4c: not found
CPU:RK3399 系统:Android 8.1 第一次在 RK3399 编译 Android 8.1 的系统,编译内核过程中报错如下: /bin/sh: : lz4c: not found mak ...
- JavaScript DOM的一些扩展
对DOM的扩展主要是:Selectors API和HTML5. Selectors API Selectors API是由W3C发起指定的一个标准,致力于让浏览器原生支持CSS查询.Selectors ...