1

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

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

不过,我不确定我是否走在正确的轨道上。

我想要的是:

  • 拥有一个集中的身份验证服务器(这可以同时使用 OpenID 和 OAuth)。
  • 任何人都不应该进行身份验证(这显然是把我从 OpenID 推到 OAuth,因为我明确不想允许任何 OpenID 提供者,例如)。
  • 我想启用联合:用户不仅应该能够针对我的集中式身份验证服务器进行身份验证,而且该服务器应该与一些预先选择的其他身份验证服务器进行联合(考虑将服务器与现有的 ActiveDirectory 集成)。我不确定 OAuth 是否可以做到这一点,是吗?
  • 我希望我的 Web 应用程序只信任来自的集中式服务器(或间接来自受信任的联合服务器之一)的令牌。这可能与 OAuth2 Bearer Tokens 吗?

很多问题......我知道我可以使用带有 WS-Trust 和 WS-Federation 的 SAML 来完成所有这些,但我会选择更轻量级的身份验证策略。

对此有任何想法、提示或建议吗?

4

1 回答 1

2

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

由于您使用的是 node.js,我强烈建议您将优秀的护照中间件作为起点。

于 2013-04-26T15:44:07.110 回答