我有多个前置Web应用程序以及IdentityServer4(微服务)应用程序,所有这些都在.net Core MVC上运行。给定用户可以在App1和App2中的每一个上具有多个帐户。用户登录后,选择他们正在访问的帐户。如果用户登录App1并选择他们的帐户,他们还应该能够登录到App2并选择一个帐户而不会在App1上丢失其身份。返回App1时,他们之前选择的身份应该仍然存在(不需要重新登录)。此外,如果用户在App1上完成整个登录过程,如果他们使用App2身份登录App2,则他们不必输入初始凭据,只需直接进行帐户选择即可。
我遇到的问题是,一旦我尝试在App2上登录用户,他们就完全失去了App1身份。
我尝试过的事情:
我为这两个网站设置了不同的范围,可以管理哪个网站获取哪些信息,这很好,但不能解决整体问题。
我试图为网站设置单独的AuthenticationSchemes,但到目前为止一直没用,通常会导致完全无用的“server_error”消息(没有堆栈跟踪,日志中没有任何内容)。
有谁知道如何做到这一点?
答案 0 :(得分:2)
身份服务器4是单点登录。一旦用户登录App1,如果他们从App1点击App2,他们就不必再次登录。但每个客户都必须进行身份验证。因此,您将对其进行身份验证,中间件将自动执行(您必须配置客户端)并确保您不要在不同客户端之间共享cookie。