官方示例 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)
spring authorization spring-security spring-oauth2 spring-authorization-server
我正在寻找一个可以完成项目的身份验证(和授权)部分的工具。对于该项目,我将使用 spring boot 和 java 8。我将使用 OAuth2.0,即不受信任的客户端(Web 应用程序)和受信任的客户端(另一台服务器)的流程
我正在研究 Keycloak 和 Spring 授权服务器。
但目前还不清楚 Spring 授权服务器有哪些可能性。
与 Keycloak 一样,您拥有单点登录、身份代理、社交登录、用户联合、管理控制台、帐户管理控制台、标准协议等。
Spring Authorization Server 也可以做到这一点吗?或者 Spring Authorization Server 有哪些可能性?
oauth spring-security oauth-2.0 spring-boot spring-authorization-server
我正在使用 Spring Security 5.5 执行访问令牌请求,最近升级到 5.5.1,现在我的客户端密钥被我的 OAuth 2.0 提供商拒绝。这是由根据RFC 6749 第 2.3.1 节对 URL 编码客户端凭据进行错误修复引起的。
由于我的 OAuth 2.0 提供程序不合规,我想恢复到 Spring Security 5.5.0 中的旧行为,并发送不带 URL 编码的客户端凭据。
从参考文档中,如果我定义 a@Bean类型OAuth2AuthorizedClientManager:
@Bean
public OAuth2AuthorizedClientManager authorizedClientManager(
ClientRegistrationRepository clientRegistrationRepository,
OAuth2AuthorizedClientRepository authorizedClientRepository) {
// @formatter:off
OAuth2AuthorizedClientProvider authorizedClientProvider =
OAuth2AuthorizedClientProviderBuilder.builder()
.clientCredentials()
.build();
DefaultOAuth2AuthorizedClientManager authorizedClientManager =
new DefaultOAuth2AuthorizedClientManager(
clientRegistrationRepository, authorizedClientRepository);
authorizedClientManager.setAuthorizedClientProvider(authorizedClientProvider);
// @formatter:on
return authorizedClientManager;
}
Run Code Online (Sandbox Code Playgroud)
如何将其配置为使用自定义转换器来设置凭据?
注意:与此问题相关,但涉及 Servlet 支持,而不是 WebClient 的响应式支持。