1. OAuth란?
인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준
2. OAuth 참여자
- Resource Server
로그인을 할 때 사용하고자 하는 자원을 보유하고 있는 서버 (카카오 로그인이라면 카카오에 해당).
허용할 수 있는 보호된 리소스를 호스팅하는 서버, 엑세스 토큰을 사용하여 보호된 리소스 요청에 응답한다.
- Resource Owner
자원의 소유자로 로그인하는 실제 유저
- Client
Resource Server의 접근해 자원에 대한 정보를 가져오는 클라이언트
- Authorization Server
권한 서버. 인증/인가를 수항하는 서버로 클라이언트의 접근 자격을 확인하고 Access Token을 발하고 권한을 부여한다. 보통은 Resource Server와 Client사이에서 중개 역할을 한다.
3. OAuth Flow

1. User가 로그인이 필요한 클라이언트의 자원에 접근한다.
2. 권한 서버에 인증 코드을 요청한다
3. 권한 서버는 User를 로그인하도록 로그인창으로 redirect한다
4. User의 로그인과 함께 User에게 클라이언트가 등록한 정보 제공 동의 허용 여부에 대한 동의를 보낸다.
5. 권한서버는 클라이언트에게 Authorization(인가) Code를 발급한다.
6. 그리고 이를 받은 클라이언트는 Authorization Code, client id, secret을 권한 서버로 다시 전송한다,
7. 권한서버는 받은 것을 검증해 통과하면 ID Token과 Access Token을 발급한다.
8. 이 토큰을 가지고 이제는 API서버에 유저 데이터를 요청한다.
9. 해당 정보에 대한 요청을 클라이언트에게 보낸다.
아래는 이번 주 우리가 실습해본 카카오 로그인의 흐름을 나타낸 다이어그램이다.
카카오 역시 위의 그림과 동일한 흐름으로 인증하고 있음을 보여준다.

OAuth2 동작 흐름에 대해서 알아보자
OAuth란 사용자가 비밀번호를 노출하지 않고 다른 웹 사이트의 자신의 정보를 웹이나 애플리케이션에 접근 권한을 부여할 수 있는 개방형 표준. OAuth는 로그인 뿐만 아니라 데이터 접근 권한도 포
woodcock.tistory.com
OAuth 2.0 동작 방식의 이해
OAuth 2.0(Open Authorization 2.0, OAuth2)은 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토...
blog.naver.com
'Computer Science > Web' 카테고리의 다른 글
| HTTP 웹 지식 - URI와 웹 브라우저 요청 흐름 (0) | 2023.03.06 |
|---|---|
| HTTP 웹 지식 - 인터넷 네트워크 (0) | 2023.03.06 |
| HTTPS (0) | 2023.01.14 |
| XML (0) | 2022.12.28 |
| 인증 / 인가 / 쿠키-세션 인증 / JWT 인증 간단개념 (0) | 2022.12.03 |


