【发布时间】:2021-03-22 19:10:03
【问题描述】:
我想使用 SAML2 实现 SSO。 但我不知道如何让它与分布式系统一起工作,其中每个实例都在自己的服务器上独立运行。该环境由三个实例组成:
- 实例 #1:有角度的前端
- 实例 #2:node.js 后端(使用 express.js + passport)
- 实例 #3:SAML 实例(身份提供者)
问题是,如果前端调用受保护的后端路由,最好的方法是什么? 哪些操作顺序可以被视为良好做法?
目前我脑子里有这种行为:
- 前端向受保护的后端路由发送请求
- 由于用户未通过身份验证,服务器会启动重定向到身份提供者提供的 SSO 页面。
- 在那里输入凭据
- 用户通过 saml 实例进行身份验证,并将请求发送回服务器。
- 现在用户已通过身份验证,服务器将带有请求资源的响应发送回客户端。
但只要我想到这个顺序,我就意识到这是行不通的。 这是因为前端是它自己的实例,它独立于后端。 如果您有一个单独的前端实例,则无法重定向到由护照启动的 SSO 页面。 如果您直接使用浏览器调用受保护的路由,它会起作用,因为您只有两个通信伙伴(服务提供者和身份提供者)而不是三个。 但这里不是这样。
感谢和问候
菲利普
【问题讨论】:
标签: node.js angular passport.js saml saml-2.0