JWT 디코딩

Today I Learned 날짜 2024년 10월 8일 화요일 내용 JWT 디코딩 네이버에선, 솔루션에 가입한 유저의 정보를 JWT 토큰으로 넘겨준다. 이 토큰을 각 솔루션에 제공되는 공개키를 이용해 디코딩하여 유저 정보를 저장해야 한다. 쇼피파이에서도 했던 거라 그리 안어려울 거라 생각했는데 난관에 많이 부딪혔다. 인식하지 못하는 알고리즘 JWT 토큰은 헤더, 페이로드, 시그니처로 이루어져 있다. 헤더에는 토큰 타입과 시그니처의 해싱 알고리즘이 나타나있고, 페이로드에는 토큰에 담아 전달하려는 정보가 담겨있다. 시그니처는 토큰의 검증에 사용한다. 헤더에 사용해야하는 알고리즘이 적혀있지만, 일반적으로는 정해져있다. 예를 들어, 쇼피파이에선 Docs에 HS256을 사용한다고 나와있어서 굳이 헤더를 열어볼 필요가 없다. 그리고 이 알고리즘이 보통 많이 쓰이기도 하고… ...

2024년 10월 8일 · 2 분 · 배준수

EC2 무한 스크립트 초기화 문제

Today I Learned 날짜 2024년 9월 19일 목요일 내용 건방지지만 좋은 친구 인스타그램 관련된 쇼피파이 앱을 새로 생성했다. 임베디드 앱으로 만들었기 떄문에, 샵이 앱을 다운로드 받은 직후 세션토큰을 검증해주어야 한다. 기존에 다 구현해봤던 로직이라, 과거에 썼던 걸 그대로 가져와 썼다. 근데 토큰이 자꾸 잘못되었다고 뜬다. 분명 Shopify Docs에서 설명한 그대로 했는데… 마지막 원본 서명과 비교할 때 자꾸 다른 값이 뜬다.. GPT한테 물어봐도 제대로 된 해결책을 내놓지 않는 와중에, GPT가 내게 물어왔다. ...

2024년 9월 19일 · 3 분 · 배준수

JWT와 코드 분석

코드는 공개하지 않았습니다! JWT 정의 JSON Web Token의 약자로, 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의한 개방형 표준이다. 상대적으로 크기가 작은 덕분에 URL, POST, 혹은 HTTP 헤더로 빠르게 전송될 수 있다. JWT는 Authorization(권한 허가)에 주로 사용되어, 로그인한 사용자는 이후 Request의 header에 JWT를 포함시켜 보냄으로서 루트, 서비스, 리소스에 대한 접근이 허용된다. 물론 주로 쓰이는 방법일 뿐, JWT가 반드시 Single-Sign-On을 위해 만들어진 기술은 아니다. 등장 배경 기존 authorization은 XML을 기반으로한 SAML(Security Assertion Markup Language) 형식을 이용하였다. 하지만 너무 크고(verbose) 느리다는 단점이 있었다. 따라서 크기가 작아 가볍고 전송이 빠른 JWT를 사용하게 되었다. ...

2023년 10월 12일 · 4 분 · 배준수