"基于JWT.NET的使用详解"
1. 什么是JWT?
JWT全称是Json Web Token,是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。
2. JWT的结构
JWT一般由三段构成,用.号分隔开,第一段是header,第二段是payload,第三段是signature。
3. Header(头部)
header承载两部分信息:声明类型和加密算法。通常直接使用HMAC SHA256,其它还有RS256等完整的头部就像下面这样的JSON:{"alg": "HS256","typ": "JWT"}
4. Payload(载荷)
payload就是存放有效信息的地方。这个名字像是特指飞机上承载的货品,这些有效信息包含三个部分:标准中注册的声明、公共的声明、私有的声明。
5. Payload中注册的声明
标准中注册的声明包括:
iss:jwt签发者
sub:jwt所面向的用户
aud:接收jwt的一方
exp:jwt的过期时间
nbf:定义在什么时间之前,该jwt都是不可用的
iat:jwt的签发时间
jti:jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击
6. 公共的声明
公共的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息。但不建议添加敏感信息,因为该部分在客户端可解密。
7. 私有的声明
私有的声明是提供者和消费者所共同定义的声明,一般不建议存放敏感信息,因为base64是对称解密的,意味着该部分信息可以归类为明文信息。
8. Signature(签证信息)
signature是jwt的第三部分,一个签证信息,由三部分组成:header(base64后的)、payload(base64后的)和secret,这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加secret组合加密,然后就构成了jwt的第三部分。
9. JWT的使用
JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。因此,JWT可以保证信息的安全传递。
10. 结论
基于JWT.NET的使用详解,JWT是一种优秀的身份验证和授权的方式,可以广泛应用于web开发中。
- 1
- 2
前往页