简介
JWT(Json Web Token)是一种用于在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准(RFC 7519)。JWT 被设计为紧凑且安全的,适用于分布式站点的单点登录(SSO)场景。Json Web Token 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可用于增加一些额外的其它业务逻辑所必须的声明信息,Json Web Token 也可直接被用于认证,也可被加密。
JWT 连接器提供生成 Json Web Token 以及校验 Json Web Token 的相关功能。
配置
配置参数:
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
签名方法 | enum | NONE/HMAC-SHA-256/HMAC-SHA-384/HMAC-SHA-512/RSA-SHA-256/RSA-SHA-384/RSA-SHA-512/RSAPSS-SHA-256/RSAPSS-SHA-384/RSAPSS-SHA-512 | 是 | 无 |
选择“NONE”时,无配置参数,如下图:
![配置](https://qcloudimg.tencent-cloud.cn/image/document/a786fe798d120e80526175dcd720b13c.png)
![配置](https://qcloudimg.tencent-cloud.cn/image/document/a786fe798d120e80526175dcd720b13c.png)
选择“HMAC-SHA-256/HMAC-SHA-384/HMAC-SHA-512”时,配置参数如下:
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
HMAC 密钥 | string | HMAC密钥 | 是 | 无 |
![配置](https://qcloudimg.tencent-cloud.cn/image/document/6ebe4521da225ec70734aa7a218d1e1b.png)
![配置](https://qcloudimg.tencent-cloud.cn/image/document/6ebe4521da225ec70734aa7a218d1e1b.png)
选择”RSA-SHA-256/RSA-SHA-384/RSA-SHA-512/RSAPSS-SHA-256/RSAPSS-SHA-384/RSAPSS-SHA-512“时,配置参数如下:
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
私钥证书文件 | string | RSA 私钥证书文件 | 是 | 无 |
公钥证书文件 | string | RSA 公钥证书文件 | 是 | 无 |
![配置](https://qcloudimg.tencent-cloud.cn/image/document/33d423fd2d83e742748ed26fd0afb03f.png)
![配置](https://qcloudimg.tencent-cloud.cn/image/document/33d423fd2d83e742748ed26fd0afb03f.png)
操作说明
JWT 组件目前支持生成 JWT 和校验 JWT 操作。
生成 Json Web Token
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
签发者(iss) | string | JWT 签发者 | 否 | 无 |
主题(sub) | string | JWT 主题 | 否 | 无 |
唯一身份标识 ID(jti) | string | JWT 的唯一身份标识 ID | 否 | 无 |
接收者列表(aud) | []string | 接收 JWT 的对象列表 | 否 | 无 |
签发时间(iat) | datetime | JWT 的签发时间 | 否 | 无 |
有效起始时间(nbf) | datetime | JWT 的有效起始时间,定义在该时间之前,JWT 都是不可用的 | 否 | 无 |
有效时间(exp) | int | 有效起始时间加上有效时间为 JWT 的过期时间 | 否 | 3600(单位:秒) |
自定义声明 | dict | JWT 自定义声明 | 否 | 无 |
![pbkdf2配置](https://qcloudimg.tencent-cloud.cn/image/document/a8f85629f503b0a5a0e73ade01a1180b.png)
![pbkdf2配置](https://qcloudimg.tencent-cloud.cn/image/document/a8f85629f503b0a5a0e73ade01a1180b.png)
输出
操作执行成功后,输出结果会保存在 message 消息体的 payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 binary 类型,返回生成的 JWT 内容。 执行失败后,payload 为空。 |
error | 执行成功后,error 为空。 执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息。 |
attribute | 继承上个组件的 attribute 信息。 |
variable | 继承上个组件的 variable 信息。 |
案例1
1. 添加 JWT 组件,选择生成 JsonWebToken 操作:
![对称加密选择](https://qcloudimg.tencent-cloud.cn/image/document/489f71d75856780da6f599ae052152ba.png)
![对称加密选择](https://qcloudimg.tencent-cloud.cn/image/document/489f71d75856780da6f599ae052152ba.png)
2. 在连接器配置中,填写相关参数:
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/873a023d126b72b99264015420e62c28.png)
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/873a023d126b72b99264015420e62c28.png)
3. 在操作配置填写参数如下:
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/4bc6c66eecf09cccaf09691c3a55d31b.png)
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/4bc6c66eecf09cccaf09691c3a55d31b.png)
4. 执行成功后,message payload 中为 JsonWebToken 内容:
![image-20210521114703633](https://qcloudimg.tencent-cloud.cn/image/document/3fade3b8ab8844616163d005e7584fc5.png)
![image-20210521114703633](https://qcloudimg.tencent-cloud.cn/image/document/3fade3b8ab8844616163d005e7584fc5.png)
校验 JsonWebToken
参数配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
Token | string | 生成的 Json Web Token | 是 | 无 |
接收者列表(aud) | []string | 用于校验接收 JWT 的对象是否匹配 | 否 | 无 |
![pbkdf2配置](https://qcloudimg.tencent-cloud.cn/image/document/6380ea0a7cf96618529a26fc85b63546.png)
![pbkdf2配置](https://qcloudimg.tencent-cloud.cn/image/document/6380ea0a7cf96618529a26fc85b63546.png)
输出
操作执行成功后,输出结果会保存在Message消息体的payload;执行失败后,错误信息会保存在 message 消息体的 error。
组件输出的 message 信息如下:
message属性 | 值 |
payload | 执行成功后,payload 为 binary 类型,返回校验解析 JWT 后的内容。 执行失败后,payload 为空。 |
error | 执行成功后,error 为空。 执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息。 |
attribute | 继承上个组件的 attribute 信息。 |
variable | 继承上个组件的 variable 信息。 |
案例2
1. 添加 JWT 组件,选择校验 JsonWebToken 操作
![对称加密选择](https://qcloudimg.tencent-cloud.cn/image/document/489f71d75856780da6f599ae052152ba.png)
![对称加密选择](https://qcloudimg.tencent-cloud.cn/image/document/489f71d75856780da6f599ae052152ba.png)
2. 在连接器配置中,填写相关参数:
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/873a023d126b72b99264015420e62c28.png)
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/873a023d126b72b99264015420e62c28.png)
3. 在操作配置填写参数如下:
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/f1ed2ccf67739c3816db93dd0eb3bfae.png)
![image-20210521115044004](https://qcloudimg.tencent-cloud.cn/image/document/f1ed2ccf67739c3816db93dd0eb3bfae.png)
4. 执行成功后,message payload 中为校验解析后的 JsonWebToken 内容:
![image-20210521114703633](https://qcloudimg.tencent-cloud.cn/image/document/a312c83f9b981581d141db7d2f232626.png)
![image-20210521114703633](https://qcloudimg.tencent-cloud.cn/image/document/a312c83f9b981581d141db7d2f232626.png)