Coding Note

스프링 시큐리티와 Oauth2.0 - 구글 서비스 등록 본문

SpringBoot/AWS_PJ

스프링 시큐리티와 Oauth2.0 - 구글 서비스 등록

jinnkim 2022. 3. 14. 02:06

 

 

Q1. 스프링 시큐리티(SpringSecurity)?

인증(Authentication)과 인가(Authorization) 혹은 권한 부여 기능을 가진 프레임 워크

 

= 스프링 기반의 애플리케이션에서는 보안을 위한 표준

 

책 기반에 따라 스프링 부트 2.0 방식인

Spring Security Oauth2 Client 라이브러리를 사용해서 진행함!

 

스프링 부트2.0 방식은 client 인증 정보만 입력하면 된다.

 

 


 

1. 구글 서비스 등록

구글 서비스에서 발급된 인증 정보를 통해서 로그인 기능과 소셜 서비스 기능을 사용할 수 있으니 무조건 발급받고 시작해야 된다!

 

구글 클라우드 플랫폼 홈페이지 접속!

 

Google Cloud Platform

하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요.

accounts.google.com

접속 후 아래 단계별로 진행하면 된다.

 

 

 

1. 구글 플랫폼 프로젝트 선택

 

 

 

 

2. 새 프로젝트 선택

프로젝트 생성 후 원하는 이름으로 지으면 된다.

 

 

3. 설정 페이지로 이동

 

 

4. 사용자 인증 정보

 

 

 

5. Oauth 클라이언트 ID 만들기

 

< 승인된 리디렉션 URI >

- 서비스에서 파라미터로 인증 정보를 주었을 때 인증이 성공하면 구글에서 리다이렉트 할 URL임.

- 스프링 부트 2.0 버전의 시큐리티에서는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드}로 리다이렉트 URL을 지원함.

- 사용자가 별도로 Controller를 만들 필요 없음

- 현재는 개발 단계임으로 위 주소로만 등록함.

- AWS 서버에 배포하게 되면 localhost 외에 주소를 추가해야 함.

 

위와 같이 진행하였으면 생성된 클라이언트 목록을 확인할 수 있다!!!!!

 

 

 

 

 

2. application-oauth 등록

아래 디렉토리에 application-oauth.properties 파일을 생성한다.

파일에 생성한 클라이언트 ID와 클라이언트 보안 비밀 코드를 다음과 같이 등록한다.

cope=profile,email

강제로 위와 같이 등록한 이유는 openid라는 scope가 있으면 Open Id Provider로 인식하기 때문이다.

 

구글 - OpenId Provider

네이버/카카오 등 - OAuth2Service

 

 

기존에 만들었던  application.properties의 설정을 추가한다.

spring.profiles.include=oauth

 

 

 

3. .gitignore 등록

위에서 생성한 클라이언트 ID와 클라이언트 보안 비밀 코드는 보안이 중요한 정보임으로 깃허브에 커밋 시 파일이 올라가는 것을 방지해야 된다!!

 

그러므로 .gitignore 파일에 아래와 같이 코드를 추가한다.

 

 

 

< 결과 확인>

application-oauth.properties 파일이 제외되고 커밋된 걸 확인할 수 있다.

 

 

완성!

Comments