首页 > 解决方案 > OneLogin SAML 和用户配置文件提取 - 无需登录页面

问题描述

专家!

我创建了一个带有两个 API 的 Node.JS Web 应用程序。API 之一是最终用户可以看到 GUI 的 GUI。第二个 API 是身份验证守卫,它将使用 OPENID > 身份验证 > 获取用户配置文件和向最终用户的 GUI 呈现信息来与 1L 对话。

我们最初想使用类似于 Zendesk 或其他人的 SAML 断言 (SSO),当某人通过 1L 身份验证并且您导航到站点 domain.zendesk.com 时,已建立的登录令牌只会将您重定向到该站点。当您未登录到 1L 并且您转到该站点时,您将被重定向到 1L 进行身份验证,然后在您成功进行身份验证后重定向回选择的站点。

我们的应用程序没有用户数据库,相反,我们依靠 1L 为我们进行身份验证,并将用户信息传递给我们的第二个 API,以便我们可以将特定的最终用户详细信息从内部传递到 GUI。最终目标是能够使用 1L 进行身份验证并被重定向到sales.cbac.com并能够了解有关当前用户的用户特定详细信息,但该用户永远不必访问登录页面

现在,我们必须启动一个登录页面,该页面将接受用户信息 > 将信息发送到 auth guard 以调用 1L auth > 返回有效的用户和用户配置文件信息 > 全部使用 OPENID。

最好的方法是什么?似乎我们缺少了一些东西。

API URL1 (GUI) - sales.cbac.com API URL2 (auth guards - OPENID) - sales-api.cbac.com 您登陆 sales.cbac.com 的当前状态 > 显示登录页面 > auth 然后定向到站点

标签: node.jsrestsamlsaml-2.0onelogin

解决方案


您最好的方法是考虑支持 OpenID Connect。您的 GUI node.js 页面请求身份验证并从 Onelogin 接收 OpenID Connect 令牌 ( id_token )。有关如何执行此操作的信息可从标准 Onelogin 文档中获得

然后,您可以使用返回的 id_token(包含基本用户信息)对您的 API 进行经过身份验证的调用,您的 API 负责验证和验证 Onelogin 颁发的令牌。您可以选择是否为您的 GUI 和 API 保留相同的受众,或者在 Onelogin 中为您的 GUI 和 API 创建特定应用程序,每个应用程序都有一个单独的 aud(受众)值。


推荐阅读