[英]JWT token forwading between services
我有一个有问题的和一个潜在的解决方案,我想知道它是否是一个好的解决方案,或者是否存在更好的做事方式。
我有一个API A
由带有 JWT 令牌的前端调用。
如果该服务没有解决方案,我希望该服务从另一个API B
获取解决方案。
转发我从 Front User 收到的 JTW 令牌并以该用户身份验证到API B
以请求我的数据(知道 JWT 可能携带有用信息)是个好主意吗?
我是否应该删除 JWT 并以与此 API 不同的方式进行身份验证?
这些事情是否有行业标准或良好实践?
JWT 访问令牌旨在在 API 之间转发。 这样做可以维护可审核的用户身份。 每个 API 然后验证 JWT 签名、发行者、受众、范围和声明。 这有时被称为zero trust
API 架构 - 但有一些警告。
范围
根据业务数据领域设计这些。 例如,客户有范围orders shipping
并调用订单 API。订单 API 然后可以将 JWT 转发给运输 API。每个 API 必须检查它需要的范围。
相同的信任级别
与往常一样,您需要考虑威胁。 我的上述建议是针对将 API 拆分为微服务的,通常是出于技术原因,例如较小的代码大小和多个开发团队。
不同的信任级别
考虑转发一个JWT到一个大公司分部的一个Shipping API。 你可能不相信给他们orders
scope。在这种情况下,使用代币交换获得一个新代币,只有shipping
scope,然后将其转发给上游 API。
概括
始终致力于转发维护可审核用户身份的 JWT。 使用范围作为一种成分来确保最小特权。 还要评估威胁,以防止潜在的攻击。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.