이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 58862|회답: 3

[출처] JWT(JSON 웹 토큰) 이해에 대해 알아보세요.

[링크 복사]
게시됨 2018. 5. 21. 오후 3:56:52 | | | |
JWT 소개: JSON 웹 토큰(JWT)은 JSON 객체 내에서 당사자 간 정보를 안전하게 전송할 수 있는 간결하고 자급자족적인 방식을 정의한 오픈 표준(RFC 7519)입니다. 이 정보는 디지털 서명을 통해 검증되고 신뢰할 수 있습니다. JWT는 비밀(HMAC 알고리즘을 사용)이나 RSA의 공개/개인 키 쌍을 사용하여 서명할 수 있습니다.


JSON 웹 토큰이 유용한 몇 가지 상황:

신원 확인:이것이 JWT를 사용하는 가장 흔한 사례입니다. 사용자가 로그인하면, 이후 요청마다 JWT가 포함되어 해당 토큰이 허용하는 경로, 서비스 및 자원에 접근할 수 있게 됩니다. 싱글 사인온은 낮은 오버헤드와 다양한 도메인 간 쉽게 사용할 수 있는 기능 덕분에 오늘날 널리 사용되는 기능입니다.

정보 교환:JSON 웹 토큰은 당사자 간 정보를 안전하게 전송하는 훌륭한 방법입니다. JWT는 서명이 가능하기 때문에, 예를 들어 공개/비공개 키 쌍을 사용하여 발신자가 주장하는 사람임을 확실히 할 수 있습니다. 또한, 서명은 헤더와 페이로드를 사용해 계산되므로 콘텐츠가 조작되지 않았는지도 확인할 수 있습니다.


공식 웹사이트:하이퍼링크 로그인이 보입니다.

JWT 정보를 온라인에서 분석하기하이퍼링크 로그인이 보입니다.



JWT 매개변수 온라인 분석  하이퍼링크 로그인이 보입니다.

아래에서 제가 이해한 JWT는 틀렸으니, 조언을 부탁드립니다

우선, 이 도구는 MVC 웹사이트에서 사용하는 것이 권장되지 않습니다. 웹API에서 사용할 수 있습니다. 이 제품의 포지셔닝은 API이지 대체 웹사이트의 세션이 아닙니다!

asp.net 웹API 사용 튜토리얼:하이퍼링크 로그인이 보입니다.휠을 다시 만들지는 않을 거예요, 이 글이 쓰인 내용을 보면 괜찮아요.

JWT의 구성

JWT는 헤더, 페이로드, 서명 세 부분으로 구성되며, 그 사이에 점 기호가 있어 xx.yy.zz 형태를 형성합니다.


서명된 토큰의 경우, 변조 방지에도 불구하고 누구나 이 정보를 읽을 수 있다는 점에 유의하세요. 암호화되지 않은 한 JWT의 유효한 내용이나 헤더 요소에 민감한 정보를 넣지 마십시오.

예를 들어:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

{
alg: "HS256",
typ: "JWT"
}.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022
}.
[서명]

쉽게 말해, 누구나 이 토큰을 복호화할 수 있지만, 정보의 진위는 검증할 수 없으며, 이 토큰을 생성한 서버만이 진위를 검증할 수 있으므로 민감한 정보를 저장하지 마세요.


여기서 문제가 있습니다. 사용자가 비밀번호를 변경하거나 로그인이 금지된다면, JWT는 어떻게 토큰의 유효성을 해결할 수 있을까요?

제 아이디어는 페이로드 섹션에 guid 같은 문자열을 추가한 뒤, 캐시에 존재하는 것입니다. 사용자 신원을 확인할 때 jwt뿐만 아니라 페이로드 정보도 검증할 수 있습니다. 캐시를 제어함으로써 유효성을 제어할 수 있습니다.







이전의:C# 오픈 소스 프레임워크 (재인쇄)
다음:안전 업데이트 모드를 사용 중이고 업데이트를 시도하셨습니다
게시됨 2018. 8. 22. 오후 2:42:27 |
iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的.
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。


이들은 필수는 아니지만 유용하고 상호운용 가능한 선언 집합을 제공하기 위해 권장되는 사전 정의된 선언 집합입니다. 그 중 일부는 ISS(발행사), 경험치(만료 기간), 구독자(테마), AUD(청중) 등이 있습니다.

https://jwt.io/introduction/


 집주인| 게시됨 2021. 4. 27. 오전 10:59:48 |
헤더 (베이스64 이후)
탑재체 (베이스64 이후)
비밀

base64 문자열은 4의 배수보다 작으며, = 를 채워야 합니다.
 집주인| 게시됨 2022. 1. 21. 오후 5:09:52 |
"IAT" = > 1356999524, #token发布时间
"exp" = > 1556999524, #token过期时间
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com