我们将使用drupal作为门户网站,但身份验证应该在drupal之外。这是未来架构的第一步。将来,其他应用程序应该能够使用相同的身份验证体系结构(以及身份和配置文件)。
我们还将有一些初始REST API(例如PubSub)。
我们将使用OAuth进行REST API身份验证。
但是未来的Web前端应用呢?他们也会使用OAuth吗?或者我是否需要考虑更复杂的身份验证基础架构?
答案 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
答案 1 :(得分:1)
通常,您不应严格依赖OAuth2进行身份验证,因为 OAuth2是授权机制,而不是身份验证机制。但是,如果您坚持使用它,并且了解安全隐患,则可以在Drupal中使用我的OAuth2 Authentication模块。
问题是您无法保证资源请求者实际上是资源所有者。这两篇文章提供了更多细节,并解释了与之相关的现实问题:
您应该设置OpenID Connect,因为它在OAuth2之上提供了身份验证层。虽然传统上使用SAML,但它相当过时,并不像OpenID Connect over OAuth2那样通用。随着时间的推移,我们可能会开始看到Web向OpenID Connect转移,远离SAML。
安全断言标记语言(SAML)是基于XML的 联邦技术在某些企业和学术用例中使用。 OpenID Connect可以满足这些相同的用例,但更简单, 基于JSON / REST的协议。 OpenID Connect也旨在支持 本机应用程序和移动应用程序,而SAML仅设计 用于基于Web的应用程序。可能会有SAML和OpenID Connect 共存了很长一段时间,每个人都在情境中部署 他们有意义的地方。