OAuth

앱에 비밀번호를 넘기지 않고 정해진 범위의 자원 접근 권한을 위임하는 프레임워크예요.

쉽게 비유하면

집 열쇠 전체 대신 정해진 방과 시간에만 쓸 수 있는 출입 권한을 주는 것과 같아요.

조금 더 자세히

대표적으로 OAuth 2.0에서는 인가 서버가 접근 토큰을 발급하고, API가 그 토큰과 범위를 검증해 요청을 처리해요. 사용자 대신 앱이 접근하거나 서비스끼리 권한을 받는 흐름 등이 있어요.

OAuth 자체의 핵심은 인증이 아니라 권한 위임이에요. 소셜 로그인에는 보통 OAuth 2.0 위의 인증 계층인 OpenID Connect 등을 사용하며, 접근 토큰만으로 신원을 임의 해석하면 안 돼요.

왜 생겼나요

외부 앱이 사용자의 비밀번호를 보관하지 않고도 필요한 서비스 기능에 제한적으로 접근하도록 설계됐어요.

어떻게 작동하나요

  1. 1. 권한 요청 앱이 필요한 접근 범위를 인가 서버에 요청해요.
  2. 2. 허용과 발급 해당 흐름에 맞는 승인·검증 후 접근 토큰을 발급해요.
  3. 3. 자원 접근 앱이 토큰으로 API를 호출하고 서버가 유효성과 범위를 확인해요.

활용 예시

  • 일정 앱에 캘린더 읽기 허용
  • 파일 서비스에 제한된 업로드 권한 부여
  • 서비스 간 API 접근 권한 발급

OAuth vs SSO

OAuthSSO
핵심 목적제한된 자원 접근 권한 위임여러 서비스의 반복 로그인 줄이기
관계OAuth 2.0 위에 인증 계층을 더한 OIDC 등이 있음OIDC나 SAML 등으로 구현 가능

흔한 오해

OAuth가 곧 로그인 표준인가요?

주된 목적은 자원 접근 권한 위임이에요. 로그인은 OpenID Connect 같은 인증 프로토콜과 올바른 검증을 함께 사용해요.

이렇게 쓰여요

외부 앱 연동

“OAuth 권한은 필요한 범위만 요청하고, 로그인 신원 확인은 OpenID Connect 흐름으로 검증하자”라고 이야기해요.

관련 용어

함께 보면 좋은 용어

최종 업데이트