🔐 OAuth란?

정의

OAuth는 사용자 자원의 접근 권한을 다른 서비스에 위임하는 인증/인가 표준이다.

OAuth는 사용자의 비밀번호를 직접 공유하지 않고, 제한된 권한만 외부 서비스에 맡길 수 있게 해준다.

⚙️ 주요 개념

  • 사용자의 비밀번호를 직접 전달하지 않는다.
  • 인증(Authentication)과 인가(Authorization)를 분리해서 생각한다.
  • Access Token을 중심으로 권한을 위임한다.
  • 필요한 경우 Refresh Token으로 다시 권한을 갱신한다.

🔄 동작 방식

  1. 사용자가 애플리케이션에서 OAuth 로그인을 선택한다.
  2. OAuth 제공자에게 리다이렉트된다.
  3. 사용자가 로그인하고 권한을 승인한다.
  4. OAuth 제공자가 토큰을 발급한다.
  5. 애플리케이션이 토큰으로 API를 요청한다.

✅ 장점

  • 비밀번호를 직접 전달하지 않는다.
  • 토큰 기반으로 안전하게 권한을 위임할 수 있다.
  • 외부 서비스 연동에 적합하다.

⚠️ 단점

  • 토큰 유출 시 보안 위험이 있다.
  • Redirect URI, scope, 만료 시간 등을 세심하게 관리해야 한다.
  • 구조가 복잡해질 수 있다.

🔍 OAuth와 OAuth2

  • OAuth는 권한 위임 개념과 표준의 큰 틀을 설명한다.
  • OAuth2는 실무에서 가장 널리 쓰이는 권한 위임 표준이다.
  • 소셜 로그인이나 외부 API 연동은 대부분 OAuth2 흐름을 따른다.

📌 정리

  • OAuth는 사용자 권한을 다른 서비스에 위임하는 개념이다.
  • 비밀번호를 직접 주지 않고 토큰으로 제한된 접근을 허용한다.
  • 실무에서는 OAuth2와 함께 이해하는 것이 중요하다.

연결문서

댓글남기기