본문 바로가기

Spring Framework/Spring Security

(7)
KeyCloak IAM 서버 구축 IAM(Identity and Access Management)https://dkkim2318.tistory.com/104 IAMIAM(Identitiy and Access ManageMent)? IAM(Identitiy and Access ManageMent) 을 직역해 보자면 '유저를 관리하고 접근 레벨 및 권한에 대한 관리' 로 해석할 수 있습니다. AWS 계정 회원가입 단계는 포스팅에서 생략dkkim2318.tistory.com IAM 솔루션은 조직 내 사용자의 ID를 확인하고, 특정 리소스에 접근할 수 있는 권한을 관리하여 보안을 강화화는 시스템입니다. 적합한 사람이 적시에 필요한 이유로 필요한 리소스에 접근하도록 통제하며, 모니터링 하는 기능을 제공합니다. 일반적으로 하나의 서비스는 독립적인..
Password Encoder 비밀번호 암호화 실무를 경험해 본 사람이라면 대부분 알고 있는 내용이지만, 일반적인 회원 정보를 담은 DB는 비밀번호를 특정 해시 값으로 암호화 합니다. 관리자라고 하여도, 회원의 비밀번호와 같은 민감정보는 사용자 본인만 알고 있어야 하는 정보이기 때문에 복호화가 안된는 단방향 알고리즘을 사용해 비밀번호를 암호화 하여 저장합니다. 로그인 단계에서는 사용자가 입력한 비밀번호를 동일한 암호화 알고리즘을 적용해 해시값을 생성하고 이를 DB와 비교해 서로의 해시 값이 일치할 경우, 로그인 성공 핸들러를 수행합니다. 그렇지만 단방향 알고리즘 또한 안전하다고는 할 수 없는 것이, 사용된 알고리즘을 알게 되면 Rainbow table과 같은 사이버 공격에 취약합니다. 이를 위해 서버별 고유 salt(바이트 단위의 임..
JWT + Spring Security 연동 https://dkkim2318.tistory.com/166 JWT(JSON Web Token)JWT(JSON Web Token) 이란 웹표준으로서 두 개체에서 JSON 객체를 사용하여 가볍고 자가 수용적인 방식으로 정보를 안정성 있게 전달해 주고 사용자에 대한 속성을 저장하는 토큰 입니다.세션과 쿠키dkkim2318.tistory.com 이전 포스트 중 JWT에 대래 다루었던 포스트가 있습니다. JWT는 클라이언트단에서 사용되는 유저 인증 정보를 담은 토큰 입니다. 세션, 쿠키 등 여러방식의 인증/인가 방식이 있지만, 최근 SPA 프로젝트에서 많이 사용되는 Spring Security + JWT 연동을 통한 인증/인가 방식을 다루어 보겠습니다. JWT + Spring Security 연동1. JWT ..
Spring Security 필터 체인 필터 체인(Filter Chain)Spring Security는 Spring 애플리케이션에서 dispatcherServlet 요청 전 Filter 단계에서 수행 됩니다https://dkkim2318.tistory.com/165 Spring Security의 구조https://dkkim2318.tistory.com/164 Spring Security스프링은 ORM, JDBC WEB MVC 개발에 필요한 서블릿, Bean, AOP, ASpect 와 같은 주로 웹애플리케이션 개발에 필요한 정말 여러가지의 하위 프레임워크를 포함한 방대dkkim2318.tistory.com필터 체인이란 Spring Security에서 제공하는 인증/인가를 위한 필터들의 모음이며 가장 핵심 기능입니다. 거의 대부분의 서비스는 이 ..
JWT(JSON Web Token) JWT(JSON Web Token) 이란 웹표준으로서 두 개체에서 JSON 객체를 사용하여 가볍고 자가 수용적인 방식으로 정보를 안정성 있게 전달해 주고 사용자에 대한 속성을 저장하는 토큰 입니다.세션과 쿠키 웹개발에 종사하고 있다면 수도 없이 많이 접해본 단어일 것입니다. 로그인과 인증/인가 단계에서 많이 활용 되는세션과 쿠키에 대해 간단히 살펴보면세션(Session)로그인 시 서버가 세션을 생성하고, 세션 ID를 서버 메모리/DB/Redis에 저장클라이언트는 쿠키에 세션 ID를 저장하고 요청 시 서버에 전송서버가 상태(stateful)를 관리해야 하며, 서버 확장 시 세션 공유 문제가 발생쿠키(Cookie)인증 정보를 클라이언트 쿠키에 직접 담아 요청서버는 쿠키를 확인하여 인증 처리간단하지만, 보안 ..
Spring Security의 구조 https://dkkim2318.tistory.com/164 Spring Security스프링은 ORM, JDBC WEB MVC 개발에 필요한 서블릿, Bean, AOP, ASpect 와 같은 주로 웹애플리케이션 개발에 필요한 정말 여러가지의 하위 프레임워크를 포함한 방대한 프레임워크입니다. 이 중 Spring Securidkkim2318.tistory.com이전 포스트에서 Spring Security는 애플리케이션의 보안을 담당하는 스프링의 하위 프레임워크라는 소개를 했습니다. 이번 포스트에서는 애플리케이션에서 Spring Security가 어떤 구조와 흐름으로 보안 관련 긴능을 지원하는지에 대해 다뤄 보겠습니다, Spring Framework에서의 DispatcherServlet 위 그림은 Spri..
Spring Security 스프링은 ORM, JDBC WEB MVC 개발에 필요한 서블릿, Bean, AOP, ASpect 와 같은 주로 웹애플리케이션 개발에 필요한 정말 여러가지의 하위 프레임워크를 포함한 방대한 프레임워크입니다. 이 중 Spring Security는 Spring 기반의 애플리케이션 보안(인증, 권한, 인가 등)을 담당하는 Spring의 하위 프레임 워크입니다. 이번 포스트 에서는 이 Spring Security에 대한 간단한 소개를 다뤄보곘습니다. Spring Security 사용 이유 애플리케이션 보안은 중요하면서도 동시에 까다롭습니다. 고유한 코드 또는 프레임워크를 사용하면서 취약성을 다방면으로 고려하고 대응해야하며, 최악의 상황으로 보안 사고 발생 시 돌이킬 수 없는 손해나 취약점에 대응한 코드 ..