OAuth

wkdtmddus·2023년 8월 11일
0

OAuth는 웹 및 애플리케이션에서 사용자 데이터에 대한 안전한 접근을 관리하기 위한 개방형 표준 프로토콜입니다.
주로 서드파티 애플리케이션이 사용자의 인증 정보 없이도 특정 서비스에 접근할 수 있도록 허용하는 프레임워크로 사용됩니다.
OAuth는 사용자의 인증 정보를 공유하지 않고도 권한 부여 및 인증을 처리하는데 사용됩니다.

OAuth의 핵심 개념과 흐름은 다음과 같습니다.


  1. 인증서버(Authorization Server) :

    사용자 인증 및 권한 부여를 관리하는 서버입니다.
    이 서버는 사용자의 동의를 얻어 토큰을 발급하고 관리합니다.

  2. 리소스 서버(Resource Server) :

    사용자의 데이터를 관리하고 보호하는 서버입니다.
    OAuth를 사용하여 인증 및 권한 검사를 수행하여 안전하게 데이터를 제공합니다.

  3. 클라이언트(Client) :

    서드파티 애플리케이션 또는 서비스입니다.
    사용자의 데이터에 접근하려는 대상입니다.


  • Authorization Code Flow :

    가장 일반적인 OAuth 흐름입니다.
    사용자는 클라이언트가 서비스에 접근할 때 허용해야 할 권한을 선택합니다.
    그 후 클라이언트는 인증 코드를 받아 인증 서버로 보내고, 이를 사용하여 Access Token을 얻습니다.

  • Implicit Flow :

    웹 애플리케이션에서 사용되는 흐름으로, 인증 코드 없이 Access Token을 직접 얻습니다.
    주로 클라이언트가 서비스의 프론트엔드에서 사용될 때 사용됩니다.

  • Client Credentials Flow :

    클라이언트가 자신의 이름과 비밀번호로 직접 Access Token을 요청하는 흐름입니다.
    주로 서비스 간 통신이 필요한 경우에 사용됩니다.

  • Resource Owner Password Credentials Flow :

    사용자의 아이디와 비밀번호를 클라이언트에게 제공하여 Access Token을 얻는 흐름입니다.
    사용자의 인증 정보를 클라이언트에게 노출시키는 것이므로 보안상 주의가 필요합니다.


OAuth는 보안과 사용자 편의성을 조화시키기 위한 프로토콜로, 사용자의 인증 정보 노출을 최소화하면서도 다양한 서비스 간의 상호 작용을 가능하게 합니다.


핵심 키워드

  • 실생활 예제
  • OAuth 동작방식
  • OAuth 정의

0개의 댓글