inblog logo
|
stupefyee
    기술정리

    oauth 2.0

    Stupefyee's avatar
    Stupefyee
    Dec 10, 2024
    oauth 2.0
    Contents
    1. 개요2. 주요 용어3. OAuth 2.0 흐름4. OAuth 2.0의 Grant Type5. OAuth 2.0의 장점6. 액세스 토큰7. 리프레시 토큰8. 예시

    1. 개요

    • 외부 애플리케이션이 사용자 정보를 안전하게 접근할 수 있도록 허용하는 인증 및 권한 부여 프레임워크.
    • 목적: 사용자의 자격 증명을 외부 애플리케이션에 직접 제공하지 않고, 안전하게 자원에 접근할 수 있도록 하는 것.

    2. 주요 용어

    • 클라이언트 (Client): 인증을 요청하는 애플리케이션 (예: 웹 앱, 모바일 앱).
    • 리소스 서버 (Resource Server): 보호된 자원을 제공하는 서버 (예: Google API, Facebook API).
    • 인증 서버 (Authorization Server): 인증을 처리하고, 액세스 토큰을 발급하는 서버.
    • 사용자 (Resource Owner): 인증을 허용하고, 자원에 접근할 권한을 부여하는 사용자.

    3. OAuth 2.0 흐름

    1. 사용자 인증 요청
        • 클라이언트가 인증 서버에 인증 요청을 보냄.
    1. 사용자 동의 및 승인
        • 사용자는 인증 서버에서 애플리케이션에 대한 접근을 승인.
    1. 인증 서버에서 액세스 토큰 발급
        • 인증 서버가 승인된 클라이언트에 액세스 토큰을 발급.
    1. 리소스 서버에 액세스 토큰 전달
        • 클라이언트는 액세스 토큰을 리소스 서버에 전달하여 보호된 자원에 접근.
          • 예시) kakao 로그인
            예시) kakao 로그인

    4. OAuth 2.0의 Grant Type

    • Authorization Code Grant: 주로 웹 애플리케이션에서 사용.
    • Implicit Grant: JavaScript 클라이언트 또는 모바일 앱에서 사용 (보안상 위험).
    • Resource Owner Password Credentials Grant: 사용자 이름과 비밀번호를 사용하여 토큰을 직접 요청.
    • Client Credentials Grant: 서버 간 인증에 사용, 사용자 정보와 관계 없음.

    5. OAuth 2.0의 장점

    • 안전성: 사용자의 비밀번호를 외부 애플리케이션과 공유하지 않음.
    • 유연성: 다양한 종류의 클라이언트와 리소스 서버에서 사용 가능.
    • 접근 제어: 사용자가 어떤 자원에 접근할 수 있는지 세밀하게 제어 가능.

    6. 액세스 토큰

    • 액세스 토큰: 리소스 서버에 접근할 수 있는 권한을 부여하는 키.
    • 유효 기간: 일정 시간이 지나면 만료되며, 리프레시 토큰을 통해 갱신 가능.

    7. 리프레시 토큰

    • 리프레시 토큰: 만료된 액세스 토큰을 갱신하는 데 사용되는 토큰.

    8. 예시

    • 카카오 로그인: 사용자가 카카오 계정으로 로그인하여, 다른 애플리케이션에 카카오 API를 통해 자신의 데이터를 제공할 수 있게 됨.
     
    Share article
    Contents
    1. 개요2. 주요 용어3. OAuth 2.0 흐름4. OAuth 2.0의 Grant Type5. OAuth 2.0의 장점6. 액세스 토큰7. 리프레시 토큰8. 예시

    stupefyee

    RSS·Powered by Inblog