OAuth 2.0이란?
사용자의 자원에 대한 액세스를 제한된 범위에서 제3자 애플리케이션이 안전하게 수행할 수 있도록 허용하는 인증 및 권한 부여 프로토콜
이 프로토콜은 사용자가 비밀번호와 같은 민감한 정보를 노출하지 않고 클라이언트가 이 사용자 데이터를 요청할 수 있게 한다.
OAuth 2.0의 구성 요소
1. Resource Owner
- 데이터를 소유하고 있는 사용자
2. Client
- 자원 소유자의 데이터를 액세스하려는 제 3자 애플리케이션
3. Authorization Server
- 자원 소유자의 인증과 권한 부여를 관리하는 서버
4. Resource Server
- 자원 소유자의 데이터를 실제로 호스팅하는 서버
5. Access Token
- 클라이언트가 자원 서버에 요청을 보낼 때 사용하는 키
- 제한된 권한과 유효 기간을 가진다.
6. Authorization Code
- 클라이언트가 Access Token을 발급받기 위해 Authorization Server에서 일시적으로 발급받는 코드
OAuth 2.0의 흐름 과정
1. 사용자 인증 및 권한 부여 요청
- 클라이언트 → Resource Owner : 권한 요청
- 사용자는 브라우저를 통해 Authorization Server의 인증 화면으로 리디렉션
2. 인가 코드 발급
- 사용자가 권한을 승인하면
- Authorization Server → 클라이언트 : Authorization Code 발급
3. 액세스 토큰 발급
- 클라이언트 → Authorization Server : 인가 코드 전달
- 클라이언트는 Access Token을 발급 받음.
4. 자원 서버 요청
- 클라이언트 → Resource Server : Access Token을 사용하여 데이터 요청
5. 데이터 제공
- Resource Server → 클라이언트 : Access Token 확인 후 데이터 제공
Authorization Code
OAuth 2.0 프로세스에서 Access Token을 발급받기 위한 임시 코드
클라이언트가 직접 자격 증명을 사용하지 않고 Authorization Server를 통해 안전하게 토큰을 교환할 수 있도록 설계!
특징
1. 클라이언트가 Authorization Server로부터 받고, 사용자에겐 노출 X
2. 짧은 수명을 가지며, 한 번만 사용 가능
3. 주요 Authorization Code Grant Type에서 사용됨.
OAuth 2.0의 활용 예시
1. Google 로그인
2. 페이스북 공유
'개발 > Node.js' 카테고리의 다른 글
[Node.js] OAuth 2.0을 사용하여 카카오 로그인 구현하기 (2) | 2024.11.22 |
---|---|
[Node.js] CORS와 SOP의 개념 및 구현 방법 (0) | 2024.11.13 |
[Node.js] HTTP와 HTTPS의 차이점 및 보안 메커니즘 (0) | 2024.11.13 |
[Node.js] 네트워크의 기본 구조 (0) | 2024.11.13 |