본문 바로가기

Spring/Spring Security8

[Spring Security] JWT (Json Web Token) https://jwt.io/introduction JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 1. JWT (Json Web Token) ? 전달하는 데이터를 Json 객체 형태로 안전하게 보내기 위한 표준을 JWT라고 한다. 이때, JWT는 RSA, HMAC 알고리즘을 이용하여 공개키/개인키로 서명되어 있으므로 신뢰할 수 있다. 따라서 '암호화' + '서명된' 정보를 전달할 수 있다. 2. JWT의 사용 용도 2-1. Authorization 2-2. 정보 교환 3. JWT의 구조 JWT는 Header, Payloa.. 2023. 2. 11.
[Spring Security] JWT를 위한 배경지식 1. Session 세션은 사용자 요청이 들어오면 처음에 그 사용자의 정보를 서버에 있는 세션에 저장해두고, 다음 요청부터는 그 세션과 사용자가 요청과 함께 보낸 세션 ID를 이용해서 해당 사용자에 대한 데이터를 세션에서 꺼내다준다. 즉, 사용자가 한번 접속한 순간부터 그 접속을 마치는 순간까지 사용자의 데이터를 세션이라는 서버 위치에 저장해두고 빨리빨리 가져다준다는 개념이다. 2. CIA (보안의 3요소) Confidentiality Integrity Availability 기밀성 무결성 가용성 허락된 사용자만이 정보를 이용할 수 있음 완전한 상태로 정보를 보존함 신뢰할 수 있는 정보를 접근 / 사용 가능함 3. RSA 암호화 (공개 암호 시스템) RSA 암호화를 위해 사용되는 key에는 공개키와 개인.. 2023. 2. 10.
[Spring Security] Authentication 객체 타입 [참고] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0/dashboard [무료] 스프링부트 시큐리티 & JWT 강의 - 인프런 | 강의 스프링부트 시큐리티에 대한 개념이 잡힙니다., - 강의 소개 | 인프런... www.inflearn.com Spring Security는 자신만의 시큐리티 세션을 가진다. 이때, 이 시큐리티 세션에 저장될 수 있는 객체의 타입은 반드시 Authentication이어야 한다. Authentication 객체가 시큐리티 세션에 들어간 순간 로그인 된 것 ! 이 Authentication 객체 안에 저장된 유저 정보의.. 2023. 2. 10.
[Spring Security] UserDetailsService [참고] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0/dashboard [무료] 스프링부트 시큐리티 & JWT 강의 - 인프런 | 강의 스프링부트 시큐리티에 대한 개념이 잡힙니다., - 강의 소개 | 인프런... www.inflearn.com 0. 전반적 흐름 오늘은 UserDetails 타입의 유저 정보 객체를 저장하는 Authentication 객체를 알아볼 것이다. Authentication은 UseDetailsService를 implements한 PrincipalDetailsService를 통해 만들 수 있다. 1. PrincipalDet.. 2023. 2. 1.
[Spring Security] UserDetails [참고] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0/dashboard [무료] 스프링부트 시큐리티 & JWT 강의 - 인프런 | 강의 스프링부트 시큐리티에 대한 개념이 잡힙니다., - 강의 소개 | 인프런... www.inflearn.com 0. 전반적 흐름 Spring Security는 로그인 url로 (ex. /login) 로그인 요청이 들어오면 이를 낚아채서 자신이 로그인을 진행시킨다. 이때 로그인이 성공적으로 완료되면 Security 자신만의 세션에 유저 정보를 저장하는데, 이 세션이 바로 ContextHolder이다. ContextHo.. 2023. 2. 1.
[Spring Security] SecurityConfig [참고] https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0/dashboard [무료] 스프링부트 시큐리티 & JWT 강의 - 인프런 | 강의 스프링부트 시큐리티에 대한 개념이 잡힙니다., - 강의 소개 | 인프런... www.inflearn.com 1. Security Config 개발자가 직접 설정한 Config 파일로, Filter 역할을 한다. 2. SecurityConfig.java 뜯어보기 package com.cos.security1.config; import org.springframework.context.annotation.Config.. 2023. 1. 31.
[Spring Security] 전반적 Flow 1. Spring Security란 ? Spring Security는 Spring의 하위 프레임워크로, 인증(Authentication)과 권한(Authorization) 처리를 지원한다. " 기능에 대한 접근을 제어한다 " + 해당 과정에서 발생하는 보안적 이슈 문제 또한 지원한다. 1-1. Spring Security와 Filter Spring Security는 Spring MVC life cycle의 Filter단에서 이루어진다. 이때, Http Request는 실제로 여러개의 Filter를 거치게 되며, 이러한 필터 여러개가 마치 체인처럼 엮여있다고 해서 Filter Chain이라고 부른다. 1-2. Authentication vs. Authorization Authentication (인증) A.. 2023. 1. 21.
[Spring Security] JWT 개념 정리 1. JWT란 ? JWT (Json Web Token)은 json 객체를 통해 토큰 자체에 다양한 정보를 저장하는 웹 토큰이다. JWT의 장점 1) 중앙 인증 서버나 데이터 스토어에 대한 의존성이 없으므로, 시스템을 수평적으로 확장할 수 있다. 2) Base 64 URL Safe Encoding을 사용하므로 URL, Cookie, Header 등 다양한 용도로 사용가능 JWT의 단점 1) Payload의 정보량이 많아지면 네트워크 사용량이 증가하므로, 효율적인 데이터 설계가 필요하다. 2) 토큰이 클라이언트에 저장되므로, 서버에서 그 토큰을 직접 조작할 수 없다. [공식 문서] https://jwt.io/introduction JWT.IO JSON Web Tokens are an open, industr.. 2023. 1. 19.