• 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

+ Recent posts