끄적끄적 코딩일지

[Spring] Spring Security + OAuth2 (1) - 프로젝트 설정하기 본문

Spring

[Spring] Spring Security + OAuth2 (1) - 프로젝트 설정하기

BaekGyuHyeon 2022. 6. 8. 15:59

OAuth란?

Open Authorization의 약자로써 사용자 인증을 위한 개방형 프로토콜이다. 사용자들이 Id와 Password등을 제공하지 않고도 다른 웹사이트의 자신의 정보를 조회하여 로그인 하고자 하는 어플리케이션등에 로그인 하거나 회원가입을 쓸때 사용된다. 가장 좋은 예시가 Google이나 Naver, Kakao 등을 사용한 로그인이나 회원가입을 하는것이다.

 


Spring에서 OAuth를 사용하려면 Spring Security와 Spring OAuth2 Client 라이브러리가 필요하다. 

제일먼저 라이브러리부터 추가하도록 하자 

 

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    .....
}

Step 1. Project 등록하기

OAuth를 사용하는데 있어서 Google이나 Naver, Kakao에서 해당 사이트가 어떤 사이트인지도 모르는데 무턱대고 계정 정보를 제공할 수 없을것이다. 때문에 해당 사이트에 OAuth 사용신청을 하여 자신이 개발하는 Application정보를 등록해야한다. 원래는 등록을 하고 심사를 받아야 정식적으로 사용 가능하지만 테스트/공부 용도로 사용한다면 심사 없이도 해당 서비스를 사용할 수 있다. 단 해당 Application를 등록한 계정과 미리 등록한 테스트 계정 이외의 계정으로 로그인은 하지 못한다.

 

일단 Google 기준으로 설명을 하자면 

1. 아래의 Developer Console에 들어가 로그인을 한다.

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

2. 프로젝트 선택 -> 새 프로젝트 만들기

적당한 이름을 하여 프로젝트를 생성하면 5~10초후 해당 프로젝트가 생성된다.

 

3. 프로젝트가 생성되면 좌측 메뉴에서 API 및 서비스 -> OAuth 동의 화면 으로 들어간다.

4. 동의화면은 향후 모든 사용자가 사용할 것이기 때문에 외부로 설정하고 간단한 프로젝트 정보를 입력한다.

 

테스트 용도이기때문에 붉은색으로 설명한 항목만 필수적으로 입력하고 넘어가도 된다.

5. 그후 범위설정에서 로그인 진행시 필요한 정보를 설정을 한다.

6. 그후 테스트 사용자에서 테스트에 사용될 이메일을 입력하고 설정을 완료한다.

 

7. Oauth 설정을 통해 설정이 완료되면 사용자 인증 정보 -> 사용자 인증 정보 만들기 -> OAuth 클라이언트 ID를 선택한다.

8. 어플리케이션 유형은 웹 어플리케이션, 승인된 리디렉션 URI는 

http://localhost:8080/login/oauth2/code/google 으로 한다.

※ 승인된 리디렉션 URI란? : 사용자가 로그인을 하면 해당 정보를 제공받는 URI, oauth2-client 에서 google인 경우 default 값으로 

/login/oauth2/code/google 으로 설정되어 있다.

참고로 Naver, Kakao 등은 oauth2-client에서 기본 설정을 제공 안하므로 따로 지정을 해주어야 한다.(추후에 다룰 예정)

 

여기까지 완료되었으면 클라이언트와 비밀번호가 나올것이다. Spring에서 설정을 할때 필요하므로 기억해두자

 

다음 글에서 Spring에 대한 코드를 설명하도록 하겠다.

2022.06.08 - [Spring] - [Spring] Spring Security + OAuth2 (2) - 코드 구현하기

 

[Spring] Spring Security + OAuth2 (2) - 코드 구현하기

이 글은 저번글에서 Google Console에 OAuth 를 사용하기 위한 사전 준비를 하던 글에서 이어진다. 2022.06.08 - [Spring] - [Spring] Spring Security + OAuth2 (1) - 프로젝트 설정하기 [Spring] Spring Securit..

blablacoding.tistory.com