【发布时间】:2019-07-09 06:18:49
【问题描述】:
现状:
我目前正在与特定的 oauth 提供商合作,并且我将我的应用程序作为微服务托管在 kubernetes 集群中。
我的最终用户正在积极使用 Angular 应用程序,它使用 nginx 作为网络服务器托管为 docker 容器。
现在我的想法是使用 node.js express 和 passport 将身份验证集成为单独的微服务。所以工作流程将是
用户以角度登录并被重定向到快速应用程序(相同的主机地址只是不同的端点/auth/someProvider)
express 应用程序没有用户界面,它只处理所有的 oauth 重定向和与提供者的通信,在收集到用户信息后,它会重定向回 angular 应用程序。
现在这对于最后一部分非常有效。当我的 /auth/provider/callback 将在 express 应用程序内部重定向时,很容易访问已使用用户对象扩展的请求对象。当我重定向到外部网站时,我得到了 cookie 和所有内容,但不是访问用户对象的简单方法。
我的尖锐问题:
是否有一种安全的方法可以将请求对象中的用户信息直接传递给 angular 应用程序使用(我能想到的最好方法是使用标头,因为它们在 https 中也是加密的,但似乎仍然有点哈克)。
一般来说,以这种方式使用 OAuth 是否是个好主意。
此解决方案的最大优势在于,我可以将同一个 Docker 容器与许多 Web 项目一起使用,而不必通过更改该 Docker 容器中的 ClientId 和 Secret Env Vars 来一一实现身份验证。
【问题讨论】:
标签: node.js docker express get passport.js