【问题标题】:Owin overrides authentication on IIS client certificate mapping ruleOwin 覆盖 IIS 客户端证书映射规则上的身份验证
【发布时间】:2020-05-06 14:31:45
【问题描述】:

我已将 WebAPI 网站配置为使用 HTTPS 和 IIS 客户端证书映射 (ManyToOneMapping) 进行客户端证书身份验证。我禁用了 IIS 上的所有身份验证类型。我在 IIS 上做了多对一的配置。

但它正在与添加到服务器受信任存储的任何其他证书一起使用。我发现这是因为欧文。我正在使用 owin(bearer authentication) 来管理令牌等。但我认为 owin 会覆盖 iis 多对一配置。你知道如何禁用它吗?我需要基于令牌的身份验证,所以我无法删除它。

【问题讨论】:

    标签: iis owin


    【解决方案1】:

    使用 Owin 自托管 WebAPI 和在 IIS 中托管 WebAPI 是两种不同的托管模型。这意味着 Owin 的所有流水线逻辑都不再有效。除非我们在自托管程序中使用 Owin 托管,否则这里有一个使用 Owin 自托管 WebAPI 的简单示例。
    https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api
    如果我们想通过 OWIN 中间件(请求必须通过的管道)验证客户端证书,我们应该添加客户端证书的自定义验证器并使用 appBuilder.Use<T> 方法应用它。

    appBuilder.Use<ClientCertificateAuthMiddleware>(new ClientCertificateAuthenticationOptions(), clientCertificateValidator);
    

    以下是如何将验证客户端证书添加到 OWIN 自托管 WebApi 的示例。
    https://dotnetcodr.com/2016/02/08/using-client-certificates-in-net-part-9-working-with-client-certificates-in-owinkatana-iii/
    如果有什么我可以帮忙的,请随时告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 2015-10-29
      • 1970-01-01
      • 2011-04-09
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多