OAuth (Open Authorization)
OAuth는 인터넷 사용자들이 자원을 다른 웹 애플리케이션에서 안전하게 제3자로부터 접근하고 사용할 수 있도록 허용하는 프로토콜 및 프레임워크이다. 주로 웹과 모바일 애플리케이션에서 사용되며, 사용자가 자신의 데이터를 달느 서비스와 공유하거나 다른 서비스의 데이터를 사용할 수 있게 해준다.
OAuth 주체
1. Resource Owner
리소스 소유자. 우리의 서비스를 이용하면서, 구글, 페이스북 등의 플랫폼에서 리소스를 소유하고 있는 사용자
2. Client
Resource Server의 자원을 이용하고자 하는 서비스 = 우리가 개발하려는 서비스
3. Resource Server
구글, 페이스북, 트위터와 같이 리소스를 가지고 있는 서비스
4. Authorization Server
Resource Owner를 인증하고, Client에게 액세스 토큰을 발급해주는 서버
OAuth 동작 과정
- 로그인 요청 (1~2)
- 사용자가 클라이언트 애플리케이션 내에서 로그인을 요청
- 클라이언트는 사용자의 브라우저를 Authorization Server로 보내기 위해 Authorization URL을 생성
- URL = response type, client id, redirect uri, scope 포함
- 로그인 페이지 제공, ID/PW 입력 (3~4)
- 사용자는 클라이언트가 생성한 Authorization URL로 이동하여 로그인 페이지를 받음
- 사용자는 ID와 PW를 입력하여 자신을 인증
- Authorization Code 발급, Redirect URI로 리디렉트 (5~6)
- 인증이 성공하면 Authorization Server는 사용자를 클라이언트가 등록한 Redirect URI로 리디렉션시킴
- 이때, 리디렉트 URL에는 Authorization Code가 쿼리 스트링으로 포함됨
- Authorizatino Code와 Access Token 교환 (7~8)
- 클라이언트는 Authorization Code를 Authorizatino Server로 전송하고, 이를 교환하여 Access Token을 받음
- Access Token : 리소스 서버에 접근할 때 사용될 임시 토큰
- 로그인 성공 (9)
- 클라이언트는 Access Token을 획득하고, 사용자에게 로그인 성공을 알림
- 클라이언트는 Access Token을 획득하고, 사용자에게 로그인 성공을 알림
- Access Token으로 리소스 접근 (10~13)
- 클라이언트는 발급받은 Access Token을 사용하여 리소스 서버에 요청
- 리소스 서버는 Access Token의 유효성을 확인하고, 필요한 리소스를 제공
'Computer Science > Web' 카테고리의 다른 글
[Web] 인증 방식 (0) | 2023.08.31 |
---|---|
[Web] JWT (JSON Web Token) (0) | 2023.08.31 |
[Web] Web Server와 WAS의 차이 (0) | 2023.08.10 |
[Web] REST API (0) | 2023.08.10 |
[Web] HTTP Request Methods & Status Code (0) | 2023.08.01 |