2

您好我正在尝试了解 SSO 如何适用于尝试使用基于 React 构建的应用程序并在 Node.js 中使用 Microsoft Active Directory 作为身份提供者的后端。

我在同一个应用程序和不同的身份提供者中使用 SAML 和 OIDC 等协议构建了 SSO,我希望也使用 Active Directory 为用户提供 SSO 功能。我无法理解的是流程。我在互联网上阅读了很多文章,这只会让我更加困惑。

在所有阅读之前,我所期待的是:

  1. 有一个 Active Directory 服务器具有一些身份验证 url,我的应用程序会将用户重定向到。
  2. 成功验证后,AD 服务器将使用一些令牌将用户发送回我的应用程序,我的后端将处理该令牌并稍后为用户建立本地会话。

但在任何一篇文章中,我都没有找到与此相关的任何内容。最重要的是,有大量可用的库,例如node-expose-sspi node-adal ldapjs activedirectoryjs和不可用的库,并且它们都有不同的方法来使 SSO 与节点一起工作。

例如采取node-expose-sspi

他们说的是,这小段代码就是我们所需要的。

const sso = require('node-expose-sspi');
app.use(sso());

在上面的代码中,我们没有指定使用哪个 AD 服务器或任何 auth url,包如何知道该怎么做?

另一个例子:activedirectory

var ActiveDirectory = require('activedirectory');
var config = { url: 'ldap://dc.domain.com',
               baseDN: 'dc=domain,dc=com',
               username: 'username@domain.com',
               password: 'password' }
var ad = new ActiveDirectory(config);

好的,所以我们在这里有一个配置,但是这个库需要用户的用户名和密码。但是,如果应用程序要求用户提供用户名和密码,则这不是 SSO。或者是 Active Directory 中的某个用户有权在 AD 中列出我们的用户,如果是,那么节点服务器在拥有所有用户列表时如何知道要查找哪个用户?

也许我无法正确理解流程。有人可以帮我吗?谢谢 :)

4

0 回答 0