Single sign on 多个应用程序上的sso和slo

Single sign on 多个应用程序上的sso和slo,single-sign-on,Single Sign On,我们需要为具有一个授权服务器的多个应用程序(不在同一个域中,每个应用程序的权限不同)实施单点登录和单点注销解决方案 情景1: 如果我们在auth server上设置一个客户端id:“全局”,作用域为:“app1、app2、app3”,则用户在所有应用中都经过身份验证,并且用户在auth server上有一个cookie,在他打开的每个应用中都有一个cookie 这里的问题是,有权访问app1和app2且不在app3上的用户正在从auth server获得所有应用的身份验证。因此,授权应该在应用

我们需要为具有一个授权服务器的多个应用程序(不在同一个域中,每个应用程序的权限不同)实施单点登录和单点注销解决方案


情景1:

如果我们在auth server上设置一个
客户端id:“全局”
,作用域为:“
app1、app2、app3
”,则用户在所有应用中都经过身份验证,并且用户在auth server上有一个cookie,在他打开的每个应用中都有一个cookie

这里的问题是,有权访问
app1
app2
且不在
app3
上的用户正在从auth server获得所有应用的身份验证。因此,授权应该在应用程序级别进行

单点注销看起来很简单。让我们假设用户从app1注销,所以他被重定向到auth服务器,并且auth cookie被删除。当他回到
app1.domain/logout
时,app1 cookie也被删除。身份验证服务器负责将请求发布到
app2.domain/logout
app3.domain/logout
,以删除所有其他cookie


情景2:

每个应用程序都有自己的客户端id,例如
    例如:
  • 客户端id:“app1”,作用域为:“user”
  • 客户端id:“app2”,作用域为:“用户,公共回购”
  • 客户端id:“app3”,作用域为:“admin”

当用户通过
app1
登录时,使用as
client\u id:“app1”
与auth server进行代码令牌交换。现在创建了两个cookie,一个在auth server上,另一个用于app1。当用户现在导航到
app2
时,通过使用客户端id:“
app2
”发生另一个请求,并且身份验证服务器现在无法向app2验证用户身份。这怎么可行

此设置看起来不像和sso,但看起来比场景1更抽象


如有任何想法/建议,将不胜感激

多谢各位