Azure 上托管的 Web API 中的 TLS 相互身份验证

TLS Mutual Authentication in WebAPI hosted on Azure

我们有一个 webapi 托管在 azure 上,我们需要启用 TLS 相互身份验证。

我的问题是,如何将调用限制为仅允许来自我知道调用者将发送的一个(或一组)证书的请求。我可以从 HttpContext.Connection.GetClientCertificateAsync();

读取一些属性

我应该只匹配这些属性还是有更好的方法来确保只使用我们 API 已知的证书处理调用。

谢谢

在 Azure 应用服务的 Web 应用程序上启用客户端证书身份验证后,该服务默认接受所有客户端证书。您可以通过在 global.asax 文件的 Application_AuthenticateRequest 方法中编写一些自定义代码或通过创建新的 HTTP 模块来限制证书,如 https://msdn.microsoft.com/en-us/magazine/dn201748.aspx 中所述(假设这是一个 ASP.NET 应用程序)

在 AuthenticateRequest 中,您可以放入类似于 IsValidClientCertificate() 方法的代码,如文章 https://docs.microsoft.com/en-in/azure/app-service/app-service-web-configure-tls-mutual-auth 中所述,它向您展示了检查 Web Api 获得的客户端证书的各种方法.根据您的需求,您可以自定义此功能。

希望这对您有所帮助....

无法像 IIS 那样限制接受的证书数量,从而为用户提供有限的客户端证书选择。我已经向微软提出了这个建议。

https://feedback.azure.com/forums/169385-web-apps/suggestions/35566390-limit-number-of-accepted-client-certificates-when