Włączanie logowania bez hasła do zasobów lokalnych przy użyciu identyfikatora Entra firmy Microsoft

W tym temacie przedstawiono sposób włączania uwierzytelniania bez hasła do zasobów lokalnych dla środowisk z urządzeniami z systemem Windows 10 w wersji 2004 lub nowszej. Urządzenia mogą być dołączone do firmy Microsoft Entra lub dołączone hybrydowe do firmy Microsoft Entra. Ta funkcja uwierzytelniania bez hasła zapewnia bezproblemowe logowanie jednokrotne (SSO) do zasobów lokalnych w przypadku korzystania z kluczy zabezpieczeń zgodnych z firmą Microsoft lub zaufania Windows Hello dla firm Cloud.

Logowanie jednokrotne do zasobów lokalnych przy użyciu kluczy FIDO2

Identyfikator Entra firmy Microsoft może wystawiać bilety przyznawania biletów protokołu Kerberos dla co najmniej jednej domeny usługi Active Directory. Dzięki tej funkcji użytkownicy mogą logować się do systemu Windows przy użyciu nowoczesnych poświadczeń, takich jak klucze zabezpieczeń FIDO2, a następnie uzyskiwać dostęp do tradycyjnych zasobów opartych na usłudze Active Directory. Bilety i autoryzacja protokołu Kerberos są nadal kontrolowane przez kontrolery domeny lokalna usługa Active Directory.

Obiekt serwera Microsoft Entra Kerberos jest tworzony w wystąpieniu lokalna usługa Active Directory, a następnie bezpiecznie opublikowany w usłudze Microsoft Entra ID. Obiekt nie jest skojarzony z żadnymi serwerami fizycznymi. Jest to po prostu zasób, który może być używany przez identyfikator firmy Microsoft Entra do generowania TGT protokołu Kerberos dla domeny usługi Active Directory.

Diagram przedstawiający sposób pobierania biletu TGT z identyfikatora Entra firmy Microsoft i usług domena usługi Active Directory.

  1. Użytkownik loguje się do urządzenia z systemem Windows 10 przy użyciu klucza zabezpieczeń FIDO2 i uwierzytelnia się w usłudze Microsoft Entra ID.

  2. Microsoft Entra ID sprawdza katalog klucza serwera Kerberos, który jest zgodny z domeną lokalna usługa Active Directory użytkownika.

    Identyfikator entra firmy Microsoft generuje TGT protokołu Kerberos dla domeny lokalna usługa Active Directory użytkownika. TGT zawiera tylko identyfikator SID użytkownika i brak danych autoryzacji.

  3. Bilet TGT jest zwracany do klienta wraz z podstawowym tokenem odświeżania (PRT) użytkownika firmy Microsoft.

  4. Komputer kliencki kontaktuje się z kontrolerem domeny lokalna usługa Active Directory i wymienia częściową TGT dla w pełni sformułowanego biletu TGT.

  5. Maszyna kliencka ma teraz protokół PRT firmy Microsoft i pełny bilet TGT usługi Active Directory oraz może uzyskiwać dostęp do zasobów w chmurze i lokalnych.

Wymagania wstępne

Przed rozpoczęciem procedur opisanych w tym artykule organizacja musi wykonać instrukcje opisane w temacie Włączanie kluczy dostępu (FIDO2) dla organizacji.

Należy również spełnić następujące wymagania systemowe:

  • Urządzenia muszą mieć system Windows 10 w wersji 2004 lub nowszej.

  • Kontrolery domeny systemu Windows Server muszą działać w systemie Windows Server 2016 lub nowszym i mieć zainstalowane poprawki dla następujących serwerów:

  • AES256_HMAC_SHA1 należy włączyć, gdy zabezpieczenia sieciowe: konfigurowanie typów szyfrowania dozwolonych dla zasad Protokołu Kerberos jest konfigurowane na kontrolerach domeny.

  • Aby wykonać kroki w scenariuszu, należy poświadczeń:

    • Użytkownik usługi Active Directory, który jest członkiem grupy Administracja domen dla domeny i członka grupy Administracja Enterprise dla lasu. Określany jako $domainCred.
    • Użytkownik firmy Microsoft Entra, który jest członkiem roli Global Administracja istrators. Określany jako $cloudCred.
  • Użytkownicy muszą mieć następujące atrybuty identyfikatora Entra firmy Microsoft wypełnione za pośrednictwem Połączenie firmy Microsoft:

    • onPremisesSamAccountName (accountName in Entra Połączenie)
    • onPremisesDomainName (domainFQDN w Połączenie Entra)
    • onPremisesSecurityIdentifier (objectSID w Połączenie Entra)

    Entra Połączenie domyślnie synchronizuje te atrybuty. Jeśli zmienisz atrybuty do synchronizacji, wybierz pozycję accountName, domainFQDN i objectSID na potrzeby synchronizacji.

Obsługiwane scenariusze

Scenariusz w tym artykule obsługuje logowanie jednokrotne w obu następujących wystąpieniach:

  • Zasoby w chmurze, takie jak platforma Microsoft 365 i inne aplikacje obsługujące język SAML (Security Assertion Markup Language).
  • Zasoby lokalne i zintegrowane uwierzytelnianie systemu Windows z witrynami internetowymi. Zasoby mogą obejmować witryny internetowe i witryny programu SharePoint, które wymagają uwierzytelniania usług IIS i/lub zasobów korzystających z uwierzytelniania NTLM.

Nieobsługiwane scenariusze

Następujące scenariusze nie są obsługiwane:

  • Wdrożenie usług windows Server domena usługi Active Directory Services (AD DS) (tylko urządzenia lokalne).
  • Protokół RDP (Remote Desktop Protocol), infrastruktura pulpitu wirtualnego (VDI) i scenariusze Citrix przy użyciu klucza zabezpieczeń.
  • Protokół S/MIME przy użyciu klucza zabezpieczeń.
  • Uruchom jako przy użyciu klucza zabezpieczeń.
  • Zaloguj się do serwera przy użyciu klucza zabezpieczeń.

Instalowanie modułu AzureADHybridAuthenticationManagement

Moduł AzureADHybridAuthenticationManagement udostępnia funkcje zarządzania fiDO2 dla administratorów.

  1. Otwórz wiersz polecenia programu PowerShell przy użyciu opcji Uruchom jako administrator.

  2. AzureADHybridAuthenticationManagement Zainstaluj moduł:

    # First, ensure TLS 1.2 for PowerShell gallery access.
    [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
    
    # Install the AzureADHybridAuthenticationManagement PowerShell module.
    Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber
    

Uwaga

  • W AzureADHybridAuthenticationManagement module użyto modułu AzureADPreview programu PowerShell, aby zapewnić zaawansowane funkcje zarządzania entra firmy Microsoft. Jeśli moduł Programu PowerShell usługi Azure Active Directory jest już zainstalowany na komputerze lokalnym, instalacja opisana w tym miejscu może zakończyć się niepowodzeniem z powodu konfliktu. Aby zapobiec wszelkim konfliktom podczas instalacji, pamiętaj o dołączeniu flagi opcji "-AllowClobber".
  • Moduł można zainstalować AzureADHybridAuthenticationManagement na dowolnym komputerze, z którego można uzyskać dostęp do kontrolera domeny lokalna usługa Active Directory bez zależności od rozwiązania Microsoft Entra Połączenie.
  • Moduł AzureADHybridAuthenticationManagement jest dystrybuowany za pośrednictwem Galeria programu PowerShell. Galeria programu PowerShell to centralne repozytorium zawartości programu PowerShell. W nim można znaleźć przydatne moduły programu PowerShell zawierające polecenia programu PowerShell i zasoby usługi Desired State Configuration (DSC).

Tworzenie obiektu serwera Kerberos

Administracja istratorzy używają modułu AzureADHybridAuthenticationManagement do tworzenia obiektu serwera Microsoft Entra Kerberos w katalogu lokalnym.

Uruchom następujące kroki w każdej domenie i lesie w organizacji, które zawierają użytkowników firmy Microsoft Entra:

  1. Otwórz wiersz polecenia programu PowerShell przy użyciu opcji Uruchom jako administrator.
  2. Uruchom następujące polecenia programu PowerShell, aby utworzyć nowy obiekt serwera Microsoft Entra Kerberos zarówno w domenie lokalna usługa Active Directory, jak i w dzierżawie firmy Microsoft Entra.

Wybierz pozycję Chmura platformy Azure (wartość domyślna to Azure Commercial)

Domyślnie polecenie Set-AzureADKerberosSever cmdlet będzie używać punktów końcowych chmury komercyjnej. Jeśli konfigurujesz protokół Kerberos w innym środowisku chmury, musisz ustawić polecenie cmdlet tak, aby używało określonej chmury.

Aby uzyskać listę dostępnych chmur i wartość liczbową wymaganą do zmiany, uruchom następujące polecenie:
Get-AzureADKerberosServerEndpoint

Przykładowe dane wyjściowe:

Current Endpoint = 0(Public)
Supported Endpoints:
   0 :Public
   1 :China
   2 :Us Government

Zanotuj wartość liczbową obok żądanego środowiska chmury.

Aby następnie ustawić żądane środowisko chmury, uruchom następujące polecenie:
(Przykład: w przypadku chmury dla instytucji rządowych USA)
Set-AzureADKerberosServerEndpoint -TargetEndpoint 2

Przykład 1 monitu o wszystkie poświadczenia

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter an Azure Active Directory global administrator username and password.
$cloudCred = Get-Credential -Message 'An Active Directory user who is a member of the Global Administrators group for Azure AD.'

# Enter a domain administrator username and password.
$domainCred = Get-Credential -Message 'An Active Directory user who is a member of the Domain Admins group.'

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred

Przykład 2 monitu o podanie poświadczeń w chmurze

Uwaga

Jeśli pracujesz na maszynie przyłączonej do domeny przy użyciu konta z uprawnieniami administratora domeny, możesz pominąć parametr "-DomainCredential". Jeśli parametr "-DomainCredential" nie jest podany, bieżące poświadczenia logowania systemu Windows są używane do uzyskiwania dostępu do kontrolera domeny lokalna usługa Active Directory.

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter an Azure Active Directory global administrator username and password.
$cloudCred = Get-Credential

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
# Use the current windows login credential to access the on-premises AD.
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred

Przykład 3 monituj o wszystkie poświadczenia przy użyciu nowoczesnego uwierzytelniania

Uwaga

Jeśli Organizacja chroni logowanie oparte na hasłach i wymusza nowoczesne metody uwierzytelniania, takie jak uwierzytelnianie wieloskładnikowe, fiDO2 lub technologia karty inteligentnej, należy użyć parametru -UserPrincipalName z główną nazwą użytkownika (UPN) administratora globalnego.

  • Zastąp contoso.corp.com ciąg w poniższym przykładzie nazwą domeny lokalna usługa Active Directory.
  • Zastąp administrator@contoso.onmicrosoft.com ciąg w poniższym przykładzie nazwą UPN administratora globalnego.
# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter a UPN of an Azure Active Directory global administrator
$userPrincipalName = "administrator@contoso.onmicrosoft.com"

# Enter a domain administrator username and password.
$domainCred = Get-Credential

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
# Open an interactive sign-in prompt with given username to access the Azure AD.
Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $userPrincipalName -DomainCredential $domainCred

Przykład 4 monituj o poświadczenia w chmurze przy użyciu nowoczesnego uwierzytelniania

Uwaga

Jeśli pracujesz na maszynie przyłączonej do domeny z kontem z uprawnieniami administratora domeny, a organizacja chroni logowanie oparte na hasłach i wymusza nowoczesne metody uwierzytelniania, takie jak uwierzytelnianie wieloskładnikowe, FIDO2 lub technologia karty inteligentnej, należy użyć parametru -UserPrincipalName z główną nazwą użytkownika (UPN) administratora globalnego. Możesz pominąć parametr "-DomainCredential". > — Zastąp administrator@contoso.onmicrosoft.com w poniższym przykładzie nazwą UPN administratora globalnego.

# Specify the on-premises Active Directory domain. A new Azure AD
# Kerberos Server object will be created in this Active Directory domain.
$domain = $env:USERDNSDOMAIN

# Enter a UPN of an Azure Active Directory global administrator
$userPrincipalName = "administrator@contoso.onmicrosoft.com"

# Create the new Azure AD Kerberos Server object in Active Directory
# and then publish it to Azure Active Directory.
# Open an interactive sign-in prompt with given username to access the Azure AD.
Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $userPrincipalName

Wyświetlanie i weryfikowanie serwera Microsoft Entra Kerberos

Możesz wyświetlić i zweryfikować nowo utworzony serwer Microsoft Entra Kerberos przy użyciu następującego polecenia:

 # When prompted to provide domain credentials use the userprincipalname format for the username instead of domain\username
Get-AzureADKerberosServer -Domain $domain -UserPrincipalName $userPrincipalName -DomainCredential (get-credential)

To polecenie zwraca właściwości serwera Microsoft Entra Kerberos. Możesz przejrzeć właściwości, aby sprawdzić, czy wszystko jest w dobrej kolejności.

Uwaga

Uruchomienie względem innej domeny przez podanie poświadczeń w formacie domeny\nazwy użytkownika połączy się za pośrednictwem NTLM, a następnie zakończy się niepowodzeniem. Jednak użycie formatu userprincipalname dla administratora domeny zapewni, że połączenie RPC z kontrolerem domeny zostanie podjęta prawidłowo przy użyciu protokołu Kerberos. Jeśli użytkownicy znajdują się w grupie zabezpieczeń Chronieni użytkownicy w usłudze Active Directory, wykonaj następujące kroki, aby rozwiązać ten problem: Zaloguj się jako inny użytkownik domeny w usłudze AD Połączenie i nie podaj ciągu "-domainCredential". Używany jest bilet protokołu Kerberos użytkownika, który jest obecnie zalogowany. Możesz potwierdzić, wykonując whoami /groups polecenie , aby sprawdzić, czy użytkownik ma wymagane uprawnienia w usłudze Active Directory, aby wykonać poprzednie polecenie.

Właściwości opis
ID Unikatowy identyfikator obiektu kontrolera domeny usług AD DS. Ten identyfikator jest czasami określany jako jego miejsce lub identyfikator gałęzi.
DomainDnsName Nazwa domeny DNS domeny usługi Active Directory.
ComputerAccount Obiekt konta komputera obiektu serwera Kerberos firmy Microsoft (DC).
UserAccount Wyłączony obiekt konta użytkownika, który zawiera klucz szyfrowania TGT serwera Microsoft Entra Kerberos. Nazwa domeny tego konta to CN=krbtgt_AzureAD,CN=Users,<Domain-DN>.
KeyVersion Wersja klucza klucza klucza klucza szyfrowania TGT serwera Microsoft Entra Kerberos. Wersja jest przypisywana podczas tworzenia klucza. Wersja jest następnie zwiększana za każdym razem, gdy klucz jest obracany. Przyrosty są oparte na metadanych replikacji i prawdopodobnie większe niż jeden. Na przykład początkowa wersja keyversion może być 192272. Przy pierwszym obróceniu klucza wersja może przejść do 212621. Ważne jest, aby sprawdzić, czy wartość KeyVersion dla obiektu lokalnego i cloudKeyVersion dla obiektu w chmurze są takie same.
KeyUpdatedOn Data i godzina zaktualizowania lub utworzenia klucza szyfrowania TGT serwera Microsoft Entra Kerberos.
KeyUpdatedFrom Kontroler domeny, na którym ostatnio zaktualizowano klucz szyfrowania TGT serwera Microsoft Entra Kerberos.
Identyfikator chmury Identyfikator z obiektu Microsoft Entra. Musi być zgodny z identyfikatorem z pierwszego wiersza tabeli.
CloudDomainDnsName DomainDnsName z obiektu Microsoft Entra. Musi być zgodna z wartością DomainDnsName z drugiego wiersza tabeli.
CloudKeyVersion KeyVersion z obiektu Microsoft Entra. Musi być zgodna z parametrem KeyVersion z piątego wiersza tabeli.
CloudKeyUpdatedOn KeyUpdatedOn z obiektu Microsoft Entra. Musi być zgodna z wartością KeyUpdatedOn z szóstego wiersza tabeli.

Obracanie klucza serwera Microsoft Entra Kerberos

Klucze krbtgt serwera Microsoft Entra Kerberos powinny być regularnie obracane. Zalecamy, aby postępować zgodnie z tym samym harmonogramem, który jest używany do rotacji wszystkich innych kluczy dc krbtgt usługi Active Directory.

Ostrzeżenie

Istnieją inne narzędzia, które mogą obracać klucze krbtgt . Należy jednak użyć narzędzi wymienionych w tym dokumencie, aby obrócić klucze krbtgt serwera Microsoft Entra Kerberos. Dzięki temu klucze są aktualizowane zarówno w lokalna usługa Active Directory, jak i w identyfikatorze Entra firmy Microsoft.

Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred -RotateServerKey

Usuwanie serwera Microsoft Entra Kerberos

Jeśli chcesz przywrócić scenariusz i usunąć serwer Microsoft Entra Kerberos zarówno z lokalna usługa Active Directory, jak i Microsoft Entra ID, uruchom następujące polecenie:

Remove-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred

Scenariusze wieloforestowe i wielodomenowe

Obiekt serwera Microsoft Entra Kerberos jest reprezentowany w elemencie Microsoft Entra ID jako obiekt KerberosDomain . Każda domena lokalna usługa Active Directory jest reprezentowana jako pojedynczy obiekt KerberosDomain w identyfikatorze Entra firmy Microsoft.

Załóżmy na przykład, że organizacja ma las usługi Active Directory z dwiema domenami contoso.com i fabrikam.com. Jeśli zdecydujesz się zezwolić identyfikatorowi Entra firmy Microsoft na wystawianie TGT protokołu Kerberos dla całego lasu, istnieją dwa obiekty KerberosDomain w identyfikatorze Entra firmy Microsoft, jeden obiekt KerberosDomain dla contoso.com i drugi dla fabrikam.comelementu . Jeśli masz wiele lasów usługi Active Directory, istnieje jeden obiekt KerberosDomain dla każdej domeny w każdym lesie.

Postępuj zgodnie z instrukcjami w temacie Create a Kerberos Server object in each domain and forest in your organization that contains Microsoft Entra users (Tworzenie obiektu serwera Kerberos w każdej domenie i lesie w organizacji, który zawiera użytkowników usługi Microsoft Entra).

Znane zachowanie

Jeśli hasło wygasło, logowanie przy użyciu funkcji FIDO jest zablokowane. Oczekuje się, że użytkownicy zresetują swoje hasła, zanim będą mogli się zalogować przy użyciu funkcji FIDO. To zachowanie dotyczy również logowania użytkowników zsynchronizowanych hybrydowo lokalnie z relacją zaufania protokołu Kerberos w chmurze Windows Hello dla firm.

Rozwiązywanie problemów i opinie

Jeśli wystąpią problemy lub chcesz podzielić się opinią na temat tej funkcji logowania za pomocą klucza zabezpieczeń bez hasła, udostępnij je za pośrednictwem aplikacji Centrum opinii o systemie Windows, wykonując następujące czynności:

  1. Otwórz centrum opinii i upewnij się, że zalogowałeś się.
  2. Prześlij opinię, wybierając następujące kategorie:
    • Kategoria: Bezpieczeństwo i prywatność
    • Podkategoria: FIDO
  3. Aby przechwycić dzienniki, użyj opcji Utwórz ponownie mój problem .

Logowanie przy użyciu klucza zabezpieczeń bez hasła — często zadawane pytania

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Poniżej przedstawiono odpowiedzi na często zadawane pytania dotyczące logowania bez hasła:

Czy logowanie za pomocą klucza zabezpieczeń bez hasła działa w moim środowisku lokalnym?

Ta funkcja nie działa w czystym lokalnym środowisku usług AD DS.

Moja organizacja wymaga uwierzytelniania dwuskładnikowego w celu uzyskania dostępu do zasobów. Co mogę zrobić, aby spełnić to wymaganie?

Klucze zabezpieczeń mają różne czynniki. Skontaktuj się z producentem rekordu urządzenia, aby omówić sposób włączania ich urządzeń przy użyciu numeru PIN lub biometrycznego jako drugiego czynnika.

Czy administratorzy mogą skonfigurować klucze zabezpieczeń?

Pracujemy nad tą funkcją dla ogólnie dostępnej wersji tej funkcji.

Gdzie mogę znaleźć zgodne klucze zabezpieczeń?

Aby uzyskać informacje o zgodnych kluczach zabezpieczeń, zobacz FIDO2 security keys (Klucze zabezpieczeń FIDO2).

Co mogę zrobić, jeśli utracę klucz zabezpieczeń?

Aby usunąć zarejestrowany klucz zabezpieczeń, zaloguj się do myaccount.microsoft.com, a następnie przejdź do strony Informacje o zabezpieczeniach.

Co mogę zrobić, jeśli nie mogę użyć klucza zabezpieczeń FIDO natychmiast po utworzeniu hybrydowej maszyny dołączonej do firmy Microsoft Entra?

Jeśli instalujesz maszynę hybrydową firmy Microsoft Entra, po zakończeniu procesu przyłączania do domeny i ponownego uruchamiania należy zalogować się przy użyciu hasła i poczekać na synchronizację zasad, zanim będzie można zalogować się przy użyciu klucza zabezpieczeń FIDO.

  • Sprawdź bieżący stan, uruchamiając dsregcmd /status polecenie w oknie wiersza polecenia i sprawdź, czy stan AzureAdJoined i DomainJoined są wyświetlane jako TAK.
  • To opóźnienie synchronizacji jest znanym ograniczeniem urządzeń przyłączonych do domeny i nie jest specyficzne dla fiDO.

Co zrobić, jeśli nie mogę uzyskać logowania jednokrotnego do zasobu sieciowego NTLM po zalogowaniu się przy użyciu funkcji FIDO i wyświetleniu monitu o podanie poświadczeń?

Upewnij się, że wystarczająca liczba kontrolerów domeny jest poprawna, aby reagować na czas na żądanie zasobu. Aby sprawdzić, czy kontroler domeny uruchamia funkcję, uruchom polecenie nltest /dsgetdc:contoso /keylist /kdc, a następnie przejrzyj dane wyjściowe.

Uwaga

Przełącznik /keylist w poleceniu nltest jest dostępny w kliencie z systemem Windows 10 v2004 lub nowszym.

Czy klucze zabezpieczeń FIDO2 działają w logowaniu systemu Windows przy użyciu kontrolera RODC obecnego w środowisku hybrydowym?

Identyfikator logowania fiDO2 systemu Windows szuka zapisywalnego kontrolera domeny w celu wymiany biletu TGT użytkownika. Jeśli masz co najmniej jeden zapisywalny kontroler domeny na lokację, logowanie działa prawidłowo.

Następne kroki

Dowiedz się więcej o uwierzytelnianiu bez hasła