Spring(3)
-
[Spring Security] JWT을 이용한 소셜 로그인 구현
JWT이란? Json Web Token의 약자로서 암호화된 데이터를 전송하기 위한 Json 기반의 인터넷 표준이다. 유저 인증시 사용하는 토큰으로, 유저의 인증 정보를 서버가 아닌 클라이언트가 들고 있기 때문에 서버의 부담을 덜 수 있다. 서버는 유저 요청시 토큰이 유효한지만 판별하면 된다. JWT을 쓰는 이유? 이전 포스팅에서 다룬 Session-Cookie 인증 방식은 다음과 같은 단점이 있다. 휘발성 메모리 영역에 저장된다. 세션은 결국 메모리 위에서 동작하기 때문에 만에 하나 서버가 종료되면 세션이 초기화되고 모든 유저는 다시 로그인해야한다. 분산 서버 환경에서 문제가 될 수 있다. 분산 서버 환경에선 서버의 상태를 stateless하게 설계해야하는데 세션&쿠키 인증 방식은 필연적으로 서버가 유저..
2023.02.01 -
[Spring Security] 소셜 로그인 구현하기(OAuth2.0, naver)
OAuth란? OAuth는 유저가 따로 아이디나 비밀번호를 제공하지 않고 구글이나 네이버, 페이스북 같은 타사 인증을 대신 사용하는 표준화한 인증방식이다. OAuth를 왜 쓸까? 과거 제공사별로 상이했던 인증 절차를 OAuth 프로토콜로 표준화함 유저 인증은 타사에 맡기고 AccessToken만 받아서 개인 정보를 받아서 사용함(개인 정보를 DB로 관리하지 않아도 됌) 유저가 별도의 아이디나 비밀번호를 기억할 필요 없음 유저의 가입 부담을 줄여줌(주로 스타트업 서비스에서 유저의 진입 장벽을 낮춰줌) OAuth Flow 클라이언트가 인증 서버에 Authorization Code 요청 Authorization Code 반환 Authorization Code 로 토큰 서버에 Access Token 요청 Acc..
2023.01.16 -
[Spring Security] 웹사이트 자체 로그인 구현하기
Spring Security는 애플리케이션에 대한 인증, 권한 부여 등의 보안 기능을 제공하는 java 프레임워크다. 다음과 같은 이유로 Spring Security를 사용해보았다. 대략적인 애플리케이션 수준의 보안 아키텍처를 검증된 프레임워크인 Spring Security를 통해서 간접 학습 OAuth2.0 이나 JWT 같은 기술에 대한 라이브러리를 포함하고 있어서 개발 비용 절약 ioc 컨테이너를 이용하여 외부 리소스와 비즈니스 로직 분리 Spring Security란? 애플리케이션에 대한 인증, 권한 부여 등의 보안 기능을 제공하는 프레임워크다. spring security는 다음과 같은 특징을 가진다. 세션-쿠키 인증 방식을 지원한다. 서버는 세션 저장소에 유저에 대한 정보를 저장하고 클라이언트는..
2023.01.12