Udostępnij za pośrednictwem


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.

Diagram przepływu uwierzytelniania entra firmy Microsoft

  1. Użytkownik wprowadza adres URL w celu uzyskania dostępu do aplikacji lokalnej za pośrednictwem serwera proxy aplikacji.
  2. 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.
  3. Użytkownik przekazuje token do serwera proxy aplikacji.
  4. Serwer proxy aplikacji weryfikuje token i pobiera z niego główną nazwę użytkownika (UPN), a następnie Połączenie or ściąga nazwę UPN i nazwę główną usługi (SPN) za pośrednictwem dwu uwierzytelnionego bezpiecznego kanału.
  5. Łą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.
  6. Usługa Active Directory wysyła token protokołu Kerberos dla aplikacji do łącznika.
  7. Łącznik wysyła oryginalne żądanie do serwera aplikacji przy użyciu tokenu protokołu Kerberos otrzymanego z usługi AD.
  8. Aplikacja wysyła odpowiedź do Połączenie or, która następnie jest zwracana 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 Połączenie or i serwer 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 Połączenie or ma dostęp do odczytu atrybutu TokenGroupsGlobalAndUniversal dla użytkowników. To ustawienie domyślne mogło mieć wpływ na bezpieczeństwo środowiska.

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

  1. W usłudze Active Directory przejdź do pozycji Narzędzia>Użytkownicy i komputery.

  2. Wybierz serwer z uruchomionym łącznikiem.

  3. Kliknij prawym przyciskiem myszy i wybierz polecenie Delegowanie właściwości>.

  4. Wybierz pozycję Ufaj temu komputerowi dla delegowania tylko do określonych usług.

  5. Wybierz pozycję Użyj dowolnego protokołu uwierzytelniania.

  6. 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.

    Zrzut ekranu Połączenie or-SVR okno Właściwości

Łącznik i serwer aplikacji w tej różnych domenach

  1. Aby uzyskać listę wymagań wstępnych dotyczących pracy z KCD w różnych domenach, zobacz Ograniczone delegowanie protokołu Kerberos między domenami.

  2. 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 programu webserviceaccount , a serwer delegowania to connectorcomputeraccount. 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

  1. 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.

  2. Po wyświetleniu aplikacji na liście aplikacji dla przedsiębiorstw wybierz ją i kliknij pozycję Logowanie jednokrotne.

  3. Ustaw tryb logowania jednokrotnego na zintegrowane uwierzytelnianie systemu Windows.

  4. 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.

  5. 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.

    Zaawansowana konfiguracja aplikacji

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 spNEGO, upewnij się, że wszystkie inne łączniki w tej grupie Połączenie or 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:

  1. Otwórz wiersz polecenia, który jest uruchamiany jako administrator.

  2. 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.

Zrzut ekranu przedstawiający parametr tożsamości logowania delegowanego

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 Połączenie or. Ponieważ każda aplikacja ma inną grupę odbiorców użytkowników, możesz dołączyć jej Połączenie or 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

  1. Skonfiguruj ustawienia Połączenie firmy Microsoft, 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.
    Zrzut ekranu identyfikowania użytkowników — lista rozwijana Główna nazwa użytkownika

  2. 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)

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ń.

Następne kroki