开发了基于OAuth2的单点登录系统。
我有3项服务:
服务提供者检查由标识提供程序发出的每个请求访问令牌。
下一个机制是:
Cookie包含oauth访问和令牌。
在访问令牌有效的情况下,一切都很好。一旦访问令牌过期,服务prodider将转到sso.idp.loc/login_check,然后再次检查访问令牌,然后尝试使用刷新令牌获得新的令牌。如果成功,那么新的creadentials就会被设置为sso.idp.loc和服务提供者。假设是在sso.sp-web.loc上发生的。
这里我有几个问题:
应该考虑一个事实,即访问令牌可以在任何时候更改。
可能我的系统出了什么问题。我很乐意在此提出任何解决办法。
发布于 2019-02-15 08:23:10
我认为您的SSO概念是有缺陷的-您不应该共享相同的令牌。每个客户端(应用程序)的令牌应该是不同的。OAuth2 SSO通常以以下方式实现( OAuth2 RFC不包括该实现):
/auth端点)来请求令牌。/auth端点请求一起发送。授权服务器解析会话。会话已经过身份验证,因此授权服务器可能决定不立即请求凭据并释放新的令牌(或auth代码)。发布于 2019-02-14 16:47:43
您似乎已经实现了隐式授予类型的OAuth 2.0。那很不安全。理想情况下,您应该在资源服务器(您所指的服务提供者)端实现授权代码授予类型并维护客户端机密。我建议你阅读答案here和here。
现在让我们回答以下问题:
https://stackoverflow.com/questions/54690523
复制相似问题