如何使用 saml2-js 包保护 node.js 应用程序?
How do I protect a node.js app using the saml2-js package?
我已成功将 saml2-js 包与我的 node.js 应用程序集成,并且我已确认身份验证过程已成功完成。但是,我不太确定如何正确地将应用程序或路由置于身份验证之后。 saml2-js example 没有涵盖这种情况(也许这是有道理的)。那么如何将应用置于身份验证之后呢?
我已经在我的组织中成功完成了 SSO over SAML2.0 任务,所以我也许可以帮助你,至少我可以分享我的经验。
我们是这样做的
- 首先你需要弄清楚某组用户是否想做单点登录。这不是那么微不足道,因为在对自己进行身份验证之前,您不知道谁想登录您的系统。就我们而言,我们有大型企业用户。所以我们不能只为每个客户放置一个 "Login by Okta" 或 "Login by ADFS" 按钮,因为一些客户希望 IdP 是 Okta,另一个希望它是 ADFS 等。我们通过引入子域解决了这个问题,并且我们通过 url 识别公司帐户。然后我们可以检查公司帐户想要使用的 IdP,并相应地放置一个匹配的 SSO 按钮。
- 然后,当用户单击 SSO 按钮时,您将创建登录请求,之后如果用户在 IdP 中成功识别了自己,您就可以创建安全上下文(a.k.a 会话)。然后此会话将保护您的端点和应用程序。当您创建会话时,用户实际上 "logged" 进入了您的应用程序。
我已成功将 saml2-js 包与我的 node.js 应用程序集成,并且我已确认身份验证过程已成功完成。但是,我不太确定如何正确地将应用程序或路由置于身份验证之后。 saml2-js example 没有涵盖这种情况(也许这是有道理的)。那么如何将应用置于身份验证之后呢?
我已经在我的组织中成功完成了 SSO over SAML2.0 任务,所以我也许可以帮助你,至少我可以分享我的经验。
我们是这样做的
- 首先你需要弄清楚某组用户是否想做单点登录。这不是那么微不足道,因为在对自己进行身份验证之前,您不知道谁想登录您的系统。就我们而言,我们有大型企业用户。所以我们不能只为每个客户放置一个 "Login by Okta" 或 "Login by ADFS" 按钮,因为一些客户希望 IdP 是 Okta,另一个希望它是 ADFS 等。我们通过引入子域解决了这个问题,并且我们通过 url 识别公司帐户。然后我们可以检查公司帐户想要使用的 IdP,并相应地放置一个匹配的 SSO 按钮。
- 然后,当用户单击 SSO 按钮时,您将创建登录请求,之后如果用户在 IdP 中成功识别了自己,您就可以创建安全上下文(a.k.a 会话)。然后此会话将保护您的端点和应用程序。当您创建会话时,用户实际上 "logged" 进入了您的应用程序。