#들어가는 글

인증과 인가의 대한 개념은 생각보다 쉬운편이다 단지 인증과 인가를 어떻게 하는가?! 에 대해서 초점을 맞추어
글을 썼다. 이 내용은 토니님의 10분 테크톡 영상을 참고로 정리했습니다.





#인증

  1. 인증은 로그인을 생각하면 된다.
  2. 미가입이 회원이 로그인을 시도 할 때 DB에는 유저정보가 없어서 인증이 불가능 하다. 하지만 가입회원이 로그인을 시도하면 DB에서 유저정보를 불러와 인증 하고 로그인이 성공한다. 이러한 절차를 인증이라고 한다.





#인가

  1. 인가는 이미 회원이 인증된 회원이 글을 쓰려고 할 때 글을 쓸 수 있는 권한이 있는지 확인 하는 절차





#인증하는 3가지 방법

#브라우저 인증

브라우저 인증은 말 그래도 로그인 정보를 브라우저에 저장해서 인증을 하는 방식이다.
하지만 유저의 민감한 정보들이 그대로 노출 되어 있기 때문에 보안이 좋지 않다. 




#서버 세션 인증

브라우저는 보안상 문제가 되기 때문에 상대적으로 보안이 좋은 서버의 힘을 빌린 인증이 세션에 유저 정보를 저장하는 것이다.



하지만 서버를 3개(A, B, C)로 나누어 운영을 한다면 A서버에 저장된 세션을 B서버에서 알지 못하는 상황이 발생한다.



그리고 세션DB를 둔다고 가정해도 한 곳으로 트래픽이 몰려 터질 활률  높다는 단점이 있다.




#토큰-인증

JWT를 이용하면 별도의 저장소가 필요 없이 인코딩된 토큰을 클라이언트가 들고 있고
인증이나 인가가 필요할 때 토큰을 서버에 넘겨 디코딩하여 사용한다. 이 토큰은 유효기간이 있기 때문에 쉽게 폐기도 가능하다.
하지만 누구나 디코딩할 수 있으니 민감한 정보는 토큰에 담지 않는다.




#마치는 글

JWT의 장점중에 별도의 저장소가 필요가 없다라는 장점을 수도 없이 보았다. 하지만 이해가 가지 않았다.

" 쿠키나 헤더 또는 브라우저 어딘가에 저장을 해놓고 그것을 사용하는데 왜 별도의 저장소가 필요하지 않다는 거지? " 라는 생각을

계속 해왔고 누군가에 물어봐도 쉬원한 대답을 얻을 수 없었다.

당연한 결과다 개념자체가 다르기 때문이다. 하지만 브라우저로 인증하는 방식과

세션을 이용하여 인증하는 방식을 보고 왜 토큰 방식이 요즘 유행하고 큰 장점이 있는지 이해가 되었다.

 

GitHub - whitewise95/TIL: Today I Learned

Today I Learned. Contribute to whitewise95/TIL development by creating an account on GitHub.

github.com

 

복사했습니다!