27、微服务安全基础全解析

微服务安全基础全解析

1. JWT 声明集与签名

JWT(JSON Web Token)声明集是一个 JSON 对象,其成员是 JWT 发行者所声明的声明项。JWT 内的每个声明名称必须唯一,若有重复声明名称,JWT 解析器要么返回解析错误,要么仅返回包含最后一个重复声明的声明集。JWT 规范并未明确规定哪些声明是必需的,哪些是可选的,这取决于 JWT 的具体应用。例如,OpenID Connect 规范定义了必需和可选的声明,其中 iss、sub、add、exp 和 iat 被视为必需元素,而 auth_time、nonce、acr、amr 和 azp 是可选元素。除了规范中定义的必需和可选声明外,令牌发行者还可以在 JWT 声明集中包含额外元素。

JWT 的第三部分是签名,同样采用 base64url 编码。与签名相关的加密元素在 JOSE 头部中定义。在特定示例中,发行的令牌使用 RSASSA - PKCS1 - V1_5 与 SHA - 256 哈希算法,这在 JOSE 头部的 alg 元素值中表示为 RS256。签名是针对 JWS 的前两部分——JOSE 头部和 JWT 声明集计算的。

2. 信任传播与用户身份

用户上下文可以通过 JWS(JSON Web Signature)在微服务之间传递。由于调用微服务使用已知密钥对 JWS 进行签名,因此它会携带终端用户身份(如 JWT 中所声明)和调用微服务的身份(通过签名)。也就是说,调用微服务本身就是 JWS 的发行者。接收微服务若要接受 JWS,首先需要根据嵌入在 JWS 中的公钥或通过其他机制获取的公钥来验证 JWS 的签名,然后还需检查是否可以信任该密钥。

微服务之间建立信

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值