在启用 SSL 的基于 WebAPI 的服务中启用基于令牌的身份验证

Enable token based auth in WebAPI based service with SSL enabled

我有一个基于 WebAPI/OWIN 的服务,带有用于基于证书的身份验证的自定义中间件。目前它需要 SSL 证书才能连接。现在我需要添加对基于令牌的身份验证的支持,而不是证书,客户端将在请求 header 中添加 JWT 令牌。所以我添加了另一个中间件来处理令牌,但服务器拒绝了来自 HTTP 层的传入请求,错误为 12044(需要证书才能完成客户端身份验证)。

是我在自定义中间件中处理令牌的方式有问题吗?我应该改用 UseOAuthBearerTokens 还是 UseOAuthAuthorizationServer?

我在网上看过,但找不到像这样的场景,但我相信即使不是很多人也会遇到过。

修复它的标准方法是什么,或者我该如何解决这个问题?

为了以后遇到这个奇怪问题的读者。

有一个模块在管道的早期拦截和过滤 IIS 请求。它还执行 SSL 协商、基本证书验证等。

这最初是为了防止任何没有有效证书的请求而设计的,它甚至不再是存储库的一部分,只是使用了二进制引用。