【问题标题】:Access Token JWT validation访问令牌 JWT 验证
【发布时间】:2021-08-24 17:49:37
【问题描述】:

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

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

【问题讨论】:

  • Azure AD 不提供端点来验证令牌。需要你自己实现。

标签: oauth-2.0 azure-active-directory jwt


【解决方案1】:

是的,您应该每次都验证它。使用 JWT 的原因是为了授权请求。如果您不在乎是谁发送了请求,并且无论是黑客还是您的客户,都不要使用 jwt 和 oauth。如果您确实关心并使用它,则必须确保 jwt 没有被某些黑客更改,因此必须检查签名。

【讨论】:

    【解决方案2】:

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

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

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

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

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

    自省最常用于不透明的访问令牌(Azure 也不支持)。有关此模式的更多详细信息,请参阅Phantom Token Approach

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 2022-10-15
      • 2021-11-16
      • 2019-01-26
      • 2020-07-12
      • 2019-07-28
      • 2019-06-23
      • 2018-02-27
      • 1970-01-01
      相关资源
      最近更新 更多