The Difference Between SAML 2.0 and OAuth 2.0

SAML (Security Assertion Mark-up Language) is an umbrella standard that covers federation, identity management and single sign-on (SSO). In contrast, the OAuth (Open Authorisation) is a standard for, colour me not surprised, authorisation of resources. Unlike SAML, it doesn’t deal with authentication.

SAML(安全断言标记语言)是一个涵盖联邦认证(federation)/身份管理(identity management)/单点登录(SSO)的总体标准。 相比之下,OAuth(开放授权)是一种标准,对我来说并不奇怪,资源授权。 与SAML不同,它不处理身份验证。

Even though SAML was actually designed to be widely applicable, its contemporary usage is typically shifted towards enterprise SSO scenarios. On the other hand, OAuth was designed for use with applications on the Internet, especially for delegated authorisation.

SAML尽管实际上被设计为广泛适用,但其现在用途通常是面向企业的SSO场景。 另一方面,OAuth旨在用于Internet上的应用程序,尤其是用于委派授权。

SAML工作流程

  1. 用户单击example.com上的“登录”按钮。 example.com上的某种服务是服务提供者SP,最终用户是客户端。
  2. 为了对用户进行身份验证,example.com构造SAML身份验证请求,签名并对其进行可选加密,并将其直接发送给IdP。
  3. 服务提供商将客户端的浏览器重定向到IdP以进行身份​​验证。
  4. IdP验证收到的SAML身份验证请求,如果有效,则提供登录表单,供最终用户输入其用户名和密码。
  5. 客户端成功登录后,IdP会生成SAML断言(也称为SAML令牌),其中包含用户身份(例如之前输入的用户名),并将其直接发送给服务提供商。
  6. IdP将客户端重定向回服务提供商
  7. 服务提供商验证SAML断言,从中提取用户身份,为客户端分配正确的权限,然后将其登录到服务

到这里流程就全部完成了。请注意,SP从未处理过,甚至没有看到客户端的凭据。在这里,我们成功登录了两个重定向(SP-IdP,IdP-SP)。当我们想要从Web应用程序迁移到本地应用程序(例如移动应用程序)时,就会发现这是多么痛的领悟啊。

噩梦才刚刚开始。虽然IdP可以通过两种方式将客户端重定向回SP:HTTP重定向和HTTP POST。但是不建议使用第一个,因为HTTP重定向URL的长度是有限的,并且没有标准告知最大长度究竟是什么。第二种方法POST避免了数据大小问题,但使用起来非常陈旧。用户必须单击按钮才能提交POST表单,或者必须使用JavaScript自动执行。在处理Web应用程序时,这不是一个大问题,但在移动应用程序上,身份验证只会失败,因为应用程序无法访问POST数据,这是有充分理由的。

虽然有更复杂的解决方法,但最好的解决方案可能是使用OAuth2。

OAuth2工作流程

重要的是,OAuth2并不认为客户端就一定是Web浏览器(可能是其他移动设备等等)。

一个标准的工作流程如下:

  1. 终端用户单击example.com上某某服务上的“登录”按钮。 example.com上的文件共享服务是资源服务器,最终用户是客户端。
  2. 资源服务器向客户端提供授权许可(Authorisation Grant),并将客户端重定向到授权服务器
  3. 登陆成功后重定向回客户端,客户端获得使用授权许可代码(Authorisation Code)
  4. 如果授权许可码(Authorisation Code)有效,客户端将获得可用于从资源服务器请求受保护资源的访问令牌(Access Token)
  5. 在收到带有附带访问令牌的受保护资源的请求后,资源服务器直接使用授权服务器验证令牌的有效性,如果令牌有效,则授权服务器将有关客户端的信息(Token Info)发送到资源服务器

我们现在可以跳过尴尬的HTTP POST跳转,但是需要以授权服务器的额外跳转为代价。这是由不同的底层信任模型及授权机制引起的。 SAML断言或“SAML令牌”包含用户标识信息(由于它已签名,因此可以信任),而对于OAuth,资源服务器需要进行额外的往返,以便使用授权服务器对客户端进行身份验证。

原文出处

有部分是翻译,部分进行了优化。
The Difference Between SAML 2.0 and OAuth 2.0

已标记关键词 清除标记
相关推荐
<p> <b><span style="background-color:#FFE500;">【超实用课程内容】</span></b> </p> <p> <br /> </p> <p> <br /> </p> <p> 本课程内容包含讲解<span>解读Nginx的基础知识,</span><span>解读Nginx的核心知识、带领学员进行</span>高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。 </p> <p> <br /> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><br /> </b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b><span style="background-color:#FFE500;">【课程如何观看?】</span></b> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> PC端:<a href="https://edu.csdn.net/course/detail/26277"><span id="__kindeditor_bookmark_start_21__"></span></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a> </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 移动端:CSDN 学院APP(注意不是CSDN APP哦) </p> <p style="font-family:Helvetica;color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~ </p> <p style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <br /> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <strong><span style="background-color:#FFE500;">【学员专享增值服务】</span></strong> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> <b>源码开放</b> </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 </p> <p class="ql-long-24357476" style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;"> 下载方式:电脑登录<a href="https://edu.csdn.net/course/detail/26277"></a><a href="https://edu.csdn.net/course/detail/27216">https://edu.csdn.net/course/detail/27216</a>,播放页面右侧点击课件进行资料打包下载 </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页