JuBin's personal study blog

OAuth란? 본문

Protocol

OAuth란?

JuBin 2020. 12. 11. 15:07
반응형
OAuth(Open Authentication, Open Authorization) , 유저 자신이 가진 정보에 대한 접근권한(Authorization)
자신이 누구인지 나타내는 인증(Authentication)에 대한 프로토콜

 

 

OAuth 공식 문서에서의 예시

 

내차는 차키가 두종류 있다. 하나는 기본차키(모든기능을 다가지고있음), 또하나는 발렛용 차키

발렛용 차키는 1~2KM 정도만 운전이 가능하고, 트렁크도 열수없고, 차문도 열수없다.(접근권한 Authorization)

키를 소유한 차 주인(나) (인증, Authentication)

키 (AccessToken)

 

 

 

Resource Owner : 보호된 Resource에 접근할수 있는 권한을 부여하는 Entity

>>>> 예시에서 자신의 자동차(Resource)에 접근 권한을 부여할 수 있는 자(나)

 

Resource Server : 보호된 Resource를 가지고 있는 서버

>>>> 트렁크, 운전 등등 기능을 가진 자동차

 

Client : Resource Owner를 대신하여 Resource에 접근하려는 앱

>>>> 차주인(Resource Owner)를 대신하여 자동차에 접근하려는 발렛파킹 직원

 

Authorization Server : Resource Owner를 인증하고 권한을 얻은 후 AccessToken을 발행하는 서버

>>>> 차 주인임을 인증하고, 차키(Access Token)를 만들어주는 제작소

 

 

 

OAuth2.0에서 Resource Owner가 Access Token을 발급하는 방법

  • Authorization Code : Resource Owner가 Authorization Server에게 자기가 누구인지 인증받고 접근권한을 부여한다. 그러면 Authorization Code를 발급받고 Client에게 전달한다. Client는 Authorization Server로 가서 AccessToken으로 변환하게 된다.
  • Implicit : Authorization Code를 발급 받지 않고 AccessToken을 바로 발급받는다.
    Authorization Code 방법에 비해 보안상 단점이 존재한다.
    AccessToken 수명이 짧고, RefreshToken(토큰갱신)이 없다.
  • Resource Owner Password Credentials : 사용자의 아이디, 비밀번호를 AccessTOken을 얻기위한 Authorization Grant로 사용된다. 이 방법은 신뢰할수 있는 앱에 사용해야 된다. 그렇지 않다면 보안에 매우 취약함.
  • Client Credentials : Client == Resource Owner 즉 동등한 권한
    일반적인 소셜 로그인 방법이 아닌 백엔드에서 주로 사용한다.

 

전체적인 flow

반응형

'Protocol' 카테고리의 다른 글

서버인증 OAuth2, SNS 로그인 - 3  (0) 2020.12.15
OAuth2.0이란? - 2  (0) 2020.12.11