[Spring Securtiy]
스프링 기반의 App의 보안을 담당하는 스프링 하위 프레임워크!
Security는 인증, 권한에 대한 부분을 Filter의 흐름에 따라 처리하게 된다.
Spring Securtiy는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 짤 필요가 없다라는 큰 이점이 있다.
Security가 크게 3개를 담당하게 된다.
인증(Authentication): 리소스에 접근한 대상에 대해 누구인지 확인하는 과정 => 즉, 누구인가?
인가(Authorize): 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정
권한(Admission)
세션방식이 아닌 토큰방식으로 만들 생각이라... 포스트도 토큰으로만 올릴 예정이다. 토큰방식으로 했을 때 이점이 너무 많다. 지금부터 그걸 설명할 것이다.
토큰 기반의 인증 시스템은 인증받은 사용자들에게 토큰을 발급하고, Api로 요청을 할 때, 헤더에 토큰을 함께 넣어서 유효성 검사를 한다.
이러한 시스템에서는 더이상 사용자의 인증 정보를 서버나 세션에 유지하지 않고, 클라이언트 측에서 들어오는 요청만으로 작업을 처리한다.
-> 그래서 사용자가 로그인이 되어 있는지 안되어있는지 신경쓰지 않고 손쉽게 시스템을 확장할 수 있다.
-> 왜냐, 토큰 값만 확인하면 되니까!
최근에는 토큰 중에는 Json을 이용하는 JWT(Json Web Token)를 주로 사용한다!