IdentityServer4具有多个客户端

我有多个前置Web应用程序以及IdentityServer4(微服务)应用程序,所有这些都在.net Core MVC上运行 . 给定用户可以在App1和App2中的每一个上具有多个帐户 . 用户登录后,选择他们正在访问的帐户 . 如果用户登录App1并选择他们的帐户,他们还应该能够登录到App2并选择一个帐户,而不会在App1上丢失其身份 . 返回App1时,他们之前选择的身份应该仍然存在(不需要重新登录) . 此外,如果用户在App1上完成整个登录过程,如果他们以App2身份登录App2,则他们不必输入他们的初始凭据,只需直接进入帐户选择即可 .

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

我尝试过的事情:

  • 我为这两个站点设置了单独的范围,并且可以管理哪个站点获取哪些信息,这很好,但它不能解决整个问题 .

  • 我试图为站点设置单独的AuthenticationSchemes,但到目前为止这些都没有用,通常会导致完全无用的“server_error”消息(没有堆栈跟踪,日志中没有任何内容) .

有谁知道怎么做到这一点?

回答(1)

3 years ago

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