본문 바로가기
프레임워크(Framework)

OAuth 2.0

by 송기동 2024. 2. 6.
728x90

OAuth 2.0(Open Authorization 2.0)

- 인증을 위한 개방형 표준 프로토콜

- 리소스 소유자를 대신하여 리소스 서버에서 제공하는 자원에 대해

   → Third-Party 프로그램에게 접근 권한을 위임하는 방식

 

OAuth 2.0 주요 용어

# Authentication

- 인증, 접근 자격이 있는지 검증하는 단계

# Authorization

- 인가, 자원에 접근할 권한을 부여하는 것

- 인가가 완료되면 리소스 접근 권한이 담긴 Access Token이 클라이언트에게 부여됨

# Access Token

- 리소스 서버에게서 리소스 소유자의 보호된 자원을 획득할 때 사용되는 Token

- 만료 기간이 있음

# Refresh Token

- Access Token 만료시 이를 갱신하기 위한 용도로 사용하는 Token

- 일반적으로 Access Token 보다 만료 기간이 김


OAuth 2.0 요소

# Resource Owner 

- 리소스 소유자

- 보호된 자원에 접근할 수 있는 자격을 부여해 주는 주체

- 클라이언트를 인증하는 역할을 수행

- 클라이언트가 제공하는 서비스를 이용하려는 사용자

# Client

- 보호된 자원을 사용하려고 접근 요청을 하는 애플리케이션

# Resource Server

- 사용자의 보호된 자원을 호스팅하는 서버 (구글, 네이버 등)

# Authorization Server

- 권한 서버

- 인증/인가를 수행하는 서버

- 클라이언트의 접근 자격을 확인 (ID, PW 등)

- Access Token을 발급하여 권한을 부여하는 역할


OAuth 2.0 부여 유형

1. Authorization Code Grant ( 권한 부여 승인 코드 방식)

- 기본이 되는 방식

- 권한 부여 승인을 위해 자체 생성한 Authorization Code를 전달하는 방식

- 클라이언트가 사용자를 대신하여 특정 자원에 접근을 요청할 때 사용되는 방식 (간편 로그인 등)

- 타사의 클라이언트에게 보호된 자원을 제공하기 위한 인증에 사용

   → 클라이언트의 비밀을 안전하게 보관할 수 있는 환경에서 사용

- Refresh Token 사용 가능

 

2. Implicit Grant (암묵적 승인 방식)

- 자격증명을 안전하게 저장하기 힘든 클라이언트에게 최적화된 방식 (JavaScript 등)

- 권한 부여 승인 코드 없이 바로 Access Token 발급

- Access Token 만료기간 짧음

- Refresh Token 사용 불가능

 

3. Resource Owner Password Credentials Grant ( 자원 소유자 자격증명 승인 방식)

- 간단하게 username, password 로 Access Token 을 받는 방식

- 클라이언트가 타사의 외부 프로그램일 경우 이 방식 적용 X

- 자신의 서비스에서 제공되는 어플리케이션일 경우 사용

- Refresh Token 사용 가능

 

4. Client Credentials Grant (클라이언트 자격증명 승인 방식)

- 클라이언트의 자격증명으로 Access Token을 획득하는 방식

- 클라이언트 자체의 리소스에 접근할 때 주로 사용

- Refresh Token 사용 불가능

 

728x90