是否可以在Windows Azure网站中使用客户端证书

丹尼尔

我正在开发Windows服务应用程序,该应用程序将在客户PC /服务器上运行,并访问Azure网站中托管的Web API终结点。它需要对用户进行身份验证,我希望不要将凭据存储在客户的计算机上。因此,我使用了客户端证书来对用户进行身份验证。我针对具有自签名证书的本地非Azure网站IIS实例进行此操作。但是,我无法使其在Azure网站上运行。

据我所知,有两个问题我没有找到太多文档:

  • 如何在网站实例的受信任根中安装自己的CA证书?还是仅适用于已经受信任的CA证书?
  • 如何为该应用程序启用“接受客户端证书”?在IIS中,您可以在“ SSL设置”下执行此操作。文档表明修改app.config的system.webServer / security / access节点将完成此操作,但是显然您不能在Websites中执行此操作。网站文档显示此节点已解锁,可在web.config中使用,但是添加该节点会导致错误“由于发生内部服务器错误而无法显示该页面。”,即使自定义错误已关闭。
谢尔盖·卡戴斯(Sergey Kardash)

对于Azure网站与Web角色,客户端身份验证选项相当有限。网站不允许您以提升的权限运行程序,这是进行IIS更改并将证书存储到受信任的根目录中所必需的。

有一种方法可以将您的网站配置为始终(客户端无法像使用IIS“接受”配置那样将其设置为可选)来请求客户端证书。该功能当前仅通过Azure管理REST API可用,您无法通过门户网站UI对其进行访问。您可以在这里找到更多信息本质上,您将clientCertEnabled网站设置为true。此选项的机制与传统的客户端身份验证不同,在传统的客户端身份验证中,服务器需要具有一个CA证书,用于在其受信任的根中签名该客户端证书。服务器不对客户端证书运行任何验证,应用程序需要自己运行证书检查,该检查位于请求标头“ X-ARR-ClientCert”中。HttpRequestMessage的GetClientCertificate()扩展方法将自动对其进行解析。

或者,您可以将Web API托管为Web角色。这样就可以访问具有增强权限的运行中启动任务,该权限允许访问受信任的root并进行IIS配置,更多详细信息/示例在此处您可以将CA证书复制到app文件夹,也可以通过Azure门户上传到用户存储,以便在启动任务中可以将其复制到受信任的根。可以通过ServerManager类的NuGet包中的“ Microsoft.Web.Administration”库进行IIS更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Windows 10的Chrome或IE中使用客户端证书

IIS是否可以要求SSL客户端证书而不将它们映射到Windows用户?

当客户端计算机不是域成员时,我们可以在IIS中使用基于AD的客户端证书身份验证吗?

是否可以使用HTTP(而非HTTPS)客户端证书?

使用Azure网站实例中的客户端证书

是否可以将Windows VisualSVN存储库与MAC客户端一起使用

是否可以在不使用客户端Javascript的情况下建立服务器端Javascript网站?

是否可以在单个JPOS实例中使用多个端口侦听多个客户端?

您可以检查/监视使用Wireshark发送的请求中的客户端证书吗?

macOS Git客户端可以使用存储在用户钥匙串中的证书吗?

我可以在没有自定义域的情况下在 Azure 应用服务上使用客户端证书吗?

转到:使用存储在智能卡上的客户端证书进行HTTPS请求(Windows)

仅使用有效的客户端证书连接到Windows Server 2012吗?

iText(任何版本)是否可以在Windows Azure网站上使用?

Puppet主客户端证书是否曾经过期?

如何测试HttpClient是否包含客户端证书?

TLS 客户端是否需要安装证书?

在WebJob中使用客户端证书

添加客户端证书后,使用 Python 和 Postman 在 Windows 上“无法获得本地颁发者证书”

是否可以使用InProcessChannel在同一进程中使用Java客户端调用c ++服务器?

是否可以在Maven中使用apache cxf将webservices客户端代码生成到特殊程序包?

以后是否可以在客户端-服务器db环境中使用嵌入式Derby数据库?

我可以通过将Azure事件网格推送到https端点来附加/配置客户端证书吗?

没有第三方客户端,是否可以连接Windows上的OpenVPN?

是否可以使用OAuth-客户端凭据授予类型获取Azure Blob存储的访问令牌?

我可以在TFS中使用Git客户端-但不使用Visual Studio吗?

是否可以使用REST API测试简单的客户端脚本?不是REST API的测试客户端

在哪里可以找到要在Microsoft Flow的Azure REST API调用中使用的“受众群体”和“客户端ID”字段?

您可以在GWT客户端中使用Java Reflection API吗