반응형
Refresh Token
Access Token은 수명이 있다. 그 수명이 끝나면 더이상 Resource Server에서 리소스를 가져올 수 없다. 리소스에 다시 접근하기 위해 Access Token을 발급 받아야 하는데, 번거로운 일이 될 수 있다. 이 문제를 좀 더 손쉽게 해결하기 위해 방법으로 Refresh Token이 있다.
Refresh Token은 Authorization Server에 의해 발급되어 Client에게 전해지는데, 현재의 Access Token이 유효하지 않거나 수명이 끝났을 때 새로운 Access Token 개념으로 발급된다. 또는 필요에 의해 기존 Access Token이 가진 리소스 접근 범위를 넘은 리소스에 접근하고자 할 때 추가로 발급되는 Access Token 개념으로 사용된다.
Access Token이 만료되어 Refresh Token을 사용하는 work flow
(A) : Client가 인증을 통해 Authorization Server에서 Access Token을 요청한다.
(B) : Authorization Server는 Client를 인증하고 권한을 부여한 후 Access Token과 Refresh Token을 발행한다.
* Access Token 발급 시 Refresh Token과 함께 발급하는 경우가 많다고 한다.
(C) : Client는 발급 받은 Access Token을 통해 Resource Server에서 리소스에 접근할 수 있다.
(D) : Resource Server는 Client가 제출한 Access Token의 유효성을 검사 후 요청받은 리소스를 전달한다.
(E) : (C)와 (D) 단계를 반복하며 요청(Access Token 전달) -> 유효성 검사 -> 리소스 전달 작업을 수행한다.
(F) : Access Token이 더이상 유효하지 않다. 때문에 Resource Server는 Client가 제출한 Access Token에 대하여 invalid token error 메시지를 전달한다.
(G) : Client는 Authorization Server에 새로운 Access Token을 요청하는데, 이 때 기존에 가지고 있는 Refresh Token을 제출한다.
(H) : Authorization Server는 Client를 인증하고 제출받은 Refresh Token을 검증한다. 모든 것이 유효하다면 새로운 Access Token을 발급한다.
참고
반응형
'Programming > OAuth2.0' 카테고리의 다른 글
[OAuth 2.0] OAuth2.0 개요 (0) | 2021.09.08 |
---|