Ole*_*Ole 5 oauth-2.0 jwt spring-security-oauth2 openid-connect angular
我已经阅读了几个月的内容,似乎整个事情都可以集中在我下面总结的内容上。我正在努力达到最理想的状态:
上述组件具有银行级安全质量的解决方案。所以这似乎是有道理的。
这是否疯狂/听起来合理吗?它会跳过使令牌失效,但如果令牌的生命周期很短并且客户端可以获得刷新令牌,那么这样做似乎可以。我想使用 Spring-Boot / Spring Security 和 Angular 4/5 来实现这一点,我想知道我是否错过了任何明显的东西,或者也许有一种更简单的方法不会牺牲/降低安全性?
您还认为这会通过“银行”级安全标准检查吗?
更新:不再推荐隐式流。即使对于 SPA,建议使用带有 PKCE 的授权代码流
原答案
需要澄清的事情很少,
1.您必须对基于浏览器的应用程序使用隐式流
这是因为此类应用程序无法保密,也无法保护其收到的刷新令牌。OAuth2.0 RFC也解释了流程。
另外,根据 OAuth2.0刷新令牌定义,刷新令牌是一种凭证。
刷新令牌是用于获取访问令牌的凭据
RFC6749 的第 10.4节解释了有关刷新令牌安全性的更多信息,从而解释了基于浏览器的应用程序使用隐式流的需要。
2.隐式流不发送刷新令牌
来自OAuth2.0 RFC
使用隐式授权类型流程时,不会返回刷新令牌,这需要在访问令牌过期后重复授权过程。
因此,当访问令牌过期时,您必须通过相同的流程来获取新的令牌集
3. ID 令牌的使用
必须按规范进行检验。如果 id 令牌有效,则用户已通过身份验证
4.API调用
有两个选项,使用访问令牌或用户 ID 令牌。
使用访问令牌与 API 端点进行通信是很常见的。这是访问令牌的预期用途。从 API 端点,可以使用内省端点(如果身份提供者支持)来验证访问令牌。
但 ID 令牌 JWT 也可以用作不记名令牌。为此,API 端点将需要一个 warapper 来验证 ID 令牌。该博客/文档包含一些值得考虑的要点。
| 归档时间: |
|
| 查看次数: |
3476 次 |
| 最近记录: |