ㅁ만약 너의 클래스 패스에 spring-security-oauth2-client가 있다면 자동 구성 기능을 활용하여 OAuth2 / Open ID Connect 클라이언트를 쉽게 설정할 수 있습니다. 이 구성은 OAuth2ClientProperties아래의 속성을 사용합니다. 동일한 속28.3 JSON-B성이 서블릿 및 리 액티브 응용 프로그램에 모두 적용됩니다.
다음 예와 같이 spring.security.oauth2.client접두사 아래에 여러 OAuth2 클라이언트 및 공급자를 등록 할 수 있습니다.
spring.security.oauth2.client.registration.my-client-1.client-id=abcd
spring.security.oauth2.client.registration.my-client-1.client-secret=password
spring.security.oauth2.client.registration.my-client-1.client-name=Client for user scope
spring.security.oauth2.client.registration.my-client-1.provider=my-oauth-provider
spring.security.oauth2.client.registration.my-client-1.scope=user
spring.security.oauth2.client.registration.my-client-1.redirect-uri-template=https://my-redirect-uri.com
spring.security.oauth2.client.registration.my-client-1.client-authentication-method=basic
spring.security.oauth2.client.registration.my-client-1.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.my-client-2.client-id=abcd
spring.security.oauth2.client.registration.my-client-2.client-secret=password
spring.security.oauth2.client.registration.my-client-2.client-name=Client for email scope
spring.security.oauth2.client.registration.my-client-2.provider=my-oauth-provider
spring.security.oauth2.client.registration.my-client-2.scope=email
spring.security.oauth2.client.registration.my-client-2.redirect-uri-template=https://my-redirect-uri.com
spring.security.oauth2.client.registration.my-client-2.client-authentication-method=basic
spring.security.oauth2.client.registration.my-client-2.authorization-grant-type=authorization_code
spring.security.oauth2.client.provider.my-oauth-provider.authorization-uri=http://my-auth-server/oauth/authorize
spring.security.oauth2.client.provider.my-oauth-provider.token-uri=http://my-auth-server/oauth/token
spring.security.oauth2.client.provider.my-oauth-provider.user-info-uri=http://my-auth-server/userinfo
spring.security.oauth2.client.provider.my-oauth-provider.user-info-authentication-method=header
spring.security.oauth2.client.provider.my-oauth-provider.jwk-set-uri=http://my-auth-server/token_keys
spring.security.oauth2.client.provider.my-oauth-provider.user-name-attribute=name
OpenID Connect 검색 을 지원하는 OpenID Connect 제공 업체의 경우 구성을 더욱 단순화 할 수 있습니다. 공급자는 Issuer Identifier로 주장하는 URI 인 issuer-uri로 구성해야합니다 . 예를 들어, issuer-uri가 "https://example.com"이면 OpenID Provider Configuration Request 는 "https://example.com/.well-known/openid-configuration"이됩니다. 그 OpenID Provider Configuration Response결과는 다음과 같을 것으로 예상됩니다 . 다음 예제는 issuer-uri로 OpenID Connect Provider를 다음과 같이 구성하는 방법을 보여줍니다 .
기본적으로 스프링 시큐리티는 OAuth2LoginAuthenticationFilter는 오직 /login/oauth2/code/*와 일치하는 URL 만 처리합니다.다른 패턴을 사용 하도록 redirect-uri를 사용자 정의하려는 경우 해당 사용자 정의 패턴을 처리하기위한 구성을 제공해야합니다. 예를 들어, 서블릿 응용 프로그램의 경우 WebSecurityConfigurerAdapter같은 자신 만의 응용 프로그램을 추가 할 수 있습니다 .
봄 . 초.spring.security.oauth2.resourceserver.jwt.issuer-uri=https://dev-123456.oktapreview.com/oauth2/default/
서블릿 및 리 액티브 응용 프로그램 모두에 동일한 특성이 적용됩니다.
또는 서블릿 애플리케이션 용으로 자체 JwtDecoderbean을 정의 하거나 반응 형 애플리케이션 용으로 ReactiveJwtDecoderbean을 정의 할 수 있습니다 .
30.3.3 권한 부여 서버
현재 스프링 시큐리티는 OAuth 2.0 인증 서버 구현을 지원하지 않습니다. 그러나이 기능은 Spring Security OAuth 프로젝트에서 사용할 수 있습니다.이 프로젝트는 결국 Spring Security로 완전히 대체 될 것입니다. 그때까지는 spring-security-oauth2-autoconfigure 모듈을 사용하여 OAuth 2.0 인증 서버를 쉽게 설정할 수 있습니다. 지침은 해당 설명서 를 참조하십시오.