2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #19 OAuth

2023. 9. 29. 16:05ㆍ카테고리 없음
반응형

OAuth

 

 

OAuth란?

 

  • OAuth(Open Authorization)는 인터넷 사용자의 리소스(예: 웹 서비스, 애플리케이션)에 대한 안전하고 제한된 액세스를 제공하기 위한 개방형 표준 인증 프로토콜이다.
  • OAuth는 사용자의 인증 정보(예: 패스워드)를 제공하지 않고도 서비스나 애플리케이션 간에 권한을 부여할 수 있는 방법을 제공한다.

 

외부 서비스의 인증 및 권한 부여

OAuth를 사용하면 사용자가 자신의 계정 정보(예: 소셜 미디어, 클라우드 서비스)를 제공하지 않고도 다른 서비스나 애플리케이션에 대한 접근 권한을 부여할 수 있습니다.

 

애플리케이션 간 API 액세스

웹 애플리케이션이나 모바일 앱이 외부 서비스의 API(응용 프로그래밍 인터페이스)를 안전하게 사용할 수 있도록 한다. 
예를 들어, 사용자의 Google 계정으로 로그인하고 Google Calendar API에 접근하여 캘린더 정보를 가져올 수 있다.

 

권한 제어

사용자는 OAuth를 통해 어떤 권한을 부여할 것인지 선택할 수 있으며, 이러한 권한은 사용자의 동의를 통해 부여된다. 사용자는 언제든지 권한을 취소하거나 제어할 수 있다.

 

OAuth의 구성 요소

 

Resource Owner (리소스 소유자)

  • 자신의 데이터나 리소스에 대한 액세스를 제어하는 사용자.

Client (클라이언트)

  • 사용자의 리소스에 접근하기 위해 권한을 얻고자 하는 애플리케이션이나 서비스.

Authorization Server (인가 서버)

  • 사용자가 클라이언트에게 권한을 부여하고, 클라이언트를 위해 액세스 토큰을 발급하는 서버.

Resource Server (리소스 서버)

  • 실제로 사용자의 데이터나 리소스를 호스팅하고 있는 서버. 클라이언트가 이 서버에 액세스하기 위해 액세스 토큰을 사용한다.

Access Token (액세스 토큰)

  • 클라이언트가 리소스 서버에 접근할 때 사용하는 토큰. 이 토큰을 이용해 클라이언트는 사용자의 데이터나 리소스에 접근할 수 있다.

요약


안전한 방식으로 다른 서비스나 애플리케이션에 접근 권한을 부여하는 인증 프로토콜로,
사용자의 개인 정보를 노출하지 않고, 사용자 동의를 통해 권한을 부여하며, API 액세스와 권한 제어를 지원합니다. 주요 구성 요소는 리소스 소유자, 클라이언트, 인가 서버, 리소스 서버 및 액세스 토큰으로 이루어져 있습니다. 이로써 사용자 개인 정보 보호와 다른 서비스 간 상호 작용이 가능해집니다.
반응형