Spring Security 아키텍처 현재 생성한 프로젝트는 Spring MVC를 사용한다. Spring은 Servlet과 Reactive 두 가지의 웹 스택을 제공하는데, MVC구조의 프로젝트는 Servlet 스택에 해당된다. > Spring MVC는 Dispatc

Username & Password 스프링 시큐리티에서 기본적으로 제공하는 인증 매커니즘으로 HttpServletRequest에서 정보를 얻어온다 크게 3가지의 방법을 통해 Username과 Password를 얻어낸다 Form Login HTTP 형태로 제공되는

프로젝트 생성과 초기 구성 프로젝트 생성은 Spring Initializr 를 이용했다. 스프링 시큐리티는 기본적으로 Session 기반 로그인을 지원한다. 현재 포스팅에서는 JWT를 이용한 인증을 구현할 것이기 때문에 몇 가지 설정을 건들여줘야 한다. Sprin

스프링 시큐리티에서는 요청수준에서 인가모델을 설정할 수 있다.예를들어, 특정 URL 하위의 모든 요청들에 인가검증을 수행할 수 있다기본적으로 모든 요청들에 인가가 필요하며, 필요에따라 HttpSecurity를 통해 이를 조절하는게 가능하다.스프링 시큐리티는 각 요청에

OAuth2 OAuth 2.0 Authorization Framework 에 설명되어 있는 OAuth 프로토콜을 구성하는 4가지 역할은 아래와 같다. | 역할 | 설명 | |:----:|:----:| |resource owner|보호된 리소스에 대한 접근 권한을 부
스프링 시큐리티에서 OAuth2 소셜 Login 기능을 이용하기 위해서는 몇가지 작업이 필요하다.의존성 주입Resource Server와 Authorization Server로 사용할 Provider 사이트 결정( ex: Google )application.yml 혹은
로그인 기능을 구현하면서 JWT( JavaScript Object Notation Web Token ) 를 도입하려 마음먹었던 경험이 있다. 서버 자원을 아끼고, 서버에 고정되지 않는다는 등의 장점이 아니라 단지 경험을 늘려보고 싶다는 생각에 도입을 결정했었다.그러다보
CSRF는 인증권한을 취득한 브라우저를 대상으로 의도치않은 요청을 발생시켜 보호된 리소스를 얻어내는 공격으로 사이트 간 요청 위조라고도 부른다. 브라우저가 요청에 쿠키를 자동으로 포함한다는 점을 악용하는 공격이다.예를들어, 사용자가 은행 사이트에 로그인했다고 가정해보자
브라우저는 SOP( Same-Origin Policy )(https://datatracker.ietf.org/doc/html/rfc6454여기서 Origin은 URI의 Scheme, 호스트, 포트\*\*가 모두 동일해야 동일한 Origin 으로 취급된다. 프로

지난 JWT 로그인 에 이어서 이번에는 Google OAuth2 로그인을 적용시켜보려고 한다.프로젝트는 그대로 사용할 예정이고, Spring Security에서의 OAuth2에 대한 이해는 공식문서 혹은 OAuth2 Login, OAuth2 Client 포스팅을 참고하
WAS를 사용하는 Spring 애플리케이션을 가정해보자.클라이언트가 전송한 요청은 WAS(=Servlet Engine, ex: tomcat )를 거쳐 DispatcherServlet, Controller로 전달된다.필터와 인터셉터는 요청이 WAS와 Controller
Spring Security 공식문서에서 언급되며, 과거 포스팅 에서 간략하게 소개했던 XSS( 사이트 간 스크립팅) 공격에 대해 살펴보자기본적인 공격루트는 공격자가 악의적인 스크립트를 서버에 저장하면서 발생한다.일반 유저가 악의적 스크립트를 포함된 데이터를 읽으면서

프로젝트에서 사용자 인증 구현을 맡았을 때, REST API를 목표로 삼고 JWT 인증을 선택했다.당시에는 서버에서 세션을 사용하지 않고, 토큰을 주고받으며 검증하는 인증방법이라는 정도만 이해하고 있었기때문에 구글링을 포함하여 찾아낸 정보를 바탕으로 JWT생성 코드를

OAuth2 로그인이라고 하면 카카오, 구글, 네이버 등의 인증정보를 바탕으로한 로그인이 떠오른다.믿을 수 있는 외부사이트에서의 인증정보를 바탕으로 현재 서비스를 이용할 수 있는 권한을 얻는 것이다.이는 서비스의 개수가 많아지더라도 일관된 하나의 방법으로의 로그인을 지
3번과 5번 화살표가 애매하긴한데 대체로 이런 흐름이다OAuth2 LoginOAuth2 ClientSingle Sign On
최근 어떤 기업 기술면접을 다녀왔는데, JWT와 사용자 인증 관련 질문을 받았다. 나름 RFC문서도 조사하고, 학습 및 정리했던 부분이라 수월하게 답변할 수 있을거라 생각했지만 면접관님과 대화하는 과정에서 스스로에게 ?가 띄워져서 추가적인 답변을 못했다.스스로에게 과연