JWT[3/3]: JWT 실전 사용(Redis Lua Script, JWT BlackList, Rotation)
·
🍃SpringBoot
1. Access TokenAccess Token은 사용자가 인증된 이후 보호된 API에 접근할 때 사용하는 토큰으로 다음 역할을 갖는다.사용자 식별권한 확인보호 API 접근 인증로그인에 성공하면 서버는 Access Token을 발급하고, 클라이언트는 이후 요청마다 이 토큰을 `Authorization: Bearer {accessToken}` 헤더에 담아 보낸다. 서버는 매 요청마다 Access Token을 검증하고, 검증에 성공하면 Spring Security의 SecurityContext에 인증 정보를 저장한다.1.2 Access Token 생성Access Token 생성은 JwtProvider가 담당한다.이 메서드는 JwtClaims를 받아 Access Token 문자열을 생성한다. 1) JwtCl..
JWT[2/3]: SpringBoot에서 JWT 인증 구조와 정책(Spring Security)
·
🍃SpringBoot
1. 프로젝트 구조모놀리식 프로젝트에서 DDD + 클린 아키텍처 구조이다. Spring Security를 사용하고, 추후에 MSA 프로젝트로 확장성을 고려한 설계이다. 구체적으로, 몇 개월 이내 MSA 서비스 분리와 함께 소셜 로그인(OAuth 2.0), KeyClock, OpenID Connect 등으로 확장될 계획이라는 가정이다.1.1 인증 구조먼저, 전체적인 흐름에 대해서 간단하게 소개한다.현재 프로젝트는 다음 구조를 사용한다. Access Token, Refresh Token 분리 Access Token(AT)역할: 인증특징: 짧은 수명, 서버 저장 안 함Refresh Token역할: 재발급특징: 긴 수명, Redis 저장, Rotation 실행 Stateless + Redis JWT는 Sta..
JWT[1/3]: JWT 이해(이론)
·
🍃SpringBoot
1. JWT 이해1.1 JWT란JWT(Json Web Token)는 사용자 인증 정보를 안전하게 전달하기 위한 토큰 기반 인증 방식으로 임의의 문자열로 구성JWT는 서버가 사용자를 인증한 후 발급하며, 클라이언트는 이후 요청마다 JWT를 전달하여 자신의 신원을 증명JWT는 RFC 7519 표준 준수JWT 토큰은 Header.Payload.Signature으로 점(.)으로 세 개 영역을 구분 RFC 7519: JSON Web Token (JWT)JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a..