Udostępnij przez


Uwierzytelnianie bez ograniczeń protokołu Kerberos przy użyciu przeglądarki Microsoft Edge (Chromium)

Dotyczy: Internet Information Services

Wprowadzenie

Konfigurowanie uwierzytelniania systemu Windows na podstawie protokołu uwierzytelniania Kerberos może być złożonym przedsięwzięciem, szczególnie w przypadku scenariuszy, takich jak delegowanie tożsamości z lokacji frontonu do usługi zaplecza w kontekście usług IIS i ASP.NET. Wykonaj kroki opisane w tym artykule, aby skonfigurować delegowanie biletów uwierzytelniania i korzystać z usług z nowoczesną przeglądarką, taką jak Microsoft Edge w wersji 87 lub nowszej.

W tym artykule założono, że konfigurujesz architekturę podobną do architektury przedstawionej na poniższym diagramie:

Diagram przedstawiający architekturę uwierzytelniania systemu Windows na podstawie protokołu uwierzytelniania Kerberos.

  • Komputer Workstation-Client1 jest częścią tego samego katalogu active directory co podstawowy serwer sieci Web o nazwie Primary-IIS-SRV i serwer sieci Web zaplecza o nazwie Backend-Web-SRV.
  • Użytkownicy komputera Workstation-Client1 będą logować się na maszynie przy użyciu konta usługi Active Directory systemu Windows.
  • Następnie uruchomią przeglądarkę (Microsoft Edge), przejdź do witryny internetowej znajdującej się na serwerze sieci Web, która jest nazwą aliasu używaną dla primary-IIS-SRV i uwierzytelniają się za pośrednictwem zintegrowanego uwierzytelniania systemu Windows przy użyciu protokołu Kerberos.
  • Witryna internetowa znajdująca się na serwerze sieci Web będzie wykonywać wywołania HTTP przy użyciu poświadczeń uwierzytelnionego użytkownika do serwera API-Server (który jest aliasem dla backend-Web-SRV) w celu pobrania danych aplikacji w imieniu użytkowników przy użyciu delegowania poświadczeń Protokołu Kerberos.

Poniższe kroki pomogą Ci rozwiązać ten scenariusz: Konfiguracja działa z programem Internet Explorer, ale gdy użytkownicy przyjmują przeglądarkę Microsoft Edge, nie mogą już korzystać z funkcji delegowania poświadczeń. Aby użyć delegowania poświadczeń Protokołu Kerberos, zapoznaj się z artykułem Rozwiązywanie problemów z błędami protokołu Kerberos w programie Internet Explorer .

Ograniczone lub ograniczone delegowanie

W powyższym scenariuszu obie konfiguracje umożliwiają użytkownikom delegowanie poświadczeń z sesji użytkownika na komputerze Workstation-Client1 do serwera interfejsu API zaplecza podczas nawiązywania połączenia za pośrednictwem serwera frontonu sieci Web.

W konfiguracji nieograniczonego delegowania protokołu Kerberos tożsamość puli aplikacji jest uruchamiana na serwerze sieci Web i jest skonfigurowana w usłudze Active Directory jako zaufana do delegowania do dowolnej usługi. Konto puli aplikacji uruchomione na serwerze sieci Web może delegować poświadczenia uwierzytelnionych użytkowników witryny internetowej hostowanej na tym serwerze do dowolnej innej usługi w usłudze Active Directory. Na przykład serwer SMTP, serwer plików, serwer bazy danych, inny serwer sieci Web itp. Jest to nazywane delegowaniem bez ograniczeń, ponieważ konto puli aplikacji ma uprawnienie (nie jest ograniczone) do delegowania poświadczeń do dowolnej usługi, z jaką kontaktuje się.

W konfiguracji ograniczonego delegowania konto usługi Active Directory używane jako tożsamość puli aplikacji może delegować poświadczenia uwierzytelnionych użytkowników tylko do listy usług, które zostały autoryzowane do delegowania. Jeśli aplikacja internetowa znajduje się na serwerze o nazwie Web-Server musi również skontaktować się z bazą danych i uwierzytelnić się w imieniu użytkownika, ta główna nazwa usługi (SPN) musi zostać dodana do listy autoryzowanych usług.

Ograniczone delegowanie jest bezpieczniejsze niż ograniczone delegowanie na podstawie zasady najniższych uprawnień. Aplikacja ma przyznane prawa, których potrzebuje do działania i nic więcej, natomiast delegowanie bez ograniczeń umożliwia aplikacji kontaktowanie się z zasobami, z których nie powinna się kontaktować w imieniu użytkownika.

Jak sprawdzić, czy bilet Protokołu Kerberos uzyskany na kliencie do wysłania do serwera sieci Web używa ograniczonego lub ograniczonego delegowania?

Użyj narzędzia klist polecenia w systemie Windows, aby wyświetlić listę pamięci podręcznej biletów Protokołu Kerberos z maszyny klienckiej (Workstation-Client1 na powyższym diagramie). Poszukaj biletu o nazwie HTTP/<Name of Web-Server>. Uwaga: <nazwa serwera sieci> Web to nazwa SPN usługi, z którą chcesz się skontaktować i uwierzytelnić za pośrednictwem protokołu Kerberos. Bilet zawiera również kilka flag. Dwa z nich są interesujące: forwardable i ok_as_delegate.

  • Pierwsza flaga , wskazuje, forwardableże centrum dystrybucji kluczy (centrum dystrybucji kluczy) może w razie potrzeby wydać nowy bilet z nową maską sieciową. Dzięki temu użytkownik może zalogować się do systemu zdalnego i uzyskać nowy bilet w imieniu użytkownika w celu zalogowania się do innego systemu zaplecza tak, jakby użytkownik zalogował się do systemu zdalnego lokalnie.

  • Druga flaga wskazuje, ok_as_delegate że konto usługi, do której użytkownik próbuje się uwierzytelnić (w przypadku powyższego diagramu konto puli aplikacji usług IIS hostujących aplikację internetową) jest zaufane w przypadku delegowania bez ograniczeń.

Jeśli te usługi używają nieograniczonego delegowania, bilety na maszynie klienckiej zawierają ok_as_delegate flagi i .forwardable W większości przypadków po skonfigurowaniu ograniczonego delegowania bilety nie zawierają ok_as_delegate flagi, ale zawierają flagę forwardable .

Dlaczego delegowanie bez ograniczeń działa w programie Internet Explorer, a nie w przeglądarce Microsoft Edge?

Podczas próby uwierzytelnienia w witrynie internetowej przy użyciu uwierzytelniania opartego na protokole Kerberos przeglądarka wywołuje interfejs API systemu Windows w celu skonfigurowania kontekstu uwierzytelniania. Interfejs API, o których mowa, to InitializeSecurityContext. Ten interfejs API może otrzymać serię flag wskazujących, czy przeglądarka zezwala na delegatable otrzymanie biletu. Bilet jest oznaczony jako delegatable , ponieważ usługa, do której użytkownik próbuje się uwierzytelnić, ma prawo delegować poświadczenia w sposób nieograniczony. Nie oznacza to jednak, że aplikacja próbująca się uwierzytelnić (w tym przypadku przeglądarka) powinna używać tej pojemności.

Domyślnie program Internet Explorer przekazuje flagę do InitializeSecurityContext, co oznacza, że jeśli bilet może być delegowany, powinien to być. Przeglądarka Microsoft Edge w wersji 87 lub nowszej nie przekazuje flagi tylko do InitializeSecurityContext tego, ponieważ bilet jest oznaczony flagą ok_as_delegate . Nie zalecamy używania nieograniczonego delegowania w aplikacjach, ponieważ zapewnia aplikacjom więcej uprawnień niż jest to wymagane. Aplikacje mogą delegować tożsamość użytkownika do dowolnej innej usługi w domenie i uwierzytelniać się jako użytkownik, co nie jest konieczne w przypadku większości aplikacji przy użyciu delegowania poświadczeń. Aplikacje powinny kontaktować się tylko z usługami na liście określonymi podczas konfigurowania ograniczonego delegowania.

Domyślnie przeglądarka Microsoft Edge współpracuje z ograniczonym delegowaniem, gdzie witryna internetowa usług IIS uruchomiona na serwerze sieci Web ma prawo skontaktować się z witryną interfejsu API zaplecza hostowaną na serwerze API-Server, jak pokazano w konfiguracji konta tożsamości puli aplikacji z usługi Active Directory wymienionej poniżej:

Zrzut ekranu przedstawiający konfigurację konta tożsamości puli aplikacji.

Włączanie funkcji Edge-Chromium do pracy z nieprzeciętnym delegowaniem w usłudze Active Directory

Ze względu na zgodność, jeśli musisz zachować aplikację przy użyciu delegowania bez ograniczeń za pośrednictwem protokołu Kerberos, włącz przeglądarkę Microsoft Edge, aby zezwolić na delegowanie biletów. Poniższe kroki zostały szczegółowo opisane w poniższych sekcjach tego artykułu:

  1. Zainstaluj szablony administracyjne dla centralnego magazynu zasad grupy w usłudze Active Directory (jeśli jeszcze nie istnieje).
  2. Zainstaluj szablony administracyjne przeglądarki Microsoft Edge.
  3. Utwórz nowy obiekt zasad grupy.
  4. Edytuj konfigurację zasad grupy, aby umożliwić delegowanie bez ograniczeń podczas uwierzytelniania na serwerach.
  5. (Opcjonalnie) Sprawdź, czy przeglądarka Microsoft Edge używa prawidłowych flag delegowania.

Krok 1. Instalowanie szablonów administracyjnych dla usługi Active Directory

  1. Pobierz szablony z szablonów administracyjnych (admx) (dla systemu Windows Server 2019).

  2. Pobierz instalatora i wyodrębnij zawartość do wybranego folderu. Można po prostu wyodrębnić go do domyślnej określonej lokalizacji pakietu, czyli C:\Program Files (x86)\Microsoft Group Policy\Aktualizacja systemu Windows 10 z października 2018 (1809) v2\PolicyDefinitions.

  3. Gdy pakiet zostanie rozpakowany, znajdź folder Sysvol na kontrolerze domeny. Ścieżka do folderu to C:\Windows\SYSVOL\sysvol\. Wewnątrz folderu Sysvol znajduje się folder o takiej samej nazwie jak nazwa usługi Active Directory (w przykładzie tutaj Oddessy.local). W tym miejscu przejdź do folderu Zasady . Jeśli nie istnieje, utwórz folder o nazwie Definicje zasad, jak pokazano poniżej:

    Zrzut ekranu przedstawiający folder definicji zasad w folderze Zasady.

  4. Skopiuj zawartość folderu PolicyDefinitions (który został wyodrębniony z instalatora do folderu PolicyDefinitions ), który został utworzony w domenie w folderze sysvol na kontrolerze domeny.

    Uwaga 16.

    Pliki wyodrębnione przez instalatora również zawierają zlokalizowaną zawartość. Aby zaoszczędzić miejsce, przenieś zlokalizowane pliki tylko dla żądanych języków. Na przykład folder o nazwie fr-FR zawiera całą zlokalizowaną zawartość w języku francuskim.

  5. Po zakończeniu transferu sprawdź, czy szablony są dostępne w usłudze Active Directory. Aby to zrobić, otwórz przystawkę Zarządzanie zasadami grupy programu Microsoft Management Console (naciśnij Windows+R, a następnie wpisz gpmc.msc , aby uruchomić). W obszarze Zarządzanie zasadami grupy znajdź obiekt zasad grupy i edytuj go.

    Zrzut ekranu przedstawiający obiekt zasad grupy w Edytorze zarządzania zasadami grupy.

    Jak pokazano na powyższym zrzucie ekranu, w węźle Konfiguracja komputera węzeł Zasady i szablony administracyjne.

Krok 2. Instalowanie szablonów administracyjnych przeglądarki Microsoft Edge

Chociaż na kontrolerze domeny mogą być dostępne szablony administracyjne zasad, nadal trzeba będzie zainstalować pliki zasad przeglądarki Microsoft Edge, aby mieć dostęp do zasad przeznaczonych do włączania delegowania bez ograniczeń dwukrotnego przeskoku za pośrednictwem tej przeglądarki. Aby zainstalować pliki zasad przeglądarki Microsoft Edge, wykonaj następujące kroki:

  1. Przejdź do witryny pobierania przeglądarki Microsoft Edge dla firm.

  2. Wybierz wersję, którą chcesz pobrać z listy rozwijanej kanału/wersji . Zalecana jest najnowsza stabilna wersja.

  3. Wybierz odpowiednią kompilację z listy rozwijanej kompilacji , a na koniec docelowy system operacyjny z listy rozwijanej platformy . Po wybraniu opcji zostaną wyświetlone jeszcze dwa przyciski (przycisk i link).

    Zrzut ekranu przedstawiający pobieranie i wdrażanie przeglądarki Microsoft Edge dla firm.

  4. Kliknij pozycję POBIERZ PLIKI ZASAD i zaakceptuj umowę licencyjną, aby pobrać plik o nazwie MicrosoftEdgePolicyTemplates.cab. Ten plik zawiera pliki definicji zasad dla przeglądarki Microsoft Edge.

  5. Kliknij dwukrotnie plik, aby eksplorować zawartość (archiwum zip o tej samej nazwie).

  6. Wyodrębnij zawartość archiwum zip do folderu na dysku lokalnym. Wyodrębniona zawartość będzie zawierać folder o nazwie Windows , w którym znajdziesz podfolder o nazwie Admx. Będzie to zawierać szablony administracyjne, a także ich zlokalizowane wersje (należy ich potrzebować w języku innym niż angielski).

    Zrzut ekranu przedstawiający folder admx.

  7. Przenieś pliki admx wewnątrz tego samego folderu w katalogu Sysvol, do którego zostały przeniesione szablony administracyjne z poprzedniej wersji (w powyższym przykładzie: C:\Windows\SYSVOL\sysvol\odessy.local\Policies\PolicyDefinitions).

  8. Otwórz Edytor zasad grupy usługi Active Directory i wybierz istniejący obiekt zasad grupy do edycji, aby sprawdzić obecność nowo przeniesionych szablonów przeglądarki Microsoft Edge. Będą one znajdować się w folderze o nazwie Microsoft Edge znajdującym się pod folderem Szablony administracyjne w widoku drzewa:

    Zrzut ekranu przedstawiający element przeglądarki Microsoft Edge w Edytorze zarządzania zasadami grupy.

Krok 3. Tworzenie nowego obiektu zasad grupy

Poniżej przedstawiono sposób tworzenia nowego obiektu zasad grupy przy użyciu przystawki MMC Menedżera zasad grupy usługi Active Directory:

  1. Naciśnij Windows+R, aby otworzyć menu Uruchom na kontrolerze domeny.
  2. Wpisz Gpmc.msc , aby otworzyć konsolę zarządzania firmy Microsoft i załadować przystawkę Menedżera zasad grupy usługi Active Directory.
  3. Znajdź węzeł Obiekty zasad grupy w widoku drzewa konsoli i kliknij prawym przyciskiem myszy węzeł, aby otworzyć menu kontekstowe.
  4. Wybierz element menu Nowy, wypełnij nazwę zasad grupy, które chcesz utworzyć, a następnie kliknij przycisk OK.

Zrzut ekranu przedstawiający nowy element menu w Edytorze zarządzania zasadami grupy.

Krok 4. Edytowanie konfiguracji zasad grupy w celu umożliwienia nieograniczonego delegowania podczas uwierzytelniania na serwerach

Ostatnim krokiem jest włączenie zasad, które umożliwiają przeglądarce Microsoft Edge przekazywanie ok_as_delegate flagi do InitializeSecurityContext wywołania interfejsu API podczas przeprowadzania uwierzytelniania przy użyciu protokołu Kerberos w zintegrowanej witrynie internetowej systemu Windows. Jeśli nie wiesz, czy przeglądarka Microsoft Edge używa protokołu Kerberos do uwierzytelniania (a nie NTLM), zobacz Rozwiązywanie problemów z błędami protokołu Kerberos w programie Internet Explorer.

W Edytorze zasad grupy usługi Active Directory wybierz obiekt zasad grupy, który zostanie zastosowany do komputerów w usłudze Active Directory, z których zamierzasz zezwolić użytkownikom końcowym na uwierzytelnianie za pośrednictwem uwierzytelniania Kerberos i mieć ich poświadczenia delegowane do usług zaplecza za pośrednictwem nieograniczonego delegowania. Zasady, które umożliwią delegowanie bez ograniczeń z przeglądarki Microsoft Edge, znajdują się w folderze uwierzytelniania Http szablonów przeglądarki Microsoft Edge, jak pokazano poniżej:

Zrzut ekranu przedstawiający folder uwierzytelniania H T T P w Edytorze zarządzania zasadami grupy.

To ustawienie służy do konfigurowania listy serwerów, dla których delegowanie biletów Protokołu Kerberos jest dozwolone.

Uwaga 16.

Należy podać listę serwerów. W przykładzie użytym na początku tego artykułu należy dodać nazwę serwera Web-Server do listy, aby umożliwić aplikacji internetowej frontonu web-server delegowanie poświadczeń do zaplecza API-Server.

Zrzut ekranu przedstawiający listę serwerów.

Po zastosowaniu nowo edytowanego obiektu zasad grupy do komputerów klienckich w domenie przejdź do strony uwierzytelniania testowego na stronach diagnostycznych dotyczących zintegrowanego uwierzytelniania systemu Windows i pobierz stronę whoami.aspx z repozytorium ASP.net Samples w witrynie GitHub. Spowoduje to uzyskanie ustawienia PersonationLevel delegata zamiast personifikacji sygnalizowania, że delegowanie poświadczeń jest teraz dozwolone.

Zrzut ekranu przedstawiający stronę ustawienia PersonifikacjaLevel.

Aby sprawdzić, czy zasady zostały prawidłowo zastosowane na stacji roboczej klienta, otwórz nową kartę przeglądarki Microsoft Edge i wpisz edge://policy.

Zrzut ekranu przedstawiający stronę edge://policy.

Zasady AuthNegotiateDelegateAllowlist powinny być ustawione tak, aby wskazywały wartości nazw serwerów, dla których przeglądarka Microsoft Edge może wykonywać delegowanie biletów Protokołu Kerberos. Jeśli zasady nie są wyświetlane na liście, nie zostały wdrożone lub zostały wdrożone na nieprawidłowych komputerach.

Krok 5 (opcjonalnie): Sprawdź, czy przeglądarka Microsoft Edge używa prawidłowych flag delegowania

Oto krok rozwiązywania problemów/opcjonalnego sprawdzania.

Po skonfigurowaniu i wdrożeniu zasad należy wykonać następujące kroki, aby sprawdzić, czy przeglądarka Microsoft Edge przekazuje prawidłowe flagi delegowania do IntializeSecurityContextprogramu . Kroki korzystają z narzędzi, które są już wbudowane w przeglądarkę Microsoft Edge lub które są dostępne jako Usługi online.

  1. Użyj funkcji rejestrowania dostępnej w przeglądarce Microsoft Edge, aby zarejestrować działanie przeglądarki podczas żądania witryny internetowej. W celu włączenia rejestrowania:

    1. Otwórz nowe okno przeglądarki Microsoft Edge i wpisz edge://net-export/.

    2. Użyj opcji Uwzględnij pliki cookie i poświadczenia podczas śledzenia. Bez tej opcji dane poziomu śledzenia uwierzytelniania zostaną pominięte.

      Zrzut ekranu przedstawiający stronę edge://net-export/.

    3. Kliknij przycisk Rozpocznij rejestrowanie na dysku i podaj nazwę pliku, w którym chcesz zapisać ślad.

    4. Otwórz inną kartę przeglądarki Microsoft Edge, przejdź do witryny internetowej, w której chcesz przeprowadzić zintegrowane uwierzytelnianie systemu Windows przy użyciu przeglądarki Microsoft Edge.

    5. Po próbie uwierzytelnienia wróć do poprzedniej karty, na której włączono śledzenie, i kliknij przycisk Zatrzymaj rejestrowanie . Interfejs śledzenia wskaże, gdzie plik zawierający ślad został zapisany.

  2. Użyj pliku JSON zawierającego ślad, aby zobaczyć, jakie parametry przeglądarka przekazała do InitializeSecurityContext funkcji podczas próby uwierzytelnienia. Aby przeanalizować ślad, użyj netlog_viewer.

  3. Wewnątrz analizowanego śledzenia znajduje się dziennik zdarzeń podobny do następującego:

    t=3076 [st=12]       +AUTH_LIBRARY_INIT_SEC_CTX  [dt=3]
                          --> flags = {"delegated":false,"mutual":false,"value":"0x00000000"}
                          --> spn = "HTTP/web-server.odessy.local"
    

    Ten dziennik pokazuje, że:

    • AUTH_LIBRARY_INIT_SEC_CTX oznacza, że przeglądarka wywołuje InitializeSecurityContext funkcję .
    • "delegated":false oznacza, że bilet nie powinien być delegowany, nawet jeśli bilet jest oznaczony jako delegatable.
    • "mutual":false oznacza, że klient (przeglądarka) nie wymaga, aby serwer również uwierzytelnił się na kliencie i udowodnił swoją tożsamość. Tylko klient powinien uwierzytelnić się na serwerze, aby potwierdzić swoją tożsamość.
    • HTTP/web-server.odessy.local jest nazwą SPN używaną przez przeglądarkę podczas wykonywania wywołania uwierzytelniania.

Więcej informacji

Strony diagnostyczne dotyczące rozwiązywania problemów ze zintegrowanym uwierzytelnianiem systemu Windows