[10] Serwer Web (IIS) – Autentykacja Windows

2 sierpnia 2024 Wyłączono przez Adam [zicherka] Nogły

Ustawmy teraz uwierzytelnianie za pomocą systemu Windows na folder, aby wymagać uwierzytelniania użytkowników chcących uzyskać do niego dostępu.

W przypadku innej opcji niż uwierzytelnianie podstawowe, podczas uwierzytelniania podstawowego zawsze wyświetlany jest formularz uwierzytelniania użytkownika, który wymaga wprowadzenia informacji o użytkowniku w celu ręcznego uwierzytelnienia. Jednak w przypadku uwierzytelniania systemu Windows, jeśli komputer kliencki jest systemem operacyjnym Windows i klient uzyskuje dostęp do folderu uwierzytelniania systemu Windows, informacje o bieżącym logowaniu użytkownika są automatycznie wysyłane do serwera IIS przez przeglądarkę internetową i wraz z nim uruchamiany jest proces uwierzytelniania.

W związku z tym, jeśli host usług IIS i host systemu Windows klienta znajdują się w tej samej domenie Windows AD, podczas uzyskiwania dostępu do folderu uwierzytelniania systemu Windows z klienta systemu Windows formularz uwierzytelniania nie jest wyświetlany i można uzyskać dostęp do zawartości folderu bez wprowadzania informacji o użytkowniku, ponieważ proces uwierzytelniania przebiega automatycznie przez przeglądarkę internetową.

Co więcej, nawet jeśli komputer kliencki z systemem Windows znajduje się poza domeną AD, istnieje możliwość uzyskania dostępu bez ręcznego wprowadzania informacji uwierzytelniających użytkownika. Jeśli na hoście klienckim znajduje się użytkownik lokalny, który ma tę samą nazwę użytkownika i to samo hasło co użytkownik na hoście IIS, a także ustawi konfigurację w przeglądarce internetowej, aby witryna docelowa była dodawana jako witryna bezpieczna, proces uwierzytelniania zakończy się automatycznie.

Tylko w tych kilku powyższych przypadkach formularz uwierzytelniania nie jest wyświetlany, ale w innych przypadkach konieczne jest ręczne wprowadzenie informacji uwierzytelniających użytkownika, zachowanie jest takie samo w przypadku uwierzytelniania podstawowego z punktu widzenia użytkownika.

Uruchom PowerShell z uprawnieniami administratora. W tym przykładzie skonfiguruj ustawienia, które tworzą folder [auth_win] w witrynie [vwsr01.zicher.lab] i ustaw opcję uwierzytelnianie systemu Windows na ten folder.

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

# zainstaluj funkcję Windows Authentication
PS C:\Users\Administrator> Install-WindowsFeature Web-Windows-Auth
Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {Uwierzytelnianie systemu Windows}

# zrestartuj IIS
PS C:\Users\Administrator> Restart-Service W3SVC
WARNING: Waiting for service 'Usługa publikowania w sieci WWW (W3SVC)' to stop...

PS C:\Users\Administrator> Get-Website
Name             ID   State      Physical Path                  Bindings
----             --   -----      -------------                  --------
Default Web Site 1    Started    %SystemDrive%\inetpub\wwwroot  http *:80:
VWSR01.zicher.la 3    Started    C:\inetpub\newsite             http *:80:vwsr01.zicher.lab
b                                                               https *:443:vwsr01.zicher.lab sslFlags=0

# stwórz folder [auth_win]
PS C:\Users\Administrator> New-Item -ItemType Directory -Path "IIS:\Sites\vwsr01.zicher.lab\auth_win"
    Directory: WebAdministration::\\VWSR01\Sites\VWSR01.zicher.lab

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        04.01.2023     22:36                auth_win

# wyłącz anonimowy dostęp do folderu docelowego
PS C:\Users\Administrator> Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/anonymousAuthentication' -Location "vwsr01.zicher.lab/auth_win" -Name enabled -Value False

# włącz autentykację Windows dla folderu docelowego
PS C:\Users\Administrator> Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/windowsAuthentication' -Location "vwsr01.zicher.lab/auth_win" -Name enabled -Value True

# zrestartuj docelową witrynę
PS C:\Users\Administrator> Restart-WebItem -PSPath 'IIS:\Sites\vwsr01.zicher.lab'

# stwórz stronę testową
PS C:\Users\Administrator> Write-Output "Strona Testowa Windows Authentication" | Out-File C:\inetpub\newsite\auth_win\index.html -Encoding Default

# sprawdź dostęp
# opcja –u = NazwaUżytkownika
# opcja –k = akceptacja certyfikatu z autopodpisem
# wymaga uwierzytelnienia, z wyjątkiem określonych przypadków opisanych na początku tego rozdziału
PS C:\Users\Administrator> curl.exe -k --ntlm -u Administrator https://vwsr01.zicher.lab/auth_win/
Enter host password for user 'Administrator': # wpisz hasło
Strona Testowa Windows Authentication

Konfigurację uwierzytelniania systemu Windows można także przeprowadzić za pomocą Menadżera serwera.

Uruchom [Start] > [Menadżer serwera], a następnie kliknij [Dodaj role i funkcje].

Kliknij [Dalej].

Zaznacz [Instalacja oparta na rolach…] i kliknij [Dalej].

Wybierz serwer, na którym chcesz dokonać instalacji, a następnie kliknij [Dalej].

Zaznacz [Uwierzytelnianie systemu Windows], a następnie kliknij [Dalej].

Kliknij [Dalej].

Kliknij [Zainstaluj].

Po zakończeniu instalacji kliknij [Zamknij], aby zamknąć kreatora.

Po zakończeniu instalacji, zrestartuj IIS.

Utwórz folder, w którym chcesz ustawić uwierzytelnianie systemu Windows. W tym przykładzie utwórz folder [auth_win]. Dodaj również uprawnienia dostępu NTFS dla użytkowników lub grup, którym chcesz zezwolić na dostęp do folderu.

Uruchom [Start] > [Menedżer serwera] i kliknij [Narzędzia] > [Menedżer internetowych usług informacyjnych (IIS)], a następnie wybierz folder, w którym chcesz ustawić uwierzytelnianie systemu Windows, a następnie dwukrotnie kliknij [Uwierzytelnianie] na środkowym panelu.

Wyłącz [Uwierzytelnianie anonimowe] oraz włącz [Uwierzytelnianie systemu Windows].

Utwórz stronę testową w folderze, w którym ustawiłeś Uwierzytelnianie systemu Windows i zweryfikuj do niej dostęp.

Jeśli hostem klienta jest również system Windows, co w określonych przypadkach jest opisane na początku tej strony, poniższy formularz uwierzytelniania nie jest wyświetlany, ale w innych przypadkach wyświetlany jest następujący formularz uwierzytelniania, który wymaga wprowadzenia informacji uwierzytelniających użytkownika.

Jeśli uwierzytelnienie się powiedzie, strona testowa zostanie wyświetlona normalnie.