티스토리 뷰

Web

Token 기반 인증 vs Cookie 인증

풍요로운 해구름 2021. 7. 22. 17:29

ASP.NET 웹개발에서는 기본적으로 Cookie를 통해 사용자를 인증합니다. 하지만 최근에는 SPA와 모바일앱 등 크로스플렛폼 개발이 늘어나면서 Token 기반 인증이 폭넓게 사용되고 있습니다. ASP.NET에서는 Cookie 기반 인증도 제공하지만, Token 기반 사용자 인증도 추가로 제공합니다. 사용자 인증에 사용되는 Cookie와 Token의 특징을 정리하면 다음과 같습니다.

ASP.NET 인증 Cookie Token
플렛폼 웹(HTTP 프로토콜) 제약 없음(크로스플렛폼에 적합)
전송시점 모든 요청에는 Cookie가 포함되어 전송됨
(심지어 단순 이미지 다운로드도 Cookie가 전송됨)
개발자가 직접 전송시점, 방법을 통제함
(필요한 요청에만 Token 포함 가능)
보안 역사가 긴만큼 수많은 공격방법들이 존재하며, 특히 구형 브라우저를 사용하는 경우 Cookie 탈취 가능성이 높음 상대적으로 공격하기 어렵고 안전함
인증 갱신 매 HTTP 요청마다 서버에서 자동으로 만료시간을 연장하여 Cookie를 재발행 Refresh Token으로 인증을 언제 어떻게 갱신할지 제어
구현 난이도 Cookie의 발행과 연장, 전송은 개발자가 신경쓰지 않아도 알아서 진행됨 Token의 발행과 관리는 개발자가 통제해야 하기에 난이도와 구현비용이 더 높음
인증정보 관리 ASP.NET에서는 Cookie 인증과 Token 인증 모두 Self-Contained 방식으로 인증정보를 관리하기에 큰 차이 없음

웹사이트만 서비스한다면 Cookie 방식이 심플한 개발방법입니다. 하지만 모바일, 웹사이트, SPA앱개발, 윈도우앱 개발 등 Cross Platform 서비스를 염두해두고 있다면 Token 인증으로 통일하는 것이 더 심플할 수 있습니다.

'Web' 카테고리의 다른 글

[CSS] White-space  (0) 2021.09.10
OIDC(OpenID Connect)와 OAuth 2.0  (0) 2021.07.22
Token 기반 인증 vs Cookie 인증  (0) 2021.07.22
.NET Garbage Collection  (0) 2018.11.13
댓글
댓글쓰기 폼