小编Ste*_*erg的帖子

如何从 Spring 授权服务器示例获取刷新令牌

官方示例 Spring Authorization Server默认为带有 PKCE 的 Oauth 2.1返回access_tokenid_token

https://github.com/spring-projects/spring-authorization-server/tree/main/samples/default-authorizationserver

端点/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

8
推荐指数
1
解决办法
5814
查看次数

当使用 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

5
推荐指数
1
解决办法
4857
查看次数

如何自定义 OAuth2 令牌请求的 Authorization 标头

我正在使用 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 的响应式支持。

spring-security oauth-2.0

4
推荐指数
1
解决办法
4869
查看次数