2017-07-25 81 views
-1

我有多个面向前端的Web应用程序以及IdentityServer4(微服务)应用程序,都运行在.net Core MVC上。给定用户可能在App1和App2的每一个上都有多个帐户。一旦用户登录,他们然后选择他们正在访问哪个帐户。如果用户登录到App1并选择他们的帐户,他们也应该能够登录到App2并选择一个帐户,而不会在App1上丢失其身份。当返回到App1时,他们先前选择的身份应该仍然存在(不需要重新登录)。此外,如果用户在App1上完成整个登录过程,如果他们点击App2而不是App2身份,则不需要输入他们的初始凭证,只需直接选择帐户即可。IdentityServer4与多个客户端

我遇到的问题是,一旦我尝试在App2上登录用户,他们完全失去了App1的身份。

事情我已经尝试:

  1. 我设置单独的作用域的两个网站,并可以管理网站获得该信息,这是伟大的,但它并没有解决整个问题。

  2. 我试图为网站设置单独的AuthenticationSchemes,但迄今为止一直无用,常常导致完全无用的“server_error”消息(没有堆栈跟踪,日志中没有任何内容)。

有谁知道如何做到这一点?

回答

2

身份服务器4是单点登录。一旦用户登录App1,如果他们从App1中点击App2,则不必再次登录。但每个客户都必须认证自己。因此,您将对其进行身份验证,中间件将自动进行身份验证(您必须配置客户端),并确保您不会在不同客户端之间共享cookie。