항해99/TIL

37일차-7/13 화 -항해99

고로케 2021. 7. 13.
반응형

하루 회고

  • 세션 방식의 로그인 방식을 구현하였지만, 프론트 단에서는 작용이 어려워서 JWT방식으로 바꾸기로했다. 하지만 JWT방식을 구현하는게 쉽지 않아 시간을 조금 많이 썼는데 에러가 많이 났다.

주저리 주저리

  • 협력사인 이큐브랩의 설명을 듣고 역시 취업은 쉽지 않다는 것을 느꼈다. 회사에서 사람을 뽑는 기대치가 높은 만큼 나도 그 수준을 갖추기 위해서 더 열심히 해야겠다.

오늘 배운 것

  • 로그인 : Session 방식 / JWT 방식

JWT는 JSON Web Token의 약자로 Json형태로 표현된 정보를 전달하는 하나의 방식으로, 토큰 자체에 모든 정보(토큰 기본정보, 전달할 정보, 검증됐다는 시그니쳐 정보 등)를 스스로 지니고 있다는 것이 큰 특징입니다. (자가 수용적, Self-Contained)웹 서버의 경우 헤더나 파라미터를 통해 손쉽게 넘길 수 있어 인증이 필요한 REST 서비스에서 주로 활용됩니다.

토큰 기반 인증은 주로 클라이언트와 연결고리가 없는 모던 웹 서비스에서 사용하는 인증 방식입니다.백엔드는 상태가 없는(stateless) REST 서비스로 구성하기 때문에 로그인 정보나 기타 정보를 세션에 저장하지 않습니다.상태가 없이 서버로 들어오는 클라이언트의 요청으로 판단하기 위해 요청에 포함된 토큰을 해석하고, 권한이 있는 유저인지 판단하여 서버의 리소스에 접근하는 것을 허용합니다.

인증 과정을 간략하게 얘기하면

  1. 클라이언트가 인증 API를 통해 인증 요청
  2. 서버는 인증 진행 후 유효한 경우 토큰 발급 (JWT)
  3. 다음 요청 시 인증 토큰을 요청에 포함시켜 요청
  4. 서버는 요청에 포함된 인증 토큰을 해석해 권한 검사

Spring Security 핵심 개념과 토큰 기반 인증

토큰 기반 인증을 Spring Security로 구현하기 위해 핵심 개념을 아래와 같이 간략하게 정리해봤습니다.

  • 접근 주체 (Principal)
    • 보호된 리소스에 접근하려는 주체
  • 인증 (Authenticate, Authentication)
    • 접근 주체가 누구인지 식별하는 과정
    • 식별이 완료된 정보는 인증 객체로 표현되어 이후 절차에서 참조될 수 있도록 전파됨
  • 인가 (Authorize)
    • 현재 사용자가 보호된 리소스에 대해 권한이 있는지 검사
    • 인증을 통해 확인한 사용자가 보유한 권한(Roles)을 확인해 요청한 서비스(API)를 수행할 권한이 있는지 확인하는 과정
  • 권한
    • 인증된 접근 주체가 요청한 서비스를 수행할 자격이 있음을 증명하는 것

반응형

'항해99 > TIL' 카테고리의 다른 글

39일차-7/15 목 -항해99  (0) 2021.07.17
38일차-7/14 수 -항해99  (0) 2021.07.15
36일차-7/12 월 -항해99  (0) 2021.07.13
35일차_7/11_항해99 -5주차 WIL(회고록)  (0) 2021.07.12
34일차-7/10 토 -항해99  (0) 2021.07.11

댓글