설계·개발·운영보안·연동 · 약 8분

APP DEVELOPMENT TERM

OAuth

비밀번호 없이 권한을 위임하는 표준

OAuth는 사용자가 다른 서비스의 비밀번호를 새 앱에 알려주지 않고 특정 데이터나 기능에 접근할 제한된 권한을 위임하는 표준 방식입니다.

OAuth 2.0오어스오픈 인증 권한 위임

30초 이해

OAuth는 다른 서비스의 비밀번호를 넘기는 대신 사용자가 허용한 범위만 앱에 맡기도록 권한을 위임하는 방식입니다

새 앱이 사용자의 외부 계정 정보에 접근해야 할 때 아이디와 비밀번호를 직접 받으면 위험이 커집니다. OAuth에서는 사용자가 원래 서비스의 화면에서 허용할 범위를 확인하고, 앱은 그 결과로 받은 제한된 접근 권한을 사용합니다.

OAuth는 본래 권한 위임을 위한 체계이며 소셜 로그인 자체와 완전히 같은 말은 아닙니다. 실제 로그인에서는 제공사가 지원하는 인증 방식과 사용자 식별 정보가 함께 쓰일 수 있으므로 로그인·계정 연결·권한 동의를 나누어 확인해야 합니다.

한 장으로 이해

사용자가 OAuth로 외부 서비스 권한을 연결하는 과정

앱이 권한을 요청하면 사용자가 원래 서비스에서 확인하고 제한된 토큰을 받아 허용된 기능만 사용합니다.

  1. 01

    권한 요청

    앱이 필요한 정보와 권한 범위를 외부 서비스에 요청합니다.

  2. 02

    사용자 확인

    사용자가 원래 서비스에서 로그인하고 허용 범위를 확인합니다.

  3. 03

    코드·토큰 발급

    허용 결과를 안전한 경로로 교환해 접근 토큰을 받습니다.

  4. 04

    제한된 접근

    앱이 토큰으로 허용된 API만 사용하고 만료·철회를 처리합니다.

OAuth의 핵심은 편리한 버튼이 아니라 비밀번호를 공유하지 않고 필요한 권한만 제한적으로 위임하는 것입니다.

언제 사용하는 개념인가요?

01

소셜 로그인을 연결할 때

외부 계정의 승인 흐름을 거쳐 우리 서비스 계정과 안전하게 연결합니다.

02

외부 데이터 접근을 허용할 때

캘린더·파일·광고 계정처럼 사용자가 선택한 범위의 기능만 앱에 위임합니다.

03

연동 권한을 운영할 때

토큰 만료·갱신·철회와 사용자가 연결을 해제한 뒤의 처리를 관리합니다.

왜 중요한가요?

  • 외부 비밀번호를 직접 보관하지 않습니다

    사용자는 원래 서비스에서 로그인하고 우리 앱은 제한된 접근 권한을 받아 사용합니다.

  • 허용할 권한 범위를 줄일 수 있습니다

    필요한 정보와 행동만 요청해 과도한 개인정보 접근과 사용자 불안을 줄입니다.

  • 토큰과 이동 경로를 보호해야 합니다

    리디렉션 주소, 승인 코드와 토큰이 유출되거나 다른 계정에 잘못 연결되지 않도록 검증해야 합니다.

실제 상황 예시

클래스 예약 앱에 소셜 로그인을 붙인다면

로그인 버튼 뒤에서 외부 계정 확인, 우리 회원 연결과 세션 생성이 이어집니다.

처음 연결할 흐름

  • 필요한 계정 정보와 권한 최소화
  • 등록된 리디렉션 주소로 복귀
  • 외부 계정과 기존 회원 연결 확인
  • 우리 서비스 로그인 세션 생성

운영 중 확인할 흐름

  • 토큰 만료·갱신·철회
  • 같은 이메일의 다른 계정 충돌
  • 사용자 연결 해제와 정보 삭제
  • 제공사 정책·SDK 변경 대응

소셜 로그인 성공만 보지 말고 기존 회원과 중복되지 않는지, 연결을 끊었을 때 우리 서비스 계정이 어떻게 되는지까지 정해야 합니다.

자주 하는 오해

OAuth는 소셜 로그인 기능 이름이다

OAuth는 권한 위임 표준입니다. 로그인에서 활용될 수 있지만 사용자 인증과 계정 연결은 제공 방식에 맞춰 별도로 확인해야 합니다.

OAuth를 쓰면 외부 서비스 비밀번호를 받는다

사용자는 원래 서비스에서 로그인하고 앱은 비밀번호 대신 허용 범위가 제한된 토큰을 사용합니다.

액세스 토큰은 한 번 받으면 계속 쓸 수 있다

토큰은 만료·철회될 수 있으며 범위와 발급 방식에 따라 갱신 또는 재승인이 필요합니다.

우리 서비스에 적용할 때 확인하세요

  1. 1정말 필요한 권한 범위만 요청하나요?
  2. 2등록된 리디렉션 주소와 요청 상태를 정확히 검증하나요?
  3. 3토큰을 URL이나 로그에 노출하지 않고 안전하게 보관하나요?
  4. 4기존 회원과 외부 계정을 잘못 합치지 않나요?
  5. 5만료·철회·연결 해제 뒤의 사용자 흐름이 있나요?

공식 참고

서비스 기준은 공식 문서에서 다시 확인하세요

다음 자료

이해한 내용을 바로 적용해보세요

사용자 신원과 권한을 구분하는 인증·인가, 로그인 상태를 잇는 세션·토큰과 안전한 전송을 위한 HTTPS를 함께 확인하세요.

로그인 버튼보다 권한 범위·계정 연결·토큰 종료 흐름을 먼저 확인하세요

사용자가 허용하고 끊을 수 있는 범위와 계정 충돌 처리까지 정해야 안전한 연동이 됩니다.