基于SSL客户端证书限制访问Web服务(授权)

3

我是一名助手,可以为您翻译中文。以下是需要翻译的it技术相关内容:

我的网站要求使用客户端证书。

我已经按照以下方式配置了我的IIS网站:

 <location path="MySecureService">
  <system.webServer>
 <security>
  <access sslFlags="SSl, SslRequireCert"/>
  <authentication>
    <anonymousAuthentication enabled="true"/>
    <windowsAuthentication enabled="true"></windowsAuthentication>
    <digestAuthentication enabled="false"/>
    <basicAuthentication enabled="false"/>
    <iisClientCertificateMappingAuthentication enabled="true" oneToOneCertificateMappingsEnabled="true" >
      <oneToOneMappings>
        <add enabled="true" userName="myUsername" password="myPassword"
             certificate=[certificate-blob-here]
             />
      </oneToOneMappings>
    </iisClientCertificateMappingAuthentication>
  </authentication>
</security>

我可以使用任何由我的服务器认可的根CA签发的客户端证书访问此网站。如何仅限制访问某些证书?

1个回答

0

这正是“iisClientCertificateMappingAuthentication”部分的作用:将证书映射到用户。 - Attilah
但是如果将anonymous设置为true,Web应用程序甚至无法启动,它会抛出异常:“此服务的安全设置要求‘匿名’身份验证,但未为托管此服务的IIS应用程序启用。” - Attilah
你能使用不在受信任CA列表中的客户端证书访问网站吗?我有点怀疑你只是作为匿名用户进行身份验证。此外,当你禁用匿名身份验证标志时得到的异常提示我,你的iis配置和实际应用程序的.config文件不同步。两者都应禁用匿名。最后,我之前没有查看过你的WindowsAuthentication设置,但我几乎可以确定你只能选择一种身份验证方式(Windows或客户端证书),不能同时使用两种。 - Tung
不,我无法使用非受信CA列表中的客户端证书访问该网站。 - Attilah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接