Loading
JWT (Json Web Token)
  • 헤더: 서명 생성을 위해 어느 알고리즘을 사용할지를 식별한다. HS256는 이 토큰이 HMAC-SHA256를 사용하여 서명됨을 의미한다. 일반적으로 쓰이는 암호화 알고리즘들은 SHA-2(HS256) 방식의 HMAC와 SHA-256(RS256) 방식의 RSA 서명이다. JWA(JSON 웹 알고리즘) RFC 7518은 인가 및 암호화를 위해 더 많은 것을 도입하고 있다.
  • 페이로드: 일련의 클레임을 포함한다. JWT 사양은 토큰에 일반적으로 포함되는 표준 필드인 7개의 등록 클레임 이름(Registered Claim Names)을 정의한다. 토큰의 목적에 따라 사용자 지정 클레임 또한 일반적으로 포함된다. 다음 예는 표준 Issued At Time 클레임(iat)과 사용자 지정 클레임(loggedInAs)을 보여준다.
  • 서명: 토큰을 안전하게 확인한다. 서명은 Base64url 인코딩을 이용하여 헤더와 페이로드를 인코딩하고 이 둘을 점(.) 구분자로 함께 연결시킴으로써 계산된다. 해당 문자열은 그 뒤 헤더에 규정된 암호화 알고리즘(이번 경우에는 HMAC-SHA256)에 유입된다. Base64url 인코딩은 base64와 비슷하지만 각기 다른 영숫자를 사용하며 패딩(padding)은 제외한다.
  • 인증의 경우 사용자가 성공적으로 자신들의 자격 정보를 사용하여 로그인하면 서버에 세션을 만들고 쿠키를 반환하는 전통적인 접근방식 대신 JSON 웹 토큰이 반환되며 로컬(일반적으로 로컬 또는 세션 스토리지. 쿠키를 사용할 수도 있음)에 저장되어야 한다. 부재 중인 프로세스의 경우 클라이언트는 미리 공유된 시크릿으로 자신만의 JWT를 생성하고 서명하고 이를 OAuth를 준수하는 서비스에 전달함으로써 다음과 같이 직접 인증을 수행할 수도 있다.
  • 사용자 에이전트는 일반적으로 Bearer 스키마를 사용하여 Authorization 헤더 안에 JWT를 보내야 한다. 헤더의 내용은 다음과 같을 수 있다 (Authorization: Bearer KtzxGui.....TojzQerR) == Authorization: Bearer 토큰값
  • JWT,Json Web Token, JSON TOKEN, 제이떠블유티, JSON데이터, BASE64 인코딩
댓글