The JWT Handbook Sebastián E. Peyrott, Auth0 Inc. Version 0.14.1, 2016-2018 Contents Special Thanks 4 1 Introduction 1.1 What is a JSON Web Token? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 What problem does it solve? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 A little bit of history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 6 2 Practical Applications 2.1 Client-side/Stateless Sessions . . . . . . . . . . . . . . . . . . . . 2.1.1 Security Considerations . . . . . . . . . . . . . . . . . . . 2.1.1.1 Signature Stripping . . . . . . . . . . . . . . . . 2.1.1.2 Cross-Site Request Forgery (CSRF) . . . . . . . 2.1.1.3 Cross-Site Scripting (XSS) . . . . . . . . . . . . 2.1.2 Are Client-Side Sessions Useful? . . . . . . . . . . . . . . 2.1.3 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Federated Identity . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Access and Refresh Tokens . . . . . . . . . . . . . . . . . 2.2.2 JWTs and OAuth2 . . . . . . . . . . . . . . . . . . . . . . 2.2.3 JWTs and OpenID Connect . . . . . . . . . . . . . . . . . 2.2.3.1 OpenID Connect Flows and JWTs . . . . . . . . 2.2.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4.1 Setting up Auth0 Lock for Node.js Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 9 9 10 11 13 13 16 18 19 20 20 20 21 3 JSON Web Tokens in Detail 3.1 The Header . . . . . . . . . . . . 3.2 The Payload . . . . . . . . . . . 3.2.1 Registered Claims . . . . 3.2.2 Public and Private Claims 3.3 Unsecured JWTs . . . . . . . . . 3.4 Creating an Unsecured JWT . . 3.4.1 Sample Code . . . . . . . 3.5 Parsing an Unsecured JWT . . . 3.5.1 Sample Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 24 25 25 26 27 27 28 28 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 JSON Web Signatures 4.1 Structure of a Signed JWT . . . . . . . . . . . . . . . 4.1.1 Algorithm Overview for Compact Serialization 4.1.2 Practical Aspects of Signing Algorithms . . . . 4.1.3 JWS Header Claims . . . . . . . . . . . . . . . 4.1.4 JWS JSON Serialization . . . . . . . . . . . . . 4.1.4.1 Flattened JWS JSON Serialization . . 4.2 Signing and Validating Tokens . . . . . . . . . . . . . 4.2.1 HS256: HMAC + SHA-256 . . . . . . . . . . . 4.2.2 RS256: RSASSA + SHA256 . . . . . . . . . . . 4.2.3 ES256: ECDSA using P-256 and SHA-256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 30 32 33 36 36 38 38 39 39 40 5 JSON Web Encryption (JWE) 41 5.1 Structure of an Encrypted JWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.1.1 Key Encryption Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.1.1.1 Key Management Modes . . . . . . . . . . . . . . . . . . . . . . . . 46 5.1.1.2 Content Encryption Key (CEK) and JWE Encryption Key . . . . . 47 5.1.2 Content Encryption Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.1.3 The Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.1.4 Algorithm Overview for Compact Serialization . . . . . . . . . . . . . . . . . 49 5.1.5 JWE JSON Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.1.5.1 Flattened JWE JSON Serialization . . . . . . . . . . . . . . . . . . 52 5.2 Encrypting and Decrypting Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.2.1 Intr

pdf文档 jwt-handbook-v0_14_1

计算机 > 前端 > JWT > 文档预览
120 页 0 下载 456 浏览 0 评论 0 收藏 3.0分
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
jwt-handbook-v0_14_1 第 1 页 jwt-handbook-v0_14_1 第 2 页 jwt-handbook-v0_14_1 第 3 页 jwt-handbook-v0_14_1 第 4 页 jwt-handbook-v0_14_1 第 5 页
下载文档到电脑,方便使用
还有 115 页可预览,继续阅读
本文档由 user2021-02-28 14:51:09上传分享
给文档打分
您好可以输入 255 个字符
DocHub文库的中文名是什么?( 答案:多哈 )
评论列表
  • 暂时还没有评论,期待您的金玉良言
最新文档