본문 바로가기

spring security

spring security - #21 중간 개념 jwt Bearer 인증 방식 // .httpBasic().disable()

oauth2 랑은 다르게 jwt 를 사용한 security 로그인에서는

SecurityConfig.java에 아래 박스 설정이 추가되었는데

저 박스 부분을 이해하고 넘어가자!!

 

[기존(세션) 방식]

(구) 세션 방식

최초 로그인할 때 id와 pw를 서버에 전송하고 세션 메모리 세션 id를 발급해 등록시킨 후

클라이언트에게 세션 id를 반환해서

클라이언트가 다음 방문이나 요청 때 그 세션 id를 들고 다니게 해서 그 세션 id와 세션 메모리에 등록된 세션 id의 동일성을 체크해 인증을 수행하는 방식


[쿠키 방식]

 

(동일한 도메인의 경우 발동 http only : false 일 경우 -> 보안을 위해서 )

 

우선 http basic 방식 설명 ▼

- 쿠키가 많으면 많을수록 확장성이 떨어진다.

-> 그래서 header에다가 authorization이라는 키값을 인증 정보를 넣고 가는 방식에서 id나 pw를 넣어가는 방식이 있는데

    이 방식이 httpp Basic 방식이다

-> 이렇게 하면 매번 요청할 때마다 아이디와 암호를 달고 요청하게 된다.

-> 요청할 때 마다 계속 인증하는 꼴

-> 아이디와 암호가 암호화가 되지 않기 때문에 중간에 노출될 수 도 있다

-> 그래서 암호화가 되는 https 서버를 쓴다

========== 여기 까지가 http basic이고 ==========

이제 http basic 방식 대신 쓸 http bearer 방식 설명 ▼

우리가 쓰는 방식은

Authorization에다가 토큰을 넣어줄 것이다.

이 토큰은 다른 사람한테 노출이 되면 안된다.

하지만 이 토큰이 노출이 된다해도 이 토큰 자체가 아이디와 암호가 아니기 때문에 위험이 적다

이런 방식은 http basic 방식이 아니라 "http bearer" 방식이라고 한다.

또 토큰은 유효시간이란 것이 있어서 노출되어도 그 기간이 지나면 사용할 수가 없다

 

이런 토큰 방식을 쓸 때 jwt : jason web token을 만들어서 쓴다  → 이게 우리가 쓰는 방식

그리고 그렇기 때문에 http basic이라는 부분을 disable() 처리한 것이다.

 

이 정도만 알아도 bearer 방식을 이해하는데  충분하다!!