- OAuth 를 지원한다는 의미란?
- 트위터 와 Gnolia 개발자 간 "API 권한 위임" 에 대한 표준안 논의로 시작됨.
- 사용자가 그 사이트의 회원임을 인증(authentication) 했을때, 해당 회원의 권한(authorization) 을 부여한 Token 을 제공.
- 예) Facebook의 '3rd 파티 App' 에서는 Facebook OAuth 기반으로 "인증 및 권한" 을 활용 할 수 있게 됨.
- 이런 차원에서 OAuth 라는 "표준 스펙"이 나옴.
- 즉, 실생활을 들자면!
- 일반 로그인 : 회사에 'A매니저' 가 사원증 찍고 출입하는것.
- OAuth 로그인 : 'A매니저'가 'BP' 방문신청을 하고, 'BP'가 회사 도착시 'A매니저' 가 확인해주면... 'BP' 에게 출입증이 발급되어 출입하는것.
- OAuth 스펙
- '3rd 파티 App'에 ID&PW 가 노출되지 않도록 스펙화 되어있다.
- '인증' 과 '권한 부여' 를 동시에 할 수 있도록 스펙화 되어있다.
- 사용자 가 글로벌 사이트 에서 Token 을 revoke 할 수 있도록 스펙화 되어있다.
- OAuth 용어
- User : Service Provider에 계정을 가지고 있으면서, Consumer를 이용하려는 사용자.
- Service Provider : OAuth를 사용하는 Open API를 제공하는 서비스.
- Consumer : OAuth 인증을 사용해 Service Provider의 기능을 사용하려는 애플리케이션.
- Request Token : Consumer가 Service Provider에게 권한을 받기위해 사용하는 값.
- Access Token : Consumer가 Service Provider에게 권한을 행사하기위해 사용하는 값.
- Refresh Token : OAuth 2.0에서 Access Token 가 만료되면, 갱신하기위해 사용하는 값.
- 개발자 사이에서는 안정성 논란 ???
- 무한정 쓰지 못하게하고, refresh 때마다 세션 체크를 하면 훨신 좋을거 같은데 !!!
- 즉, 평소에는 access 으로 가볍게 쓰고~ 한번식 무거운 refresh 를 한다는 전략 ?!
- Scope : OAuth 2.0에서 API 권한 제어하기위해 사용하는 값.
- OAuth 방식
- http://oauth.net/core/diagram.png
- "RequestToken 요청" -> "User 인증페이지" -> "User 인증" -> "User 권한동의" -> "AccessToken 요청" -> "AccessToken 활용"
- 자세히는, client 종류 와 시나리오에 따라 아래 4+1가지가 있다. (그냥... '3-legged 모델' 방식만 쓰면 됨)
- 1) Authorization Code Grant
- 2) Implicit Grant
- 3) Password Credentials Grant
- 4) Client Credentials Grant
- 5) Extension
- Quiz
- access token과 refresh token의 차이와 구분을 하는 이유는?
- 만료 시간을 얼마로 해야하나?
- 유출된 토큰을 사용 중지하려면?
- 로그인 유지 방법
-끝-
(% 별책부록 : 인증설계 가이드.docx)
'통신과 프로토콜 그리고 보안' 카테고리의 다른 글
JWT (JSON Web Token) (0) | 2020.10.19 |
---|---|
HTTP 와 SSL 및 보안 (0) | 2019.11.10 |
SMTP , (POP3) , (IMAP) (0) | 2019.11.10 |
SSH (TELNET) , (scp), (rsync) (0) | 2019.11.10 |
인터넷(Internet) 과 웹(Web) (0) | 2019.10.27 |