如何使用NodeJS进行单点登录? [英] How to do single sign-on with NodeJS?

查看:13
本文介绍了如何使用NodeJS进行单点登录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有多个Web应用程序在多个域中运行。我要实现单点登录,以便用户一次登录即可访问所有应用。

我应该如何实现这一点?所有应用都使用NodeJS后台。

欢迎正确方向的一般指针。

推荐答案

由于您的应用运行在不同的域上,您无法在客户端计算机上运行的那些应用之间共享Cookie来验证用户。因此需要在服务器端以某种方式共享信息。

我想到的最简单的解决方案是:

  1. 为所有服务器共享会话。

  2. 具有特定的验证域,并在需要身份验证时将用户重定向到那里。在那里对用户进行身份验证,并根据需要设置会话Cookie或令牌。

  3. 每当您的APP需要鉴权时,请将其重定向到鉴权域。身份验证Cookie将提供给身份验证域和引用域。在看到您已通过验证后,身份验证服务器可以将您重定向到具有正确会话ID的原始应用,该应用将被设置为该域的Cookie。

  4. 如果未进行身份验证,将要求用户在身份验证服务器上进行身份验证,然后将进行重定向。

  5. 只需少量更改,即可使用令牌实现此目的,而不需要共享会话。

在实现之前正确验证状态。您的机制中的状态越多,发生错误和可能的攻击的可能性就越大。

考虑将您的应用程序移动到同一子域。如果身份验证机制是相同的,那么每个人都知道所有的应用程序都属于同一家公司。与记住所有不同的域相比,人们更容易记住同一域中的各个子域。

这篇关于如何使用NodeJS进行单点登录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆