访问令牌 JWT 验证

Aru*_*ran 4 oauth-2.0 jwt azure-active-directory

是否真的需要通过使用公钥解密来验证访问令牌?我问这个与 Azure AD 相关的问题。据我所知,可以验证 JWT 令牌,以确保它确实由 Azure AD 签署。如果是这种情况,是否有任何 Azure AD 端点可以让我传递令牌并获取响应(无论该令牌是否由其签名)?互联网上的所有文章都解释了从 Azure AD 端点获取公钥的手动方法,然后我们自己执行解密步骤。是否有任何自动方法来验证访问令牌?

如果有人能够阐明 API 在服务请求之前验证访问令牌是否是标准做法,那就太好了。

Gar*_*her 5

对于 API 来说,在每个请求上验证 JWT 访问令牌被认为是最好的安全措施。这种方法速度很快,并且可以扩展到微服务架构,其中服务 A 可以将访问令牌转发给服务 B,依此类推。

结果可以称为“零信任架构”,因为来自互联网客户端和后端运行的客户端的调用都涉及在 API 逻辑运行之前的数字验证。

您是对的,需要一定数量的管道代码来验证 JWT。这通常在过滤器中编码一次,然后您不需要重新访问它。有关各种技术的一些示例,请参阅Curity API 指南

我可以确认此方法适用于 Azure AD - 如果您遇到任何特定问题,请回复。

某些授权服务器还支持通过OAuth Introspection进行令牌验证,但 Azure AD 目前不支持此功能。

内省最常与不透明访问令牌一起使用(Azure 也不支持)。有关此模式的更多详细信息,请参阅幻象令牌方法。