Ograniczone delegowanie protokołu Kerberos na potrzeby logowania jednokrotnego do aplikacji przy użyciu serwera proxy aplikacji
Możesz udostępnić logowanie jednokrotne dla aplikacji lokalnych opublikowanych za pośrednictwem serwera proxy aplikacji zabezpieczonego zintegrowanym uwierzytelnianiem systemu Windows. Te aplikacje wymagają biletu protokołu Kerberos w celu uzyskania dostępu. Serwer proxy aplikacji używa ograniczonego delegowania Protokołu Kerberos (KCD) do obsługi tych aplikacji.
Aby dowiedzieć się więcej na temat logowania jednokrotnego,zobacz Co to jest logowanie jednokrotne?.
Możesz włączyć logowanie jednokrotne do aplikacji przy użyciu zintegrowanego uwierzytelniania systemu Windows (IWA), udzielając uprawnień łączników sieci prywatnej w usłudze Active Directory do personifikacji użytkowników. Łączniki używają tego uprawnienia do wysyłania i odbierania tokenów w ich imieniu.
Jak działa logowanie jednokrotne przy użyciu usługi KCD
Na tym diagramie wyjaśniono przepływ, gdy użytkownik próbuje uzyskać dostęp do aplikacji lokalnej korzystającej z IWA.
- Użytkownik wprowadza adres URL w celu uzyskania dostępu do aplikacji lokalnej za pośrednictwem serwera proxy aplikacji.
- Serwer proxy aplikacji przekierowuje żądanie do usług uwierzytelniania entra firmy Microsoft w celu wstępnego uwierzytelniania. W tym momencie identyfikator entra firmy Microsoft stosuje wszelkie odpowiednie zasady uwierzytelniania i autoryzacji, takie jak uwierzytelnianie wieloskładnikowe. Jeśli użytkownik zostanie zweryfikowany, identyfikator entra firmy Microsoft tworzy token i wysyła go do użytkownika.
- Użytkownik przekazuje token do serwera proxy aplikacji.
- Serwer proxy aplikacji weryfikuje token i pobiera z niego główną nazwę użytkownika (UPN), a następnie łącznik pobiera nazwę UPN oraz nazwę główną usługi (SPN) za pośrednictwem dwóch uwierzytelnionych bezpiecznych kanałów.
- Łącznik przeprowadza negocjację ograniczonego delegowania Kerberos (KCD) z lokalną usługą AD, personifikując użytkownika w celu uzyskania tokenu protokołu Kerberos do aplikacji.
- Usługa Active Directory wysyła token protokołu Kerberos dla aplikacji do łącznika.
- Łącznik wysyła oryginalne żądanie do serwera aplikacji przy użyciu tokenu protokołu Kerberos otrzymanego z usługi AD.
- Aplikacja wysyła odpowiedź do łącznika, który jest następnie zwracany do usługi serwera proxy aplikacji, a na koniec do użytkownika.
Wymagania wstępne
Przed rozpoczęciem logowania jednokrotnego dla aplikacji IWA upewnij się, że środowisko jest gotowe z następującymi ustawieniami i konfiguracjami:
- Aplikacje, takie jak aplikacje sieci Web programu SharePoint, mają używać zintegrowanego uwierzytelniania systemu Windows. Aby uzyskać więcej informacji, zobacz Włączanie obsługi uwierzytelniania Kerberos lub dla programu SharePoint zobacz Planowanie uwierzytelniania Kerberos w programie SharePoint 2013.
- Wszystkie aplikacje mają główne nazwy usługi.
- Serwer z uruchomionym łącznikiem i serwerem z uruchomioną aplikacją są przyłączone do domeny i częścią tej samej domeny lub domen zaufania. Aby uzyskać więcej informacji na temat przyłączania do domeny, zobacz Dołączanie komputera do domeny.
- Serwer z uruchomionym łącznikiem ma dostęp do odczytu atrybutu TokenGroupsGlobalAndUniversal dla użytkowników. To ustawienie domyślne mogło mieć wpływ na bezpieczeństwo środowiska. Dodanie serwerów łącznika do grupy "Grupa dostępu autoryzacji systemu Windows" zwykle to zrobi.
Konfigurowanie usługi Active Directory
Konfiguracja usługi Active Directory różni się w zależności od tego, czy łącznik sieci prywatnej i serwer aplikacji znajdują się w tej samej domenie, czy nie.
Łącznik i serwer aplikacji w tej samej domenie
W usłudze Active Directory przejdź do pozycji Narzędzia>Użytkownicy i komputery.
Wybierz serwer z uruchomionym łącznikiem.
Kliknij prawym przyciskiem myszy i wybierz polecenie Delegowanie właściwości>.
Wybierz pozycję Ufaj temu komputerowi dla delegowania tylko do określonych usług.
Wybierz pozycję Użyj dowolnego protokołu uwierzytelniania.
W obszarze Usługi, do których to konto może prezentować delegowane poświadczenia , dodaj wartość tożsamości SPN serwera aplikacji. Dzięki temu łącznik sieci prywatnej może personifikować użytkowników w usłudze AD względem aplikacji zdefiniowanych na liście.
Łącznik i serwer aplikacji w tej różnych domenach
Aby uzyskać listę wymagań wstępnych dotyczących pracy z KCD w różnych domenach, zobacz Ograniczone delegowanie protokołu Kerberos między domenami.
principalsallowedtodelegateto
Użyj właściwości konta usługi (komputera lub dedykowanego konta użytkownika domeny) aplikacji internetowej, aby włączyć delegowanie uwierzytelniania Kerberos z serwera proxy aplikacji (łącznik). Serwer aplikacji jest uruchomiony w kontekście programuwebserviceaccount
, a serwer delegowania toconnectorcomputeraccount
. Uruchom poniższe polecenia na kontrolerze domeny (z systemem Windows Server 2012 R2 lub nowszym) w domenie .webserviceaccount
Użyj nazw płaskich (innych niż nazwa UPN) dla obu kont.webserviceaccount
Jeśli jest to konto komputera, użyj następujących poleceń:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADComputer -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADComputer webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
webserviceaccount
Jeśli jest to konto użytkownika, użyj następujących poleceń:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADUser -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADUser webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
Konfigurowanie logowania jednokrotnego
Opublikuj aplikację zgodnie z instrukcjami opisanymi w temacie Publikowanie aplikacji za pomocą serwera proxy aplikacji. Pamiętaj, aby wybrać pozycję Microsoft Entra ID jako metodę wstępnego uwierzytelniania.
Po wyświetleniu aplikacji na liście aplikacji dla przedsiębiorstw wybierz ją i kliknij pozycję Logowanie jednokrotne.
Ustaw tryb logowania jednokrotnego na zintegrowane uwierzytelnianie systemu Windows.
Wprowadź nazwę SPN aplikacji wewnętrznej serwera aplikacji. W tym przykładzie nazwa SPN dla opublikowanej aplikacji to
http/www.contoso.com
. Ta nazwa SPN musi znajdować się na liście usług, do których łącznik może prezentować delegowane poświadczenia.Wybierz tożsamość logowania delegowanego dla łącznika, który ma być używany w imieniu użytkowników. Aby uzyskać więcej informacji, zobacz Praca z różnymi tożsamościami lokalnymi i w chmurze.
Logowanie jednokrotne dla aplikacji innych niż Windows
Przepływ delegowania Protokołu Kerberos na serwerze proxy aplikacji Entra firmy Microsoft jest uruchamiany, gdy firma Microsoft Entra uwierzytelnia użytkownika w chmurze. Po nadejściu żądania lokalnie łącznik sieci prywatnej firmy Microsoft Entra wystawia bilet protokołu Kerberos w imieniu użytkownika, wchodząc w interakcję z lokalną usługą Active Directory. Ten proces jest określany jako ograniczone delegowanie protokołu Kerberos (KCD).
W następnej fazie żądanie jest wysyłane do aplikacji zaplecza przy użyciu tego biletu protokołu Kerberos.
Istnieje kilka mechanizmów definiujących sposób wysyłania biletu Protokołu Kerberos w takich żądaniach. Większość serwerów innych niż Windows oczekuje, że otrzyma go w postaci tokenu SPNEGO. Ten mechanizm jest obsługiwany na serwerze proxy aplikacji Firmy Microsoft Entra, ale jest domyślnie wyłączony. Łącznik można skonfigurować dla standardowego tokenu Kerberos lub SPNEGO, ale nie obu tych elementów.
Jeśli skonfigurujesz maszynę łącznika dla usługi SPNEGO, upewnij się, że wszystkie inne łączniki w tej grupie łączników są również skonfigurowane z dodatkiem SPNEGO. Aplikacje oczekujące standardowego tokenu Kerberos powinny być kierowane przez inne łączniki, które nie są skonfigurowane dla spNEGO. Niektóre aplikacje internetowe akceptują oba formaty bez konieczności zmiany konfiguracji.
Aby włączyć usługę SPNEGO:
Otwórz wiersz polecenia, który jest uruchamiany jako administrator.
W wierszu polecenia uruchom następujące polecenia na serwerach łączników, które wymagają SPNEGO.
REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft Entra private network connector" /v UseSpnegoAuthentication /t REG_DWORD /d 1 net stop WAPCSvc & net start WAPCSvc
Aplikacje spoza systemu Windows zazwyczaj nazwy użytkowników lub nazwy kont SAM zamiast adresów e-mail domeny. Jeśli taka sytuacja ma zastosowanie do aplikacji, musisz skonfigurować pole tożsamości logowania delegowanego w celu połączenia tożsamości w chmurze z tożsamościami aplikacji.
Praca z różnymi tożsamościami lokalnymi i w chmurze
Serwer proxy aplikacji zakłada, że użytkownicy mają dokładnie taką samą tożsamość w chmurze i lokalnie. Jednak w niektórych środowiskach ze względu na zasady firmowe lub zależności aplikacji organizacje mogą potrzebować alternatywnych identyfikatorów logowania. W takich przypadkach nadal można używać usługi KCD na potrzeby logowania jednokrotnego. Skonfiguruj tożsamość logowania delegowanego dla każdej aplikacji, aby określić, która tożsamość ma być używana podczas logowania jednokrotnego.
Ta funkcja umożliwia wielu organizacjom z różnymi tożsamościami lokalnymi i w chmurze logowanie jednokrotne z chmury do aplikacji lokalnych bez konieczności wprowadzania różnych nazw użytkowników i haseł. Obejmuje to organizacje, które:
- Mają wiele domen wewnętrznie (joe@us.contoso.com, joe@eu.contoso.com) i jedną domenę w chmurze (joe@contoso.com).
- Nazwa domeny bez routingu jest wewnętrznie (joe@contoso.usa) i legalna w chmurze.
- Nie używaj nazw domen wewnętrznie (joe)
- Użyj różnych aliasów w środowisku lokalnym i w chmurze. Na przykład vs joe-johns@contoso.com . joej@contoso.com
Za pomocą serwera proxy aplikacji możesz wybrać tożsamość, która ma być używana do uzyskania biletu protokołu Kerberos. To ustawienie dotyczy aplikacji. Niektóre z tych opcji są odpowiednie dla systemów, które nie akceptują formatu adresu e-mail, inne są przeznaczone do alternatywnego logowania.
Jeśli jest używana tożsamość logowania delegowanego, wartość może nie być unikatowa we wszystkich domenach lub lasach w organizacji. Ten problem można uniknąć, publikując te aplikacje dwa razy przy użyciu dwóch różnych grup łączników. Ponieważ każda aplikacja ma inną grupę odbiorców użytkowników, możesz dołączyć łączniki do innej domeny.
Jeśli lokalna nazwa konta SAM jest używana dla tożsamości logowania, komputer hostjący łącznik musi zostać dodany do domeny, w której znajduje się konto użytkownika.
Konfigurowanie logowania jednokrotnego dla różnych tożsamości
Skonfiguruj ustawienia programu Microsoft Entra Connect, aby główna tożsamość to adres e-mail (poczta). Jest to wykonywane w ramach procesu dostosowywania, zmieniając pole Główna nazwa użytkownika w ustawieniach synchronizacji. Te ustawienia określają również sposób logowania użytkowników do platformy Microsoft 365, komputerów z systemem Windows i innych aplikacji korzystających z identyfikatora Entra firmy Microsoft jako magazynu tożsamości.
W ustawieniach konfiguracji aplikacji dla aplikacji, którą chcesz zmodyfikować, wybierz tożsamość logowania delegowanego, która ma być używana:
- Główna nazwa użytkownika (na przykład
joe@contoso.com
) - Alternatywna główna nazwa użytkownika (na przykład
joed@contoso.local
) - Część nazwy użytkownika głównej nazwy użytkownika (na przykład
joe
) - Część nazwy użytkownika alternatywnej głównej nazwy użytkownika (na przykład
joed
) - Lokalna nazwa konta SAM (zależy od konfiguracji kontrolera domeny)
- Główna nazwa użytkownika (na przykład
Rozwiązywanie problemów z logowaniem jednokrotnym dla różnych tożsamości
Jeśli w procesie logowania jednokrotnego wystąpi błąd, zostanie on wyświetlony w dzienniku zdarzeń maszyny łącznika zgodnie z opisem w temacie Rozwiązywanie problemów. Jednak w niektórych przypadkach żądanie jest pomyślnie wysyłane do aplikacji zaplecza, podczas gdy ta aplikacja odpowiada w różnych innych odpowiedziach HTTP. Rozwiązywanie tych problemów powinno rozpocząć się od zbadania numeru zdarzenia 24029 na maszynie łącznika w dzienniku zdarzeń sesji serwera proxy aplikacji. Tożsamość użytkownika, która została użyta do delegowania, jest wyświetlana w polu "użytkownik" w szczegółach zdarzenia. Aby włączyć dziennik sesji, wybierz pozycję Pokaż dzienniki analityczne i debugowania w menu widoku podglądu zdarzeń.