如何为部署在 Azure 上的网站实现 TLS 客户端证书认证?

How to implement TLS client certificate authentication for webistes deloyed on Azure?

我在 Azure 上部署了一个 Web 应用程序。我想限制只有有证书的设备才能访问该网站。我知道证书需要安装在客户端设备上。但是对于服务器端,我不确定如何验证它。该网站是使用 Java EE 开发的。

您可以按照以下步骤操作。

1.Navigate 到门户中的 Web 应用 -> Configuration -> General settings -> 将 Require incoming certificate 设置为 On。如果您希望允许某些路径对匿名访问保持打开状态,您可以将排除路径定义为应用程序配置的一部分,请参阅此 link.

2.When 在启用客户端证书的情况下将请求转发到您的应用程序代码,应用服务会使用客户端证书注入 X-ARR-ClientCert 请求 header。

客户端证书可通过 X-ARR-ClientCert 请求中的 base64 编码值在您的应用程序中使用 header,您的应用程序代码负责验证客户端证书。

参考 - https://docs.microsoft.com/en-us/azure/app-service/app-service-web-configure-tls-mutual-auth#access-client-certificate

官方文档中只有ASP.NET sample and Node.js sample,你可以在java中查看并实现它。