OAuth 2可以用于SSO吗?或者我需要更复杂的身份验证?

时间:2014-03-18 04:05:10

标签: authentication drupal oauth single-sign-on identity

我们将使用drupal作为门户网站,但身份验证应该在drupal之外。这是未来架构的第一步。将来,其他应用程序应该能够使用相同的身份验证体系结构(以及身份和配置文件)。

我们还将有一些初始REST API(例如PubSub)。

我们将使用OAuth进行REST API身份验证。

但是未来的Web前端应用呢?他们也会使用OAuth吗?或者我是否需要考虑更复杂的身份验证基础架构?

2 个答案:

答案 0 :(得分:1)

如果您打算使用SSO,您拥有的选项将是SAML SSO或OpenId。 对于API安全性,您可以使用OAuth,对于SSO,您可以使用上述任一方法。如果您继续使用SAML SSO,则此规范将解决[1]中的方案。

链接[2]将提供有关它如何在现实场景中使用的一些见解。只需在此组合中,您就可以交换在SSO步骤中收到的SAML令牌,以获取有效访问API的Oauth令牌。

[1] - http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer-18

[2] - http://nallaa.wordpress.com/2013/04/04/saml2-bearer-assertion-profile-for-oauth-2-0-with-wso2-identity-server/

答案 1 :(得分:1)

通常,您不应严格依赖OAuth2进行身份验证,因为 OAuth2是授权机制,而不是身份验证机制。但是,如果您坚持使用它,并且了解安全隐患,则可以在Drupal中使用我的OAuth2 Authentication模块。

问题是您无法保证资源请求者实际上是资源所有者。这两篇文章提供了更多细节,并解释了与之相关的现实问题:

您应该设置OpenID Connect,因为它在OAuth2之上提供了身份验证层。虽然传统上使用SAML,但它相当过时,并不像OpenID Connect over OAuth2那样通用。随着时间的推移,我们可能会开始看到Web向OpenID Connect转移,远离SAML。

这来自OpenID Connect FAQ

  

安全断言标记语言(SAML)是基于XML的   联邦技术在某些企业和学术用例中使用。   OpenID Connect可以满足这些相同的用例,但更简单,   基于JSON / REST的协议。 OpenID Connect也旨在支持   本机应用程序和移动应用程序,而SAML仅设计   用于基于Web的应用程序。可能会有SAML和OpenID Connect   共存了很长一段时间,每个人都在情境中部署   他们有意义的地方。