使用机器对机器和基于用户的身份验证的 JWT 嵌套身份验证和授权是一回事吗?

Is nested authentication and authorization with JWT using both machine-to-machine and user-based auth a thing?

像我五岁一样向我解释。

同时使用机器对机器身份验证和基于用户的身份验证是否很典型?意思是:如果我有一个接受用户请求的网关或代理,并且它在处理或转发请求到应用程序服务器之前验证用户请求附带的 JWT 是正常的,还是误用期望使用机器对机器的 JWT 以确保到达应用程序服务器的请求来自网关?此外,在向应用程序服务器发出请求时,将用户的 JWT 包装或嵌套在机器对机器的 JWT 中是正常的还是误用?

让网关验证 JWT 签名和声明并根据需要将其转发到各种应用程序服务器是否更典型?

在这种时尚中嵌套 JWT 的愿望是矫枉过正,还是一些误用/“你理解错了”的情况?

如果您有一堆通过网关调用的后端微服务,那么通常会转发原始访问令牌 - 这会为您的 API 提供用户上下文,以便他们可以正确授权.

反向代理的更好用途是将机密令牌交换给那些拥有丰富声明的人 - 请参阅 Phantom Token Approach 了解其工作原理。

另请注意,建议每个人 API 验证 JWT - 这通常被描述为 Zero Trust Architecture,它可以防止中间人攻击。