Instrukcje krok po kroku dotyczące konfigurowania przezroczystego uwierzytelniania użytkowników domeny w trybie jednokrotnego logowania (Single Sign-On) przy użyciu protokołu Kerberos na stronie internetowej IIS w systemie Windows Server 2012 R2.
Na serwerze WWW uruchom konsolę Menedżera usług IIS, wybierz żądaną witrynę i otwórz sekcję Uwierzytelnianie. Jak widać, domyślnie dozwolone jest tylko anonimowe uwierzytelnianie (Anonimowy Uwierzytelnianie) Wyłącz i włącz Windows Uwierzytelnianie (IIS zawsze najpierw próbuje anonimowego uwierzytelnienia).
Otwieramy listę dostawców dostępnych do uwierzytelniania systemu Windows (Dostawcy) Domyślnie dostępnych jest dwóch dostawców: Negocjuj i NTLM. Negotiate to kontener, który wykorzystuje Kerberos jako pierwszą metodę uwierzytelnienia; jeśli to uwierzytelnienie się nie powiedzie, zostanie użyty NTLM. Konieczne jest, aby na liście dostawców metoda Negocjuj stanął pierwszy.
Następnym krokiem jest rejestracja Główna nazwa usługi (SPN) rekordy nazwy witryny, do której użytkownicy będą uzyskiwać dostęp. Jeśli witryna IIS powinna być dostępna tylko pod nazwą serwera, na którym się znajduje (http: // nazwa-serwera lub http://nazwa-serwera.contoso.com), nie trzeba tworzyć dodatkowych rekordów SPN (rekordy SPN już istnieje na koncie serwera w AD). Podczas korzystania z adresu witryny innego niż nazwa hosta lub podczas budowania zrównoważonej farmy internetowej konieczne będzie powiązanie dodatkowych nazw SPN z kontem serwera lub użytkownika.
Załóżmy, że mamy farmę serwerów IIS. W takim przypadku optymalne jest utworzenie osobnego konta w AD i powiązanie z nim rekordów SPN. Z tego samego konta uruchomią docelową pulę aplikacji naszej witryny.
Utwórz konto domeny iis_usługa. Upewnij się, że do tego obiektu nie są przypisane żadne wpisy SPN (atrybut servicePrincipalName jest pusty).
Załóżmy, że witryna powinna odpowiadać na adresy _http: // webportal i _http: //webportal.contoso.loc. Musimy zarejestrować te adresy w atrybucie SPN konta usługi.
Setspn / s HTTP / webportal contoso \ iis_service
Setspn / s HTTP / webportal.contoso.loc contoso \ iis_service
W związku z tym pozwolimy temu kontoowi odszyfrować bilety Kerberos, gdy użytkownicy uzyskają dostęp do tych adresów i uwierzytelnią sesje.
Możesz sprawdzić ustawienia SPN swojego konta w następujący sposób:
setspn / l iis_service
setspn -x
Następnym krokiem jest skonfigurowanie puli aplikacji IIS do uruchamiania z utworzonego konta usługi.
Wybierz witrynę puli aplikacji (w naszym przykładzie jest to DefaultAppPool).
Otwórz sekcję ustawień Zaawansowane Ustawienia i przejdź do parametru Tożsamość.
Zmień za pomocą ApplicationPoolIdentity na contoso \ iis_service.
Następnie w konsoli Menedżera usług IIS przejdź do swojej witryny i wybierz sekcję Edytor konfiguracji.
W menu rozwijanym przejdź do sekcji system.webServer> bezpieczeństwo> uwierzytelnianie> uwierzytelnianie systemu Windows
Zmień useAppPoolCredentials na Prawda.
Dlatego pozwolimy IIS używać kont domeny do odszyfrowywania biletów Kerberos od klientów.
Uruchom ponownie IIS za pomocą polecenia:
iisreset
Tę samą konfigurację należy wykonać na wszystkich serwerach farmy internetowej.
Testujemy autoryzację Kerberos, otwierając adres klienta w przeglądarce klienta (przeglądarka musi być najpierw skonfigurowana do korzystania z Kerberos) _http: //webportal.contoso.loc
Uwaga. W moim przykładzie nie mogłem zalogować się natychmiast na IE11. Musiałem dodać adres do zaufanych iw ustawieniach witryn Zaufane strefy ustawić wartość Uwierzytelnienia użytkownika -> parametr logowania na Automatyczne zaloguj się z obecny użytkownik imię i hasłoMożesz sprawdzić, czy Kerberos jest używany do autoryzacji w witrynie, sprawdzając ruch HTTP za pomocą narzędzia Fiddler (o tym narzędziu już wspominaliśmy wcześniej).
Uruchamiamy Fiddler, w przeglądarce otwieramy stronę docelową. W lewym oknie znajduje się linia dostępu do strony. Po prawej stronie przejdź do zakładki Inspektorzy. String Nagłówek autoryzacji (negocjacja) wydaje się zawierać bilet Kerberos, mówi, że do autoryzacji na stronie IIS wykorzystano protokół Kerberos.