인증이란?
*세션과 토큰
-세션기반토큰
-토큰기반인증
*OAuth프젝때 많이 쓰게됨
비슷한 개념 다시 정리
인증(Authentification)
사용자의 신원을 확인하는 절차
로그인, 인증코드 입력, 지문 인증, Face ID
권한부여(Authorization)
어디까지 권한 부여 할건지 판단
네이버 카페 등급, IAM, 마스터계정 등
✅IAM 계정 접근 관리(Identity Access Management, IAM)
계정 접근 관리(Identity Access Management, IAM)는 조직이 필요로 하는 보안 정책을 수립하고, 정책에 따라 자동으로 사용자의 계정과 권한을 관리하는 솔루션입니다. 즉, IAM은 사용자 ID를 확인하고 사용자 권한을 관리하는 시스템을 의미합니다.
신원(Authorization)
✅세션인증방식
클라이언트가 브라우저에게 login요청을 하면 login이 성공하면 서버는 세션을 만들어서 거기에 사용자 정보를 담는데 세션을 전체를 클라이언트에 보내는게 아니라 세션아이디만 쿠키에 담아서 보낸다. 세션객체는 서버에 돌아가고있다. 세션이 유효기간이 있는 경우가 있어서 만료가 된 경우가 있어서 다시 요청 보내야할 때가 많다고 함
✅토큰인증방식
Jwt 이용하는게 토큰인증방식
토큰안에는 서버에서 쓰고 싶은 아무 정보를 다 넣을 수 있다고 함
서버에서 암호화방식으로 JWT생성
세션스토리지, 로컬스토리지, 쿠키와 같은 브라우저 저장소에서 보통 JWT를 보관하고 있다고 함
세션인증방식은 직접 관리를 해줘야하는데 토큰인증방식은 클라이언트가 토큰 갖고 있어서 서버 부하 없다.
OAuth는 플랫폼 기반 인증방식이다.
브라우저에 있는 토큰들은 마음만 먹으면 언제든지 꺼내쓸 수 있다.
✅네트워크 대역폭 낭비
통신할 때마다 클라이언트 서버에서 토큰을 주고 받아야하는데 토큰이 무거워질 수 있다.
그래서 네트워크 대역폭 낭비가 됨
토큰이 한번 발행되면 수정하고 폐기하는게 어렵다고 함
엑세스토큰은 만료기간을 짧게 가져간다. 엑세스토큰에 요청을 담아서 보내고
리프레쉬 토큰은 만료기간 길게 일주일 한달 이렇게 리프레쉬 토큰으로 엑세스 토큰을 재발행합니다.
OAuth
외부 서비스 플랫폼 계정을 이용 통해 인증 구현하는 방식(구글, 네이버)