기타
oauth2에 대하여
D.Y
2017. 6. 14. 00:49
반응형
OAuth2에 핵심은 권한과 인증에 있다.
예를들어, Facebook 간편 로그인 기능을 사용한다고 했을때 페이스북에 저장된 이름, 성별, 생년월일 등의 정보가 필요할 것 입니다.
그렇다면 유저는 페이스북에 내 정보를 달라고 요청할 것 입니다.
페이스북은 해당 페이스북의 계정 정보에 접근 할 수 있는 권한이 있는지와 해당 유저가 맞는지 인증을 합니다.
이때 사용하는 기술이 OAuth2 기술입니다.
OAuth2란?
- 웹. 앱 서비스에서 제한적으로 권한을 요청해서 사용할 수 있는 키(토큰)를 발급해주는 것.
- OAuth는 3rd party를 위한 범용적인 인증 표준 입니다.
- 외부 사이트와 인증기반의 데이터를 연동할 때 아이디/패스워드를 넘기는 방법은 매우 위험합니다.
- 따라서, 사용자 임시 인증을 위한 Token을 제공하여 사용하도록 하는 방법 입니다.
OAuth2를 사용한 권한 획득의 원리와 과정 (위의 OAuth2 Flow 그림 참조)
User(Resource Owner)
- 사용자, 정확하게 말하면 서버 관리자Authorization Server
- Oauth 인증서버Resource Server
- REST API ServerApplication(Client)
- REST API 서버를 사용하는 사용자
OAuth2의 개념 쉽게 이해하기 (위의 OAuth2 Flow 그림 참조)
(OAuth2를 사용하는 대표적인 서비스가 Facebook 로그인 연동이 있습니다. 이를 통해 알아보도록 하겠습니다.)
Resource Owner = 페이스북 서버 관리자
Authorization Server = 페이스북 인증 서버
Resource Server = 페이스북 REST API 서버
Client = 페이스북 REST API 서버를 사용 하는 나
- 내가 앱의 회원가입을 하려고 하는데 Facebook으로 3초만에 회원가입이라는 버튼을 발견합니다.
- 버튼을 누르고 Facebook 로그인 창이 나옵니다. 로그인을 합니다. 위의 그림에서 1번과 2번에 해당합니다.
- 로그인 후 해당 앱에서 "페이스북 정보 접근에 허용하시겠습니까?" 라는 문구가 나옵니다. 위의 그림에서 3번에 해당됩니다.
- 허용을 하게 되면 페이스북 정보에 접근 할 수 있는 access_token을 발급해 줍니다. 위의 그림에서 4번에 해당됩니다.
- 해당 토큰을 사용하여 페이스북의 허용된 데이터에 접근할 수 있게 됩니다.
즉, OAuth2는 권한을 부여하고, 인증을 통해서 발급 받은 토큰을 사용하여 허용된 자원에만 접근 하도록 하는 방식으로 사용됩니다.
참조
- https://vinebrancho.wordpress.com/2014/05/19/oauth2-restapi-server-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%95%B1%EC%9D%84-oauth2-0%EC%9C%BC%EB%A1%9C-%EC%A2%80-%EB%8D%94-%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C/
- http://d2.naver.com/helloworld/24942
- http://earlybird.kr/1584
- NodeJS + Passport를 사용하여 OAuth2.0 API 인증하기 (Facebook로그인)
- NodeJS + Passport를 사용하여 OAuth2.0 API 인증하기2 (Facebook로그인)
반응형