2011-04-08 222 views
3

我有一個我要求客戶端證書的網站。根據SSL客戶端證書(授權)限制對Web服務的訪問

我已經配置我的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「ANY」客戶端證書訪問此網站。我如何限制只有一些證書的訪問?

回答

0

這聽起來像你想可能是客戶證書映射什麼:

http://learn.iis.net/page.aspx/478/configuring-one-to-one-client-certificate-mappings/

另外,我在你的配置是「匿名」設置爲true注意到。我從經驗中知道,匿名將覆蓋windows身份驗證,所以我想知道它是否也會覆蓋客戶提供ssl證書的需要。

+0

這正是「iisClientCertificateMappingAuthentication」部分應該執行的操作:將證書映射到用戶。 – Attilah 2011-04-08 11:56:50

+0

但未將匿名設置爲true,Web應用程序甚至無法啓動,它會引發異常:此服務的安全設置需要「匿名」身份驗證,但未啓用託管此服務的IIS應用程序。「 – Attilah 2011-04-08 11:58:07

+0

能夠訪問網站的客戶端證書不是來自可信CA的列表嗎?我一半懷疑您只是作爲匿名用戶進行身份驗證。另外,當您禁用匿名身份驗證標誌給我時iis config和您的實際應用程序的.config文件不同步,兩者都禁用匿名。最後,我沒有看過您的WindowsAuthentication設置,但我幾乎可以確定您只能選擇一種形式身份驗證(無論是Windows還是客戶端證書),您都不能同時使用。 – Tung 2011-04-12 03:56:51

相關問題