Next-Squad / Interview-Question

주니어 백엔드 개발자 면접 시에 물어볼 수 있는 질문에 대해서 같이 공부하고, 공유하고자 합니다.
169 stars 11 forks source link

[NETWORK] 39. OAuth란 무엇인가요? #40

Open jeremy0405 opened 2 years ago

jeremy0405 commented 2 years ago

OAuth란 무엇인가요?

키워드

OAuth, 인증, 인가, access token, refresh token, authorization code

jeremy0405 commented 2 years ago

기업들이 만든 인증 표준으로 현재는 OAuth 2.0이 사용된다.

구글, 네이버, 깃허브와 같은 이미 많은 사람들이 가입한 Major Provider의 인증체계를 활용하여 새로운 사이트에 아이디, 비밀번호 등의 개인 정보를 저장하지 않아 사용자의 정보 유출을 막으면서 간단하게 인증과 권한을 부여받을 수 있다는 장점이 있다.

Protocol flow

+----------+
| Resource |
|   Owner  |
|          |
+----------+
    ^
    |
    (B)
+----|-----+          Client Identifier      +---------------+
|         -+----(A)-- & Redirection URI ---->|               |
|  User-   |                                 | Authorization |
|  Agent  -+----(B)-- User authenticates --->|     Server    |
|          |                                 |               |
|         -+----(C)-- Authorization Code ---<|               |
+-|----|---+                                 +---------------+
  |    |                                         ^      v
 (A)  (C)                                        |      |
  |    |                                         |      |
  ^    v                                         |      |
+---------+                                      |      |
|         |>---(D)-- Authorization Code ---------'      |
|  Client |          & Redirection URI                  |
|         |                                             |
|         |<---(E)----- Access Token -------------------'
+---------+       (w/ Optional Refresh Token)

참고자료