IIS7, podobnie jak II6 posiada możliwość autoryzacji certyfiaktem cyfrowym do strony.
Podonie jak w IIS 6, jest możliwość logowania za pomocą certyfikatów firm trzecich, jak również logowania certyfikatami skojarzonymi z kontami AD.
Problem pojawia się w momencie gdy chcemy skonfigurować takie rozwiązanie. Dla konfiguracji certyfikatem zewnętrznym do AD można znaleźć w sieci poradniki, ale do konfiguracji z uwierzytelnianiem z AD poradników nie ma. Niby wystarczy zainstalować dodatek do IIS7, włączyć w opcjach site, i już powinno działać. Ale niestety tak nie jest.
IIS7 ma poważne braki w interfejse do konfiguracji certyfikatów. O ile w opcjach całego serwera mamy możliwośc zanza`czenia uwierzytelnienia certyfikatem, to przy pojedynczym katalogu wirtualnym takiej możliwości nie ma. W związku z tym z cmd z podniesionymi uprawnieniami:
notepad %windir%\system32\inetsrv\config\applicationHost.config
Ta opcja jest ustawiana z automatu:
<Configuration> <System.WebServer> <Security> <clientCertificateMappingAuthentication enabled="true" />
Wyszukujemy teraz interesujący nas site, np "Default Web Site/owa"
<location path="Default Web Site/owa"> <system.webServer> <security> <authentication> <windowsAuthentication enabled="false"> <providers> <clear /> <add value="Negotiate" /> <add value="NTLM" /> </providers> </windowsAuthentication> <anonymousAuthentication enabled="false" /> <digestAuthentication enabled="false" /> <basicAuthentication enabled="false" /> <clientCertificateMappingAuthentication enabled="true" /> </authentication> <access sslFlags="Ssl, SslNegotiateCert, SslRequireCert, Ssl128" /> </security>
Gdzie linijkę <clientCertificateMappingAuthentication enabled="true" /> trzeba po prostu dopisać, bo w GUI nie ma.
Jeśli chcemy mieć ClientCertificate + Windows Integrated
<windowsAuthentication enabled="true"> <clientCertificateMappingAuthentication enabled="true" /> <access sslFlags="Ssl, SslNegotiateCert, Ssl128" />
Remember Me