일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- codingtest
- security
- 2차원배열
- 프로그래머스
- springboot
- html
- 로그인
- springSecurity
- 리눅스
- 시큐리티
- 시큐리티 로그인
- gradle
- JAVA11
- 시큐리티로그인
- Spring boot
- Linux
- java
- 코딩테스트
- 반복문
- programmers
- 소스트리
- 스프링 부트
- StyleSheet
- javascript
- 목록
- sql
- 싱글톤
- 시큐리티 로그아웃
- css
- input태그
- Today
- Total
JAVAIARY
OAuth 본문
나의 애플리케이션(Client)
소셜로그인(서비스)제공자(Resource Server) (+Authorization Server)
정보 소유자(Resource Server)
Client ID : 개발된 애플리케이션 식별 아이디
Client Secret : 개발된 애플리케이션의 비밀번호
Authorized redirect URIs(Callback URL)
1. [리소스 오너]는 [클라이언트]에 접속하고 [클라이언트]는 [리소스오너]에게 소셜 로그인 버튼을 제공
ex. 구글로 로그인하기, 네이버로 로그인하기 등....
해당 버튼들의 URL은 다음과 같음
https://resource.server/?client_id=클라이언트아이디&scope=접근권한범위2,3&redirect_uri=콜백kurl
2. [리소스 서버]는 [리소스 오너]에게 [클라이언트]가 2,3 정보에 대한 접근 권한을 요청했으며, 정보 제공에 동의할 것인지를 물어봄
[리소스 서버]에 저장된 정보 : client id, client Secret, redirect URL
3. [리소스 오너]가 동의하면 [리소스 서버]에 [리소스 오너]의 user id가 정보 2,3의 정보 제공을 동의 했다는 내용을 저장
[리소스 서버]에 저장된 정보 : client id, client Secret, redirect URL, user id , scope 2, 3
4. [리소스 서버]가 authorization code(임시 비밀번호) 를 [리소스 오너]에게 전송
Location: 콜백 주소 ? code = 권한코드
5. [리소스 오너]가 임시 비밀번호를 가지고 Client에 접속
6. [클라이언트]가 [리소스서버]에 관련 정보 전송
https:// resource.server/token?
grant_type=authorization_code&
code=권한코드&
redirect_uri=콜백주소&
client_id=아이디&
client_secret=시크릿
7. [리소스서버]는 저장된 정보와 일치하는지 확인 후, authorization code 삭제, 액세스 토큰 발급
8. 발급된 액세스 토큰을 [클라이언트] 에 응답, [클라이언트]가 저장
'lectureNote > SPRING' 카테고리의 다른 글
Spring Security - 2. 로그인 처리 (0) | 2022.12.16 |
---|---|
Spring Security - 1. 환경설정 (0) | 2022.12.14 |
비즈니스 로직과 서비스 (0) | 2022.11.16 |
쿠키와 세션 (0) | 2022.11.13 |
@ 어노테이션 (0) | 2022.11.12 |