해당 내용은 이동욱님 저서 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'를 공부하며 정리한 내용입니다.
여기를 눌러 인증과 인가 더 자세히 알아보기
스프링 부트 2.0으로 오면서 OAuth2의 설정 방법이 훨씬 간편해졌다.
두 버전의 application.properties 혹은 application.yml 설정 정보를 살펴보면 아래와 같다.
google:
client:
clientId: 인증정보
clientSecret: 인증정보
accessTokenUri: https://accounts.google.com/o/oauth2/token
userAuthorizationUri: https://accounts.google.com/o/oauth2/auth
clientAuthenticationScheme: form
scope: email, profile
resource:
userInfoUri: https://www.googleapis.com/oauth2/v2/userinfo
spring:
security:
oauth2:
client:
clientId: 인증정보
clientSecret: 인증정보
1.5에서는 url 주소를 모두 명시해야 하지만 2.0에서는 client 인증 정보만 입력하면 된다.
2.0에서 CommonOAuth2Provider라는 enum이 새롭게 추가 되었는데, 여기서 구글, 깃허브, 페이스북, 옥타의 기본 설정값을 제공한다.
이 enum으로 1.5에서 직접 입력하던 설정값을 대체한다.
(하지만 네이버와 같이 CommonOAuth2Provider에서 제공하지 않는 플랫폼의 정보는 개발자가 별도로 추가해줘야 한다.)
여기를 눌러 Enum CommonOAuth2Provider 확인하기
스프링 팀에서 1.5에서 사용되던 spring-security-oauth 프로젝트는 유지 상태로 결정했으며, 더는 신규 기능을 추가하지 않고 버그 수정 정도의 기능만 추가될 예정이다. 신규 기능은 oauth2 라이브러리에서만 지원하겠다고 했다.
또한 기존에 사용되던 방식은 확장 포인트가 적절하게 오픈되어 있지 않아 직접 상속하거나 오버라이딩이 필요하지만, 신규 라이브러리는 확장 포인트를 고려해서 설계되었다.
spring-security-oauth2-autoconfigure 라이브러리를 사용하면 1.5에서의 설정 방식을 2.0에서도 그대로 사용할 수 있다.
1.5버전의 레퍼런스를 적용하고 싶거나 기존에 안전하게 작동하던 1.5버전의 방식을 사용하고 싶을 때 유용하다.
참고