ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JWT (JSON Web Token)
    Network/Authentication 2022. 9. 14. 21:01
    JWT (JSON Web Token)
    안전하게 전송하기 위해 고안된 JSON 객체의 데이터 (key-value)

    JSON 은 key와 value로 이루어진 데이터 객체이다. JWT 는 이 JSON 객체를 이용한 Token 이라는 것을 통해 유저를 식별하고 유효성 검사를 수행한다.

    Filter
    디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전에 수행. 웹 컨테이너에 의해 관리.
    Interceptor
    디스패처 서블릿(Dispatcher Servlet)이 컨트롤러를 호출하기 전에 수행. 스프링 컨텍스트에서 동작.


    위의 2가지 방법 중에서 원하는 방식을 선택하여 사용하면 된다.

     

    이 Token 에는 header, payload, signature 를 담고 있고, payload 에는 secret key 가 들어있다.
    해시 알고리즘(ex: HS512)을 이용하여 secret key 는 암호화가 된 상태로 저장된다.

    Token 에서 꺼내온 User Id, Password 등 민감한 정보들을 언제든지 검증이 필요할 때마다 가져올 수 있도록 Authentication 객체에 담아준다.

     

     

    Q. 그렇다면 Token 을 비밀번호 대신 저장하는가?

    A. 굳이 저장할 필요가 없다.

    Token 은 비밀번호를 대체한 수단이 맞지만 정확히는 Id와 Password 를 대조하여 본인을 식별하는 '식별 작업' 자체를 대체하기 위해 사용하는 것이다.

    즉, 인증 방식을 대체한 것이지 정확히는 Password 를 대체한 것이 아니다.

     

Designed by Tistory.