4. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 1 Login
Login
접근 허가 증명을 얻기 위해 사용자 인증으로
개인이 컴퓨터 시스템에 접근하는 작업
> 사용자가 누구인지 인증하는 것
인증하기
⇒ 인증 유지하기 (browser)
⇒ 안전하게 인증하기 (server)
⇒ 효율적으로 인증하기 (token)
⇒ 다른 채널을 통해 인증하기 (OAuth)
8. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 3 Session
Session
인증된 사용자 정보를 Session ID 와 맵핑하여 서버에 저장
클라이언트에게 문자열(식별자)로 이루어진 ID를
응답 Header에 넣어 전송
네트워크 부하 상대적으로 적음
클라이언트 브라우저의 호환 문제 없음
서버의 다중화에 따른 세션 동기화 이슈 (Session 저장소)
사용자 증가 등으로 서버의 저장량이 커지면 서버에 부담 커짐
9. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 3 Session
Session
(궁금했던 점) session 언제 만들어질까? 무조건 생성이 아니다?!
(아쉬운 점) Tomcat session, HttpSession, Spring Session,
IdP (keycloak) session 이 같은 session 을 사용하는지 확인
(같이 해봤으면) createSessionId tracking 해보기
(같이 해봤으면) Redis vs Mysql 누가 더 빠를까?
11. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 4 JWT
Token
클라이언트 ↔ 서버
(화살표인 통신 부분)요청과 응답에 사용자의 상태 정보를 담자!
토큰을 활용한 인증 방식
Sessionless
JWT: 정보를 Base64 암호화 시킨 JSON Web Token
Header, Payload(내용), Signature(서명) 구조
위변조 방지 위한 서버 개인키를 통한 저자 서명이 포함되어 있음
Base64 디코딩으로 쉽게 정보를 알아 낼 수 있어 민감 정보는 담지 않아야 함
12. ⓒSaebyeol Yu. Saebyeol’s PowerPoint
Part 4 JWT
JWT
(아쉬운점) 내가 구현해서 직접 경험하지 않음
(같이 해봤으면) jwt, xss, csrf
(좀 더 알아봐야 할 부분) refresh token <> sliding session
서로 상호 보완적인 개념
httpOnly, secure 속성은 서버→클라이언트로 던져주며, 클라이언트→서버는 값을 주지 않음(tomcat 8.5 이상)https://pygmalion0220.tistory.com/entry/HTTP-Cookie-기본-개념 localstorage ≠ cookie (localstorage: browser, HTML5 specification, 5MB per domain, 용도는 네트워크 사용 대역폭을 줄이려고, 만료없고, 사용자가 지우지 않는한 영구적
cookie: 서버가 클라이언트에게 저장하라고 시킨 데이터 (session, user, server에 접근할 때 필요한 정보들,,), 4KB per domain, 만료기한 있음 )