abb*_*bas 8 spring authorization spring-security spring-oauth2 spring-authorization-server
官方示例 Spring Authorization Server默认为带有 PKCE 的 Oauth 2.1返回access_token和id_token
端点/oauth2/token是否有可能也在响应中返回刷新令牌?为了获取刷新令牌,我需要在示例中进行哪些更改或配置?
我还将提到我必须使用 PKCE 对代码流进行的一些更改
禁用 CSRF
http
.authorizeRequests(authorizeRequests ->
authorizeRequests.anyRequest().authenticated()
)
.formLogin(withDefaults())
.csrf().disable();
Run Code Online (Sandbox Code Playgroud)
将 ClientAuthenticationMethod.CLIENT_SECRET_BASIC 更改为 ClientAuthenticationMethod.NONE
将 requireAuthorizationConsent(true) 更改为 requireProofKey(true)
Ste*_*erg 12
您提到将授权代码流与 PKCE 一起使用,这对机密客户端和公共客户端都有效。但是,当使用公共客户端(客户端身份验证方法=无,无客户端密钥)时,不会颁发刷新令牌。
来自#297基于浏览器的应用程序 (SPA) 的实施指南:
为公共客户刷新令牌
目前没有计划为公共客户端实施刷新令牌,因为没有浏览器 API 允许以安全方式存储刷新令牌,这会导致攻击面增加。
有关刷新令牌的更多信息,请参阅 #297,该信息很大程度上基于OAuth 2.0 for Browser-Based Apps和OAuth 2.0 Security Best Current Practice的建议。使用公共客户端时的建议是使用“后端换前端”模式。BFF 将是一个机密客户端,可以接收刷新令牌,同时还消除了在浏览器中管理和存储令牌的复杂性和风险。
| 归档时间: |
|
| 查看次数: |
5814 次 |
| 最近记录: |