如何调试 .Net Framework AuthorizeAttribute 中的 JWT 问题

我有与 JWT 一起工作的 Asp.Net 4.6 webAPI 应用程序。我正在使用Okta 授权代码流/令牌交换来获取令牌。然后我在我的所有请求中使用令牌。使用我的 Okta 开发端点时一切正常,但是当我使用我们的生产 Okta 端点时,经过身份验证的请求失败。授权和代码/令牌交换工作正常,但是当我使用 [Authorize] 属性向我的 WebApi 控制器请求数据时,请求似乎没有返回任何内容,甚至没有返回错误。事实上,chrome 中的请求显示请求永远不会完成。(尽管预检 OPTIONS 请求确实得到了 200)。我还可以在 Wireshark 中看到请求,并且永远不会发送响应。

最明显的答案是,我的代码或生产 Okta 端点上存在配置问题,导致 Authorize 属性静默失败。但我主要担心的是我似乎找不到调试它的方法。我尝试从 Authorize 属性继承,并覆盖所有方法以查看是否可以通过在这些方法中放置断点来确定任何内容,但是方法 OnAuthorization、IsAuthorized、HandleUnauthorizedRequest 等似乎永远不会被调用。

  1. 在那里调试的最佳方法是什么?是否有一个 Asp.Net 事件我可以挂钩以查看正在发送/返回到 Okta 以验证传入令牌的内容?

  2. 为什么它默默地失败了?这似乎是一个设计上应该冒出来的错误。


哈士奇WWW
浏览 166回答 1
1回答

胡子哥哥

这很可能是因为您的产品没有 API 访问管理。在您的预览组织中。您有免费的 API AM,因此它可以工作。在您的生产组织中。你得买这个功能。在每个组织上进行测试。转到 Okta 管理仪表板 > 安全 > API。您可能会看到其中一个的“授权服务器”选项卡,而另一个则看不到。另一个问题可能是,如果您的问题是您的组织。URL 然后 Okta 不会给出令牌的密钥无法在本地验证。不看你的配置很难说,但以上两种情况很常见
打开App,查看更多内容
随时随地看视频慕课网APP