2023. 11. 14. 17:04 Web

OAuth2에 대해서.

반응형

해당 포스팅은 개인 공부용으로 정리하는 내용이며 잘못된 내용이 포함되어 있을 수 있습니다.

잚소된 내용은 댓글로 알려주시면 반영하겠습니다.

 

OAuth란 무엇인가.

공식 url : https://oauth.net/2/

 

OAuth 2.0 — OAuth

OAuth 2.0 OAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices. This

oauth.net

OAuth란 인증을 위한 개방형 표준 프로토콜이다.

예전부터 문제가 많이 발생했던 각 홈페이지가 특정 유저의 개인 정보를 수집, 활용하던 방식에서

유저와 특정 서비스가 믿을만한 중개사를 끼고 인증을 보장받는 방식으로 바뀐것이 OAuth 라고 생각하면 이해가 쉽다.

기존의 서비스에서 발생하던 문제들은 주로 불필요한 개인정보 수집, 그리고 이로인한 해킹등의 보보안 이슈로 인해서 발생하는 개인정보 유출 등이 있다. 이러한 문제를 해결하고자 많은 사람들이 고심하며 만들어낸 것이 OpenID, OAuth이다.

현시대에서 게임에 로그인하거나 쿠팡등의 서비스에 로그인할 때 "간편 로그인"으로 들어갈 수 있게 해주는 인증방식을 제공해주는 것이 OAuth이다.

 

OAuth에서의 주요 용어와 그 뜻

 

Authentication

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

 

Authorization

 - 접근 자격, 권한을 부여하는 것을 의미하며, 인가완료 시 접근권한이 담긴 AccessToken을 부여한다.

 

AccessToken

 - 리소스에 대한 접근 권한을 획득할 때 사용되는 Token으로 만료기간이 존재한다.

 - AccessToken은 특별히 어떤 형식을 지니고 있지 않다.

 

RefreshToken

 - AccessToken 만료 시 갱신하기 위한 용도로 사용되는 Token이다.

 

OAuth에서의 각 역할 주체

 

Resource Owner

 - 자원 소유자를 의미하며 특정 Service에 해당 자원에 대한 접근 권한을 부여해주는 주체를 의미한다.

 - ex : game에 간편로그인으로 접속하려는 user

 

Client

 - 자원에 대한 접근 요청을 하는 Service 또는 App

 

Resource Server

 - 사용자의 자원에 대한 호스팅을 담당하는 Server

 

Authorization Server

 - 인증과 권한 부여를 수행하는 Server로 client의 접근자격을 확인한 후 AccessToken을 발급하여 권한을 부여한다.

 

OAuth 인증 방식의 종류

 

Authorization Code

 - 권한 부여 승인 코드 방식

 - 가장 많이 쓰이고 있는 방식이다.

 => ex : 간편 로그인

 - client가 User를 대신하여 특정 자원에 대한 접근을 요청할 때 사용되는 방식.

 - Refresh Token이 사용 가능하다.

 

Impicit Grant [ legacy ]

 - 자격증명을 안전하게 저장하기 힘든 환경에 최적화된 방식.

 => ex : 자바스크립트 등

 - 권한부여 승인 코드 없이 바로 AccessToken이 발급된다.

 - Token 유출을 막기 위해서 해당 Token의 만료기간을 짧게 설정하며 RefreshToken의 사용이 불가능한 방식이다.

 

Resource Owner Password Credential Grant [ legacy ]

 - 자원 소유자 자격 증명 승인 방식

 - username, password를 통해 AccessToken을 받는 방식으로 RefreshToken까지 사용이 가능하다.

 - 이 방식은 권한서버, 리소스 서버, client가 모두 같은 시스템에 속해있을 때 사용해야 한다.

 

Client Credentials

 - client가 자신이 관리하는 resource 혹은 권한 서버에 해당 client를 위한 별도의 resource가 존재할 때 사용된다.

 

Device Code

 - 해당 인증방식은 브라우저가 없거나 입력이 제한된 장비에서 이전에 AccessToken를 위해  획득된 device code를 교체하기 위한 과정에서 사용된다.

 - client가 AccessToken이 만료된 경우 사용하는 인증 방식.

 - 이 경우 client는 user와 상호작용 없이 적합한 AccessToken을 획득할 수 있다.

 

반응형
Posted by Sweetmeats_boy

블로그 이미지
Sweetmeats_boy

태그목록

Yesterday
Today
Total

달력

 « |  » 2024.9
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함