1. 토큰을 api요청시마다 확인하는건 너무 과부하.. 따라서 한번 인증되면 - 캐싱해둔다. 이때는 RDB같은 file 혹은 디스크 IO기반의 저장소보다. 메모리기반의 저장소(redis, memcached)를 사용한다
2. MSA서비스에서의 인증 / 인가 방식
1) 모든 서비스api가 공유하는 중앙저장소 사용 : redis, memcached 등
2) api gateway 에서 직접 인증/인가 구현
3) api gateway 와 auth service협력하여 인증/인가 구현
3. 토큰인증
# 필요성?
- 모바일 app의 경우, web과 달리 cookie jar기능이 없다. 따라서 세션/쿠키 방식의 전통적인 인증인가가 불가능하다.
- 모바일 app의 경우 , json으로 데이터를 주고받는데. 웹은 html로 응답하므로 불일치가 발생한다.
=> json방식 토큰인증을 사용하여 인증/인가를 일원화할수있다는 편리함? 장점이 있다.
# 취약점?
- 토큰인증이든 쿠키인증이든.. 탈취위험성에는 쌤쌤.
그럼 탈취되었다고 가정하고. 토큰의 경우에는 서버쪽에서 이 토큰의 유효기간을 끊어낼방법이 없다고한다 ? -> 그래서 이걸 해결하려고 공유 저장소를 사용한다
-> 근데 이러면 결국 stateless하게 인증인가한다는 장점을 버리게 되는거 아니냐?라는 .
결국엔 장단점이 있고... 아아 좀더 공부하자!!!
인증인가가 심오하구나. 쉽게쉽게 스프링시큐리티 붙이면 되지머~ 하고 볼게 아니다.!!!