OAuth
OAuth란?
- 인터넷 사용자들이 비밀번호를 제공하지 않고, 자신의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로 사용되는 접근 위임을 위한 개방형 표준
- 즉, 로그인 및 개인정보 관리 책임을 3rd party 에 위임하여 동작하도록 하는 것
- 이를 통해 ID/PW 사용 시 보안상 취약한 요소 제거
OAuth2?
- OAuth2는 기능의 단순화 기능과 규모의 확장성을 지원하기 위해 만들어짐
- OAuth1에서는 구현의 복잡함과 HMAC를 통한 암호화의 번거로움, 인증토큰 만료가 되지 않는 등의 문제
- https 를 통해 암호화 하여 과정의 단수화
- 다양한 인증 방식 제공
- API 서버를 인증서버와 리소스서버로 분리
구성 요소
Resource Owner
- 웹 서비스를 이용하려는 유저, 자원(개인정보) 소유자, 사용자
Client
- Resource server에 필요 자원을 요청하는 애플리케이션 서버
Authorization Server
- 권한 부여하는 서버
Resource Owner
는 ID/PW를 통해 Authorization Code 발급
Client
는 Authorization Code를 통해 Token 발급
Resource Server
- 사용자(
Resource Owner
)가 가지고 있는 애플리케이션 회사 서버
Access Token
- 자원에 대해 접근 권한이 인가 되었음을 나타내는 자격증명 토큰
Refresh Token
Access Token
이 만료기간이 다되면 이 토큰을 이용해 Access Token
을 재발급 받음
- ID/PW를 통해 재발급받지 않도록 함

출처: Payco 개발자 센터