oauth2 - 授权流程

时间:2014-12-16 15:33:08

标签: authentication oauth oauth-2.0 authorization single-sign-on

关于oauth2及其在这种情况下的适用性,我提出了一个问题。我已经查看了授权流程,但似乎总是从第三方Web应用程序开始,而不是从门户网站(auth服务器)......

我的术语......

1)我们有企业门户系统(例如SharePoint等),我们称之为portal.com 2)我们有第三方托管的网络应用程序,我们称之为webapp.com

已在portal.com中登录(已验证)的用户单击其中一个打开webapp.com(我的第三方,跨域Web应用程序)的门户网站页面上的链接。我想授权用户使用webapp.com而无需提供任何额外的登录凭据。

问题:

a)oauth2是最常见的标准'基于这样做的方式?或者我误解了什么。 b)如果是,授权流程是什么? (我似乎只是发现auth流程从用户首先访问webapp.com开始,然后指向portal.com登录,然后重定向回来。但在我的用户故事中,用户首先访问portal.com并且已经登录当他们链接到webapp.com时。)

如果我的术语很差,请道歉 - 我是这个领域的新手。

干杯, 奥利

2 个答案:

答案 0 :(得分:1)

从技术上讲,OAuth 2.0已经创建为授权协议,但它也很容易用于身份验证(身份提供商),并且非常适合您的情况。但是,您可以调查OpenID Connect(OIDC) - 这是OAuth 2.0的扩展,完全在身份验证/身份提供商区域内。

如果您的Portal上有用户会话,那么如果您只是重定向到WebApp然后WebApp(还没有会话)通过OAuth 2.0 /来自Portal请求用户身份,那就绝对没问题了。 OIDC。用户可以获得额外的2次重定向而不会注意到任何内容,但这样,如果用户为您的WebApp添加书签并在不首先进入portal.com的情况下访问它,登录也可以正常工作。

答案 1 :(得分:0)

听起来您正在寻找单点登录的解决方案。如果是这样,OAuth 2.0(RFC 6749)无法帮助您。 OAuth 2.0是授权的规范,而不是身份验证的规范。它明确说明如下。

  

授权服务器验证资源所有者的方式(例如,用户名和密码登录,会话cookie)超出了本规范的范围

身份验证处理有关" 一个是" 的信息。另一方面, 授权处理有关" "授予哪些权限的信息? 。因此,OAuth 2.0不是您案例的关键字。