【问题标题】:Shared authentication based on Identity Server 4 between MVC and SPA applicationsMVC 和 SPA 应用程序之间基于 Identity Server 4 的共享身份验证
【发布时间】:2021-02-05 03:13:34
【问题描述】:

我在同一个域下有两个解决方案。第一个是 MVC 应用程序,具有基于 IS4 OpenID Connect 提供程序的身份验证,我正在使用代码流。第二个是在 ASP .NET Core 上具有后端的 Angular SPA 应用程序(服务器只提供静态文件),这里的身份验证也应该由 IS4 覆盖。我的问题是如何与 SPA 应用程序共享 MVC 应用程序的身份验证状态,反之亦然。我还可以补充一点,没有必要拥有两个独立的客户端。两个应用程序可以在一个客户端下共享身份验证。谢谢。

示例: mysite.com/page1 - MVC 客户端, mysite.com/page2 - SPA 客户端

【问题讨论】:

    标签: c# asp.net-mvc single-page-application identityserver4 openid-connect


    【解决方案1】:

    身份验证状态将是分开的,因为它们使用了两种不兼容的技术:

    • 客户端 SPA 使用令牌调用 API
    • 服务器端 Web 应用使用身份验证 cookie 调用后端

    常见的是带有身份服务器的 SSO 会话 cookie,因此在登录到应用程序 1 后,您可以单点登录到应用程序 2 - 最终用户无需再次登录。

    这就是单独的 OAuth 应用程序的行为方式 - 单独的重定向意味着它们可以获得对 API 具有不同访问级别的访问令牌。

    这是最简单的解决方案,任何其他选项都可能需要进行大量的重新设计,并且有可能变得有点老套。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 2014-05-26
      • 2011-05-01
      • 2021-02-09
      相关资源
      最近更新 更多