首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jwt响应多个子域auth

使用jwt响应多个子域auth
EN

Stack Overflow用户
提问于 2020-04-28 15:09:32
回答 1查看 3.4K关注 0票数 5

我们希望用相同的用户、数据库和Rest开发少量不同的服务(React )。有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,有些用户可以访问应用程序1,有些用户可以访问应用程序2,

  • 我们决定使用多个子域应用程序方法,
  • ,我们希望单点登录,所以只有一个页面/应用程序来验证所有的应用程序,而不是每个应用程序的本地登录组件。在后端.

中使用JWT机制

结构:

八月流动:

该流程中有两个主要问题,分别被标记为1和2:

  1. 允许我访问登录应用程序并登录,从后端获得accestoken。如何将令牌传递给app1.company.com?应该用url param?

中的令牌来响应登录应用程序重定向吗?

代码语言:javascript
复制
- local storage is subdomain scoped.
- iframe has problems with Safari.
- I don't wanna save jwt in cookies for now because the flask REST can serve non-browser retailed clients.

  1. 让用户说,用户想去app2。如果我们不能与iframes或任何其他方法共享来自app1的令牌,那么这个应用程序应该被重定向到登录,并使进程再次作为app1,这对我们来说很好。但这真的是这样吗?如果令牌不再无效,并且我们从后端获得错误,我们是否应该重定向到另一个子域中的登录应用程序(在登录成功后嵌入我们想要返回的url )?

代码语言:javascript
复制
- Can i just use 3rd party Open id connect service?
- Should i consider microfrontends approcah to make the all the "apps" on the same domain? 
- How "Attlassian" as an example handles this process?

我错过了什么?解决这个问题的最好方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 09:34:53

让我去登录应用程序并登录,从后端获得accestoken。如何将令牌传递给app1.company.com?

login.company.com将令牌作为URL中的参数传递并不是一个问题,因为站点可以通过验证数字签名或中央身份验证域中的特定端点来验证令牌的真实性。这就是openid/oauth2使用“隐式”流的方式,尽管它们也允许将令牌作为POST发送,或者使用2步流("authorization_code“流)。

可以说用户想要访问app2。如果我们不能与iframes或任何其他方法共享来自app1的令牌,那么这个应用程序应该被重定向到登录,并使进程再次作为app1,这对我们来说很好。但这真的是这样吗?

您可以使用内部iframe在域之间共享令牌,但在您的情况下,我建议每个域使用自己的令牌。

如果令牌不再无效,并且我们从后端获得错误,我们应该重定向到另一个子域中的登录应用程序(在登录成功后嵌入我们想要返回的url )吗?

是的,在绘图的数字2中,只需将app2.company.com重定向到login.company.com,并遵循与1)相同的流程,. You将需要login.company.com上的某种类型的cookie,以避免再次向用户请求凭据。

我可以使用第三方开放身份连接服务吗?

是的,您可以使用外部OpenIdConnect服务,也可以在login.company.com部署OpenIdConnect服务器,如IdentityServer或KeyCloak。

,我是否应该考虑微前端应用程序,使所有的“应用”在同一个领域?

没有必要有一个中央身份验证域。

以"Attlassian“为例如何处理此过程?

我不知道Attlassian是怎么做到的,但目前大多数web服务都支持OpenIdConnect

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61483579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档