일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- web
- SseEmitter
- html
- jQuery
- Stream
- server send event
- real time web
- Hibernate
- hanghae99
- cookie
- Java
- javascript
- jenkins
- DI
- spring
- Spring Security
- python
- programmers
- Project
- JWT
- 항해99
- oauth
- 생명주기 콜백
- Anolog
- JPA
- google oauth
- bean
- session
- WIL
- flask
- Today
- Total
끄적끄적 코딩일지
[Spring] Spring Security + OAuth2 (1) - 프로젝트 설정하기 본문
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에 들어가 로그인을 한다.
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] Entity에서 Collection 사용하기 (0) | 2022.06.09 |
---|---|
[Spring] Spring Security + OAuth2 (2) - 코드 구현하기 (0) | 2022.06.08 |
[Spring] Spring Security + JWT (0) | 2022.06.08 |
[Spring 기초] Scope 사용하기 (0) | 2022.06.07 |
[Spring 기초] 트랜잭션 (0) | 2022.06.06 |