[Spring Security] 세션과 쿠키를 이용한 인증
·
Web & Android/Spring Security
💡 세션과 쿠키를 이용한 인증 인증 순서 사용자가 로그인을 함 서버에서 계정 정보를 읽어 사용자 확인 사용자에게 고유한 ID 값 부여하여 세션 저장소에 저장 이와 연결되는 Session ID를 발급 서버에는 HTTP 응답 헤더에 발급된 Session ID를 같이 보냄 이후 매 요청마다 HTTP 요청 헤더에 Session ID가 담긴 쿠키를 같이 보냄 서버에서는 쿠키를 받아 세션 저장소에서 대조를 한 후 대응되는 정보를 가져옴 인증이 완료되고 서버는 사용자에 맞는 데이터를 보내줌 장점 사용자의 정보는 세션 저장소에 저장되고, 쿠키는 그 저장소를 통과할 수 있는 출입증 역할을 함 → 쿠키가 담긴 HTTP 요청이 도중에 노출되더라도 쿠키 자체에는 유의미한 값을 갖고 잇지 않아서 쿠키에 사용자 정보를 담아 인증..
[Spring Security] Form Login 개념 & 사용법
·
Web & Android/Spring Security
💡 Form Login 개념 & 사용법 사용자가 Server에 특정 URL을 요청하였을 때 해당 URL이 인증이 필요할 경우 Server는 Login 페이지를 return 사용자는 username(ID)와 password를 입력하여 로그인 요청을 하면 Post mapping으로 해당 데이터가 서버에 전송 Server는 해당 로그인 정보를 확인합니다. 해당 유저 정보가 존재한다면 Session과 Token을 생성하고 저장
[Spring Security] Security의 흐름
·
Web & Android/Spring Security
Filter → 서블릿 컨테이너의 Filter는 Dispatch Survlet으로 가기 전에 먼저 적용 → client가 http request를 보낼 때 먼저 filter를 거친다는 뜻을 내포하는 그림 → client가 보낸 http request는 여러 개의 filter를 거쳐가게 됨 → 이러한 filter들이 여러 개로 엮여서 chain의 형태를 띈다고 하여 위의 형태를 Filter chain 이라고 부름 → 모든 Request들은 Filter chain을 거쳐야지 servlet에 도착함 → Spring Security는 Filter chain 사이에 DelegationFilterProxy 라는 것을 끼워넣어서 보안 정책을 수행함 ⇒ 경우에 따라 보안 정책을 달리해야하므로 filter의 적용을 다르..
[Spring Security] 기본 동작 구조
·
Web & Android/Spring Security
WebSecurityConfigureAdapter → SecurityFilterChain filterChain(HttpSecurity http)로 변경되었음
[Spring Security] Spring Security란?
·
Web & Android/Spring Security
Spring security Authentication(인증)과 Authorization(권한)을 자바 어플리케이션에 제공하는데 초점을 맞춘 프레임워크 → Filter 기반으로 동작함 💡 인증(Authentication) 해당 사용자가 본인이 맞는지를 확인하는 절차 UsernamePassword를 통한 인증 가능 (Session 관리, Token 관리) SNS 로그인을 통한 인증 위임도 가능 Authentication의 구조 Authentication의 메커니즘 💡 인가, 권한(Authorization) 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차 특정 페이지/리소스에 접근할 수 있는지 권한을 판단 Secured, PrePostAuthorize 어노테이션으로 쉽게 권한 체크 가능 비즈니스..
[Spring Security] Authentication의 메커니즘
·
Web & Android/Spring Security
Authentication에는 인증된 결과 뿐만 아니라 인증을 하기 위한 정보, 인증을 받기 위한 정보가 하나의 객체에 들어가 있음 AuthenticationProvider는 입력된 인증을 보고 허가된 인증을 내주는 방식으로 인증 허가를 판단하며 처리 가능한 Authentication에 대해서 알려주는 support메서드를 지원 Authorities에는 '어디를 갈 수 있는지', '어떤 역할을 할 수 있는지'에 대한 권한 정보로 이를 구현(implement)한 GrantedAuthority에 관한 정보들이 저장되어있음 Authentication에 들어가 있는 Token들은 각각의 Filter들을 통해 발행된 Token들 Credentials은 인증을 받기 위해 필요한 정보들로 대표적인 예시로는 비밀번호 ..