OAuth2(Open Authorization)
제3자 애플리케이션이 사용자 비밀번호를 직접 알지 않고도, 사용자의 권한을 위임받아 자원에 접근할 수 있도록 설계된 인증 및 권한 부여 프레임워크. 주로 소셜 로그인이나 API 접근 권한 관리에 사용된다.
어플리케이션을 이용할 때 사용자가 해당 어플리케이션에 ID, PW등의 정보를 제공하지 않고, 신뢰할 수 있는 외부 어플리케이션(Naver, Google, Kakao, Facebook 등)이 제공하는 Open API에 ID, PW를 입력하여 해당 어플리케이션이 인증 과정을 처리해주는 방식.
'2'는 버전 번호를 뜻함(2는 보안은 자체 암호화가 아니라 HTTPS에 위임함(간단 버전))
핵심 개념 요약
용어 | 설명 |
Resource Owner (리소스 소유자) | 일반적으로 사용자. 자신의 자원(예: 카카오 프로필 정보)에 접근 권한을 가짐 |
Client (클라이언트) | 제3자 앱. 사용자의 허락을 받아 자원에 접근하려 함 |
Authorization Server (인가 서버) | 접근 권한을 발급하는 서버. 보통 카카오, 구글, 네이버 등이 해당 |
Resource Server (자원 서버) | 실제 데이터를 가지고 있는 서버 (예: 사용자 정보 API) |
Access Token | 사용자 권한을 위임받았다는 증거. API 호출 시 사용 |
Refresh Token | Access Token이 만료되었을 때 새로 발급받기 위한 토큰 |
일반적인 흐름 (Authorization Code Grant 기준)
Authorization Code Grant (카카오, 네이버, 구글, 페이스북, 애플 로그인)
- 사용자 인증을 제3자 앱이 대신하지 않고, 인가 서버가 직접함
- 실제 토큰 발급은 백엔드에서 이뤄져 보안에 유리
- 토큰 유효 기간이 짧아도 Refresh Token으로 연장 가능
- 사용자 로그인 요청
- 사용자가 클라이언트 앱에서 "페이코로 로그인" 클릭
- Authorization Code 발급
- 클라이언트는 사용자를 페이코 인가 서버로 리다이렉트
- 사용자 동의 → 페이코는 Authorization Code 반환
- 6. 인증 서버는 미리 등록된 Redirect URI로 사용자를 다시 보내줌
- ㄴ사용자가 인증을 마치고 Authorization Code를 받은 다음 그 코드를 서비스(우리 서버)가 받아서 인식하는 단계
- GET https://your-service.com/oauth/callback?code=abc123 여기서 abc123이 Authorization Code임
- redirect_uri: https://your-service.com/oauth/callback 이런식으로 yml설정을 해야함
- Access Token 발급
- 클라이언트는 Authorization Code를 백엔드에서 페이코 인가 서버에 전달
- Access Token 과 Refresh Token을 응답으로 받음
- API 요청
- Access Token을 사용하여 페이코 사용자 정보 API 등에 요청, 원하는 제공되는 서비스 이용.
'멋쟁이사자처럼_부트캠프 > 개념STUDY' 카테고리의 다른 글
TDD와 테스트 전략 (0) | 2025.06.22 |
---|---|
JWT (0) | 2025.05.20 |
기본 웹 아키텍처 개념 (0) | 2025.05.13 |
RabbitMQ란 (0) | 2025.05.06 |
CI/CD 개념 정리 (0) | 2025.04.25 |