OAuth (Open Authorization)


OAuth는 인증을 위한 개방형 프로토콜입니다.
리소스 소유자를 대신해서 자원에 대한 접근 권한을 인증 받는 방식입니다.

OAuth2 구성


  1. Resource Owner : 사용자
  2. Client : 사용자가 접속해서 인증을 받고자 하는 서비스
  3. Authorization Server : 사용자 정보를 인증 받기 위한 인증 서버
  4. Resource Server : 실제 사용자 정보를 저장하고 있는 리소스 서버

OAuth2 인증 방식


  1. Authorization Code Grant

    • 권한 부여 승인 코드 방식
    • 권한 부여 승인 코드를 발급해서 Access Token을 교환하는 방식
    • 인증 절차가 많기 때문에 가장 안전한 방식으로 주로 타사 클라이언트에 보호된 자원을 제공하기 위해 사용
  2. Implicit Grant

    • 암묵적 승인 방식
    • 권한 부여 승인 코드 없이 바로 Access Token을 발급하는 방식
    • 클라이언트에 제약이 있을 때 주로 사용하며, 보안 이슈로 권장하지 않음
  3. Resource Owner Password Credentials Grant

    • 자원 소유자 자격 증명 승인 방식
    • 사용자 로그인 정보만으로 Access Token을 발급하는 방식
    • 자사 클라이언트에만 적용 가능하고 클라이언트, 인증 서버, 리소스 서버가 모두 같은 시스템에 있어야 함
  4. Client Credentials Grant

    • 클라이언트 자격 증명 승인 방식
    • 클라이언트가 자격을 증명하고 Access Token을 발급받는 방식
    • 사용자가 없고 클라이언트가 직접 관리하는 인증 서버 혹은 리소스 서버에 접근하는 경우 사용

OAuth2 프로세스


  1. Authorization Request (Client —> Resource Owner)

    • 사전에 서비스를 포털에 등록하고 Client ID 발급 및 Redirect URI 등록
    • 사용자가 서비스의 특정 기능을 이용할 때, 사용자의 로그인 인증을 포털에 요청
  2. Authorization Grant (Resource Owner —> Client)

    • 포털에서 서비스의 Client ID, Redirect URI 등 요청 정보 체크
    • 사용자 로그인이 정상 처리되면, Scope 요청을 승인한 후에 권한 Code 발급해서 리다이렉트
  3. Authorization Grant (Client —> Authorization Server)

    • 서비스에 발급된 권한 Code로 포털에 Access Token 발급 요청
  4. Access Token (Authorization Server —> Client)

    • 요청된 권한 Code가 정상이면, 포털에서 서비스에 Access Token 발급
  5. Access Token (Client —> Resource Server)

    • 발급된 Access Token으로 포털에 필요한 리소스 정보를 요청
  6. Protected Resource (Resource Server —> Client)

    • Access Token 검증 후에, 요청 리소스 리턴

OAuth2 워크플로우
OAuth2 워크플로우

© 2025, All Rights Reserved.

Quick Links