Spring 安全 Oauth 服务器

Spring Security Oauth Server

我正在按照 https://www.baeldung.com/spring-security-oauth-auth-server 教程 Spring 引导实施身份验证服务器。 但是我无法理解一种配置。

spring:
  security:
    oauth2:
      client:
        registration:
          articles-client-oidc:
            provider: spring
            client-id: articles-client
            client-secret: secret
            authorization-grant-type: authorization_code
            redirect-uri: "http://127.0.0.1:8080/login/oauth2/code/{registrationId}"
            scope: openid
            client-name: articles-client-oidc
          articles-client-authorization-code:
            provider: spring
            client-id: articles-client
            client-secret: secret
            authorization-grant-type: authorization_code
            redirect-uri: "http://127.0.0.1:8080/authorized"
            scope: articles.read
            client-name: articles-client-authorization-code
        provider:
          spring:
            issuer-uri: http://auth-server:9000

什么是 articles-client-oidc 和 articles-client-authorization-code ? redirect-uri: "http://127.0.0.1:8080/authorized" 是做什么的?谁能分享更好的解释。

articles-client-oidcarticles-client-authorization-coderegistrationIds。这些是您选择的任意标识符,用于区分不同的客户端配置。

redirect-uri 是授权服务器在用户授权客户端后应该重定向的地方:

  • 首先,用户转到您的应用程序。
  • 其次,用户被重定向到授权服务器进行登录和同意。
  • 第三,授权服务器重定向到redirect-uri执行剩余的认证步骤。

Spring 安全有一个内置端点来接收授权服务器的响应,因此 redirect-uri 通常设置为:{baseUrl}/login/oauth2/code/{registrationId}.

我假设这篇文章试图演示自定义重定向 URI,这就是第二个客户端使用 http://127.0.0.1:8080/authorized 而不是内置 Spring 安全支持的原因。