Oauth 使用SPA时,在identityServer端保持会话处于活动状态

Oauth 使用SPA时,在identityServer端保持会话处于活动状态,oauth,identityserver4,openid-connect,asp.net-core-3.0,Oauth,Identityserver4,Openid Connect,Asp.net Core 3.0,我们有3个应用程序:运行IdentityServer的管理站点、SPA、带有rest服务的webapi 在第一个(使用IdentityServer)上,我们有一些传统的管理ui。存在一个要求,即连接的用户可以无缝地从我们的SPA应用程序转到这个管理ui,而无需身份验证。因此,通过重定向从一个web应用程序到另一个web应用程序 问题是如何使两个“会话”保持同步,以便在至少一个会话正在使用时没有一个会话过期 问题的例子: 应用程序的设置: spa_web.com-我们的spa应用程序->获取1小时

我们有3个应用程序:运行IdentityServer的管理站点、SPA、带有rest服务的webapi

在第一个(使用IdentityServer)上,我们有一些传统的管理ui。存在一个要求,即连接的用户可以无缝地从我们的SPA应用程序转到这个管理ui,而无需身份验证。因此,通过重定向从一个web应用程序到另一个web应用程序

问题是如何使两个“会话”保持同步,以便在至少一个会话正在使用时没有一个会话过期

问题的例子: 应用程序的设置:

  • spa_web.com-我们的spa应用程序->获取1小时有效的访问令牌和刷新令牌
  • authorityWithIdServer.com-我们的id提供程序站点->将cookie mantaining会话设置为1小时到期
  • 步骤: 1.首先我们去spaWeb.com。 2.用户需要经过身份验证,因此被重定向到authorityWithIdServer.com,用户在那里填写登录表单。 3.使用授权代码流,我们被重定向回spaWeb.com,最终获得本地存储的访问令牌和刷新令牌。 4.我们只使用spa应用程序几个小时。我们的访问令牌使用刷新令牌定期更新。 5.现在我们决定转到authorityWithIdServer.com上的管理ui。 6.我们再次获得登录表单以登录到该应用程序

    在我们使用spaWeb.com时,是否有可能滑动authorityWithIdServer.com的cookie,以避免再次被迫登录

  • 您不应该在客户端应用程序中使用刷新令牌。更改为授权代码,并在iframe中使用静默(
    prompt=none
    )方式续订令牌
    oidc客户端js
    实现了这一开箱即用的功能以及会话监视
  • 如果执行上述操作,则由于续订请求通过
    授权
    端点在浏览器上下文中发生,因此通过cookie完成与IDP的身份验证,因此任何滑动逻辑都将自动启动

  • 还请注意,
    identityserver4
    允许您控制客户端必须通过授权端点
    max_age
    参数和
    UserSsoLifetime
    客户端设置进行交互身份验证的频率。

    为什么要投否决票?感谢您的回复。我将尝试您建议的方式,不使用刷新令牌。