node.js - 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 然后定向到站点
解决方案
您最好的方法是考虑支持 OpenID Connect。您的 GUI node.js 页面请求身份验证并从 Onelogin 接收 OpenID Connect 令牌 ( id_token )。有关如何执行此操作的信息可从标准 Onelogin 文档中获得
然后,您可以使用返回的 id_token(包含基本用户信息)对您的 API 进行经过身份验证的调用,您的 API 负责验证和验证 Onelogin 颁发的令牌。您可以选择是否为您的 GUI 和 API 保留相同的受众,或者在 Onelogin 中为您的 GUI 和 API 创建特定应用程序,每个应用程序都有一个单独的 aud(受众)值。
推荐阅读
- r - 如何从 R 中多个数据帧的公共列中找到 Max/Min
- actionscript-3 - 尝试将键盘事件添加到我在代码中调用舞台的子影片剪辑
- html - 带有可自定义拼写检查波浪线的 HTML 输入文本
- c - `/MT` 未解决的 Visual C 运行时函数
- node.js - 将 npm lib 与 async await 捆绑的最佳方式
- cakephp-3.0 - 在 cakephp 3 中找不到当前实体错误的表类
- javascript - 与 slim.js 的 transitionend-event 绑定
- javascript - 异步等待不解决/拒绝结果
- angularjs - 导入的类不能在带有 TypeScript 的 Angular.js 中用作服务
- python - 任何跟踪蝗虫自定义统计数据的方法