반응형
SMALL
OAuth 2.0은 사용자가 비밀번호를 직접 입력하지 않고, 소셜 계정을 이용해 다른 애플리케이션에서 인증을 수행할 수 있도록 해주는 인증 프로토콜입니다.
예를 들어, Google, Facebook, Naver, Kakao 등의 계정을 사용하여 로그인할 수 있습니다.
1. OAuth 2.0의 핵심 개념
OAuth 2.0에서는 4가지 주요 역할이 있습니다.
- Resource Owner (리소스 소유자) → 사용자
- OAuth 2.0을 이용하여 로그인하고자 하는 실제 사용자.
- 예: Google 계정을 가지고 있는 사용자.
- Client (클라이언트) → 서비스 제공 애플리케이션
- 사용자가 로그인하려는 애플리케이션 (예: 쇼핑몰, 웹사이트, 모바일 앱).
- 예: 네이버 로그인 버튼을 포함한 웹사이트.
- Authorization Server (인증 서버) → 소셜 로그인 제공자
- 클라이언트가 사용자를 대신하여 인증을 요청하는 서버.
- 예: Google, Facebook, Naver, Kakao의 로그인 서버.
- Resource Server (리소스 서버) → 사용자 정보 제공 서버
- 사용자의 정보를 포함하고 있으며, Access Token을 통해 보호된 리소스(사용자 정보)를 제공하는 서버.
- 예: Google API에서 사용자 프로필을 가져오는 서버.
2. OAuth 2.0 동작 방식 (Authorization Code Grant)
가장 많이 사용되는 Authorization Code Grant 방식을 기준으로 설명하겠습니다.
1️⃣ 사용자가 클라이언트(웹사이트 또는 앱)에서 소셜 로그인 버튼 클릭
- 예: "Google 로그인" 버튼 클릭.
2️⃣ 클라이언트가 인증 서버로 로그인 요청 (Authorization Request)
- 클라이언트(웹사이트)는 OAuth 2.0 제공자(Google, Naver, Kakao 등)의 인증 서버로 로그인 요청을 보냄.
- 브라우저가 OAuth 제공자의 로그인 페이지로 이동함.
3️⃣ 사용자가 로그인 및 권한 승인
- 사용자는 OAuth 제공자의 로그인 페이지에서 로그인하고, 애플리케이션(클라이언트)에게 사용자 정보를 제공할지 승인함.
4️⃣ 인증 서버가 클라이언트에게 Authorization Code 반환
- 인증이 성공하면 Authorization Code가 클라이언트의 Redirect URI로 전달됨.
5️⃣ 클라이언트가 인증 서버에 Authorization Code로 Access Token 요청
- 클라이언트는 받은 Authorization Code를 이용하여 인증 서버에 Access Token을 요청함.
6️⃣ 인증 서버가 클라이언트에게 Access Token 발급
- 인증 서버가 Access Token을 클라이언트에게 반환함.
7️⃣ 클라이언트가 Resource Server에서 사용자 정보 요청
- 클라이언트는 받은 Access Token을 이용해 Resource Server에 사용자 정보를 요청함.
8️⃣ 리소스 서버가 사용자 정보 반환
- Resource Server는 Access Token을 검증한 후, 사용자 정보를 반환함.
9️⃣ 클라이언트가 사용자 정보를 받아 회원가입 또는 로그인 처리
- 클라이언트(웹사이트 또는 앱)는 받은 사용자 정보를 DB에 저장하거나, 로그인 세션을 생성함.
반응형
LIST
'cs정리' 카테고리의 다른 글
세션 ID VS JWT (1) | 2025.02.06 |
---|---|
JWT를 이용한 인증 방식의 동작 원리 (0) | 2025.02.05 |
SPRING SECURITY 개념과 사용하는 이유 (0) | 2025.02.05 |
spring IOC 컨테이너란? (0) | 2024.11.11 |
스프링 빈 주입시 생기는 문제들 (0) | 2024.11.09 |