Authentication 委托与联合身份验证

Authentication 委托与联合身份验证,authentication,oauth,authorization,oauth-2.0,openid,Authentication,Oauth,Authorization,Oauth 2.0,Openid,我正在使用Node.js编写几个web应用程序。在所有这些应用程序中,我需要身份验证和授权。我不想做的是在每个web应用程序中处理身份验证和授权 因此,我开始考虑使用委托和/或联合身份验证机制,到目前为止,我已经处理了OpenID和OAuth(2) 然而,我不确定我是否走上了正确的道路 我想要的是: 拥有一个集中式身份验证服务器(这可以同时使用OpenID和OAuth) 任何人都不可能进行身份验证(这显然将我从OpenID推到了OAuth,因为我明确不想允许任何OpenID提供者,例如) 我想

我正在使用Node.js编写几个web应用程序。在所有这些应用程序中,我需要身份验证和授权。我不想做的是在每个web应用程序中处理身份验证和授权

因此,我开始考虑使用委托和/或联合身份验证机制,到目前为止,我已经处理了OpenID和OAuth(2)

然而,我不确定我是否走上了正确的道路

我想要的是:

  • 拥有一个集中式身份验证服务器(这可以同时使用OpenID和OAuth)
  • 任何人都不可能进行身份验证(这显然将我从OpenID推到了OAuth,因为我明确不想允许任何OpenID提供者,例如)
  • 我想启用联合:用户不仅应该能够对我的集中式身份验证服务器进行身份验证,而且该服务器还应该与一些预先选择的其他身份验证服务器进行联合(考虑将服务器与现有ActiveDirectory集成)。我不确定这在OAuth中是否可行,是吗
  • 我希望我的web应用程序只信任来自我的集中式服务器(或者,间接地,来自一个受信任的联邦服务器)的令牌。OAuth2承载令牌是否可以实现这一点
很多问题。。。我知道我可以使用SAML与WS-Trust和WS-Federation实现所有这些,但我希望选择更轻量级的身份验证策略


对此有什么想法、提示或建议吗?

是的,你可以做到这一切。事实上,您可以在任何协议(如AD或LDAP目录)上将您的应用程序与任何身份提供者连接起来。(这正是我们所做的)

由于您使用的是node.js,我强烈建议您从优秀的中间件入手