OAuth
🔐 OAuth란?
정의
OAuth는 사용자 자원의 접근 권한을 다른 서비스에 위임하는 인증/인가 표준이다.
OAuth는 사용자의 비밀번호를 직접 공유하지 않고, 제한된 권한만 외부 서비스에 맡길 수 있게 해준다.
⚙️ 주요 개념
- 사용자의 비밀번호를 직접 전달하지 않는다.
- 인증(Authentication)과 인가(Authorization)를 분리해서 생각한다.
- Access Token을 중심으로 권한을 위임한다.
- 필요한 경우 Refresh Token으로 다시 권한을 갱신한다.
🔄 동작 방식
- 사용자가 애플리케이션에서 OAuth 로그인을 선택한다.
- OAuth 제공자에게 리다이렉트된다.
- 사용자가 로그인하고 권한을 승인한다.
- OAuth 제공자가 토큰을 발급한다.
- 애플리케이션이 토큰으로 API를 요청한다.
✅ 장점
- 비밀번호를 직접 전달하지 않는다.
- 토큰 기반으로 안전하게 권한을 위임할 수 있다.
- 외부 서비스 연동에 적합하다.
⚠️ 단점
- 토큰 유출 시 보안 위험이 있다.
- Redirect URI, scope, 만료 시간 등을 세심하게 관리해야 한다.
- 구조가 복잡해질 수 있다.
🔍 OAuth와 OAuth2
- OAuth는 권한 위임 개념과 표준의 큰 틀을 설명한다.
- OAuth2는 실무에서 가장 널리 쓰이는 권한 위임 표준이다.
- 소셜 로그인이나 외부 API 연동은 대부분 OAuth2 흐름을 따른다.
📌 정리
- OAuth는 사용자 권한을 다른 서비스에 위임하는 개념이다.
- 비밀번호를 직접 주지 않고 토큰으로 제한된 접근을 허용한다.
- 실무에서는 OAuth2와 함께 이해하는 것이 중요하다.
댓글남기기