2025/02 15

Spring Security 6.x.x OAuth2.0 JWT 기반 인증 인가

application.properties#registrationspring.security.oauth2.client.registration.서비스명.client-name=서비스명spring.security.oauth2.client.registration.서비스명.client-id=서비스에서 발급 받은 아이디spring.security.oauth2.client.registration.서비스명.client-secret=서비스에서 발급 받은 비밀번호spring.security.oauth2.client.registration.서비스명.redirect-uri=서비스에 등록한 우리쪽 로그인 성공 URIspring.security.oauth2.client.registration.서비스명.authorization-gr..

Web/Spring Security 2025.02.26

JWT 방식 OAuth2.0 클라이언트 동작 원리

무지개 색 순서로 화살표 잘 따라가보기1. 클라이언트가 소셜 로그인 시도(/auth/authentication/서비스) 2. OAuth2AuthorizationReqeustRedirectFilter에서 소셜 로그인 서비스 인증서버로 인증 요청 3. 인증서버에서 클라이언트에게 해당 서비스 로그인 페이지 응답 4. 로그인 성공 시, 인증 서버에서 우리 서버 주소로 리다이렉트 후OAuth2LoginAuthenticationFilter에서 Code 획득(/login/oauth2/code/서비스) 5. OAuth2LoginAuthenticationProvider로 Code를 넘기고, 여기서 인증서버로 코드를 넘겨서 Access 토큰을 발급 받음 6. 발급받은 Access 토큰으로  소셜 로그인 서비스 리소스 서버..

Web/Spring Security 2025.02.26

Spring Security 6.x.x JWT 보안 요소 추가

https://developer-yong.tistory.com/43 JWT 다중 토큰 발급JWT를 이용한 인증/인가는, 토큰이 XSS, HTTP통신 가로채기 등으로 탈취되었을 때 해커가 서비스를 악용할 수 있다. 따라서, 토큰 탈취 방지 및 탈취되었을 때 대비하는 기술이 존재한다. 다중 토큰developer-yong.tistory.comJWT를 단일 토큰 방식으로 사용할 경우, 위와같은 문제점이 존재한다. 따라서, 단일 토큰 방식에서 다중 토큰 발급 방식으로 변경이 필요하다. LoginFilter.java@Overrideprotected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, Filter..

Web/Spring Security 2025.02.20

JWT 다중 토큰 발급

JWT를 이용한 인증/인가는, 토큰이 XSS, HTTP통신 가로채기 등으로 탈취되었을 때 해커가 서비스를 악용할 수 있다. 따라서, 토큰 탈취 방지 및 탈취되었을 때 대비하는 기술이 존재한다. 다중 토큰Access/Refresh 토큰 자주 사용되는 토큰의 생명주기는 짧게(약 10분), 이 토큰이 만료되었을 때 재발급을 요청 할 Refresh 토큰(24시간 이상) 두개를 함께 발급함.실행 순서1. 로그인 성공 시 Access, Refresh 토큰  발급2. 서비스에 요청 시 권한이 필요할 때 Access 토큰을 통해 요청3. Access 토큰이 유효할 경우 서버에서 서비스 응답4. Access 토큰이 만료됐을 경우 Refresh 토큰으로 서버측에서 토큰 검증 후 새로운 Access토큰 발급 Access 토..

Security/Web 2025.02.18

Spring Security JWT 인증 인가 순서

🟡 토큰 발급이 안되어있을 경우클라이언트 요청SecurityConfig에 등록된 JwtAuthenticationFilter 호출토큰정보가 없기 때문에 다음 필터 호출🟡 토큰을 발급하는 경우(로그인)클라이언트 요청SecurityConfig에 등록된 JwtAuthenticationFilter 호출토큰정보가 없기 때문에 다음 필터 호출로그인 url은 SecurityConfig에 예외처리 하였기 때문에 필터에 걸리지 않는다.사용자의 로그인id, pw를 사용하여 UsernamePasswordAuthenticationToken 객체 생성authenticationManagerBuilder를 이용하여 CustomUserDetailsService 의 loadUserByUsername 메소드 호출loadUserByUs..

Web/Spring Security 2025.02.14

패킷의 생성 원리

1. Process에서 Stream을 통해 TCP로 트래픽이 전송되면, stream data를 일정 크기(1460 byte)로 자름 => segmentation 2. 각 segment들은 40byte크기의 header와 합쳐서 Packet이 됨Header는 택배 운송장, Payload는 택배라고 할 수 있음 보안 이유로 Payload를 확인하는 것을 DPI (Deep packet inspection)이라고 함 비유: Encapsulation = Segment를 택배 안에 넣는 것 결론:Process가 Socket에 입출력을 시도하면, 메모리에 저장된 스트림 형식의 데이터가 1460 byte로 segment화 한 다음 packet 형식으로 encapsulation이 되어 생성이 된다.

카테고리 없음 2025.02.13

네트워크 데이터 단위 및 네트워크 인터페이스

파일 입출력 (File I/O) 에서는, data의 단위가 stream data 이다. Stream data : 시작은 정해져 있으나, 끝은 정해지지 않아 연속성을 가지는 데이터 / 패킷 / 비트 등의 흐름을 의미한다 TCP: Segment IP: Packet Driver/NIC: Frame ✅ 네트워크 데이터 전송 흐름User mode 수준(= Socket 수준) : Application Process가 Socket(Device File)에 "Stream Data"를 write한다Kernel 수준 : Transport 계층에서 Stream Data에 대해 MSS(Maximum Segment Size)를 기준으로 잘라 "Segment"로 만든다. (이 행위를 "Segmentation"이라 한다)Kerne..

Port 번호

운영체제에서 어떤 프로그램을 실행시키면 그 순간 process가 존재. OS 구성요소 내부에는 TCP/IP, 디바이스 Driver, NIC 존재 TCP/IP는 커널 수준에서 구현되어 있는데, user mode application이 접근할 수 있도록 인터페이스가 제공됨. 이 인터페이스의 본질은 File이나, 프로토콜을 추상화했기 때문에 File이라 하지 않고 Socket이라 한다. 소켓을 생성할 때 TCP 소켓인 경우에 소켓에 할당되는 정보 중 하나가 바로 Port 번호. 이미 사용 중인 포트는 중복 사용될 수 없으므로 포트 번호를 지정할 때는 해당 포트가 사용 중인지 확인해야 함. cmd창에 netstat -ano 명령어를 입력해 해당하는 포트에 어떤 프로그램이 할당되어 있는지 확인할 수 있다. -a ..

카테고리 없음 2025.02.13