🌱 이번 장의 스터디 범위
- 스프링 부트 1.5와 스프링 부트 2.0에서 시큐리티 설정의 차이점
🌱 스프링 시큐리티란?
- 막강한 인증과 인가 기능을 가진 프레임워크
- 스프링 기반의 애플리케이션에서의 보안을 위한 표준
- 확장성을 고려한 프레임워크이기 때문에 손쉽게 추가, 변경 가능하며 1.5에서 2.0으로 넘어오면서 더욱 강력
🌱 로그인 기능을 id/password 방식보다 소셜 로그인 기능을 사용하는 이유는?
- 로그인 시 보안, 비밀번호 찾기, 회원가입 시 이메일 혹은 전화번호 인증, 비밀번호 변경, 회원정보 변경
- 직접 구현 시 앞선 목록을 모두 개발해야 하지만, OAuth 사용 시 이를 소셜에게 맡겨 서비스 개발에 집중 가능
🌱 스프링 부트 1.5 vs 스프링 부트 2.0
- 스프링 부트 1.5에서의 OAuth2 연동 방법이 2.0에서는 크게 변경되었으나
- spring-security-oauth2-autoconfigure 라이브러리로 인해 설정 방법에 크게 차이가 없음
- spring-security-oauth2-autoconfigure 라이브러리를 사용할 경우 스프링 부트 2에서도 1.5에서 쓰던 설정 사용 가능
- 신규 기능 사용, 스프링 부트용 라이브러리, 확장 포인터 고려를 위해 스프링 부트 2를 사용할 예정
- 스프링 부트 1.5와 2.0의 차이는 spring-security-oauth2-autoconfigure 라이브러리를 썼는지 확인하고 application.properties 혹은 application.yml 정보가 차이가 있는지 비교해야 함
// 스프링 부트 1.5 - url 주소를 모두 명시
google :
client : 인증정보
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
// 스프링 부트 2.0 - client 인증 정보만 입력하며 1.5에서 직접 입력한 값이 enum으로 대체
spring
security:
oauth2:
client:
clientId: 인증정보
clientSecret: 인증정보
- 스프링 부트 2.0에는 CommonOAuth2Provider라는 enum이 새롭게 추가
- 구글, 깃허브, 페이스북, 옥타의 기본 설정값은 모두 여기서 제공
- 이 외의 다른 소셜 로그인 (네이버, 카카오 등)을 추가한다면 직접 다 추가
public enum CommonOAuth2Provider {
GOOGLE {
@Override
public Builder getBuilder(String registrationId) {
ClientRegistration.Builder builder = getBuilder(registrationId,
ClientAuthenticationMethod.BASIC, DEFAULT_REDIRECT_URL);
builder.scope("openid", "profile", "email");
builder.authorizationUri("https://accounts.google.com/o/oauth2/v2/auth");
builder.tokenUri("https://www.googleapis.com/oauth2/v4/token");
builder.jwkSetUri("https://www.googleapis.com/oauth2/v3/certs");
builder.userInfoUri("https://www.googleapis.com/oauth2/v3/userinfo");
builder.userNameAttributeName(IdTokenClaimNames.SUB);
builder.clientName("Google");
return builder;
}
},
...
'Java-Spring > 스프링 부트와 AWS로 혼자 구현하는 웹 서비스' 카테고리의 다른 글
[Spring Boot] 05장. 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 - 구글 로그인 연동하기 (0) | 2021.10.30 |
---|---|
[Spring Boot] 05장. 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 - 구글 서비스 등록 (0) | 2021.10.29 |
[Spring Boot] 04장. 머스테치로 화면 구성하기 - 게시글 삭제 화면 만들기 (0) | 2021.10.14 |
[Spring Boot] 04장. 머스테치로 화면 구성하기 - 게시글 수정 화면 만들기 (0) | 2021.10.14 |
[Spring Boot] 04장. 머스테치로 화면 구성하기 - 전체 조회 화면 만들기 (0) | 2021.10.13 |