Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł przeprowadzi Cię przez proces konfigurowania logowania jednokrotnego usługi Active Directory Federation Service (AD FS) dla usługi Azure Virtual Desktop.
Wymagania wstępne
Przed skonfigurowaniem logowania jednokrotnego usług AD FS w środowisku musi być uruchomiona następująca konfiguracja:
Hosty sesji z obsługiwaną wersją Windows 10 lub Windows 11.
Musisz wdrożyć rolę usług certyfikatów Active Directory (CA ). Wszystkie serwery z rolą muszą być przyłączone do domeny, mają zainstalowane najnowsze aktualizacje systemu Windows i muszą być skonfigurowane jako urzędy certyfikacji przedsiębiorstwa.
Musisz wdrożyć rolę Active Directory Federation Services (AD FS). Wszystkie serwery z tą rolą muszą być przyłączone do domeny, mieć zainstalowane najnowsze aktualizacje systemu Windows i działać Windows Server 2016 lub nowszym.
Zalecamy skonfigurowanie roli web serwer proxy aplikacji w celu zabezpieczenia połączenia środowiska z serwerami usług AD FS. Wszystkie serwery z tą rolą muszą mieć zainstalowane najnowsze aktualizacje systemu Windows i działać Windows Server 2016 lub nowszym. Zapoznaj się z tym przewodnikiem po serwer proxy aplikacji sieci Web, aby rozpocząć konfigurowanie tej roli.
Musisz wdrożyć Microsoft Entra Connect, aby zsynchronizować użytkowników z Tożsamość Microsoft Entra. Microsoft Entra Connect należy skonfigurować w trybie federacyjnym.
Skonfiguruj środowisko programu PowerShell dla usługi Azure Virtual Desktop na serwerze usług AD FS.
Uwaga
To rozwiązanie nie jest obsługiwane w przypadku Microsoft Entra Domain Services. Należy użyć kontrolera domeny Active Directory Domain Services.
Obsługiwani klienci
Następujący klienci usługi Azure Virtual Desktop obsługują tę funkcję:
Konfigurowanie urzędu certyfikacji do wystawiania certyfikatów
Należy prawidłowo utworzyć następujące szablony certyfikatów, aby usługi AD FS mogły używać logowania jednokrotnego:
- Najpierw należy utworzyć szablon certyfikatu agenta rejestracji programu Exchange (żądanie w trybie offline ). Usługi AD FS używa szablonu certyfikatu programu Exchange Enrollment Agent do żądania certyfikatów w imieniu użytkownika.
- Należy również utworzyć szablon certyfikatu logowania karty inteligentnej , który będzie używany przez usługi AD FS do utworzenia certyfikatu logowania.
Po utworzeniu tych szablonów certyfikatów należy włączyć szablony w urzędzie certyfikacji, aby usługi AD FS mogły ich zażądać.
Uwaga
To rozwiązanie generuje nowe krótkoterminowe certyfikaty za każdym razem, gdy użytkownik się loguje, co może wypełnić bazę danych urzędu certyfikacji, jeśli masz wielu użytkowników. Możesz uniknąć przeciążenia bazy danych, konfigurując urząd certyfikacji na potrzeby nietrwałego przetwarzania certyfikatów. Jeśli to zrobisz, na zduplikowanym szablonie certyfikatu logowania karty inteligentnej upewnij się, że włączono tylko opcję Nie przechowuj certyfikatów i żądań w bazie danych urzędu certyfikacji. Nie włączaj opcji Nie uwzględniaj informacji o odwołaniu w wystawionych certyfikatach lub konfiguracja nie będzie działać.
Tworzenie szablonu certyfikatu agenta rejestracji
W zależności od środowiska możesz już skonfigurować szablon certyfikatu agenta rejestracji do innych celów, takich jak Windows Hello dla firm, certyfikaty logowania lub certyfikaty sieci VPN. Jeśli tak, należy go zmodyfikować w celu obsługi logowania jednokrotnego. Jeśli nie, możesz utworzyć nowy szablon.
Aby ustalić, czy już używasz szablonu certyfikatu agenta rejestracji, uruchom następujące polecenie programu PowerShell na serwerze usług AD FS i sprawdź, czy jest zwracana wartość. Jeśli jest pusty, utwórz nowy szablon certyfikatu agenta rejestracji. W przeciwnym razie zapamiętaj nazwę i zaktualizuj istniejący szablon certyfikatu agenta rejestracji.
Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName
Aby utworzyć nowy szablon certyfikatu agenta rejestracji:
W urzędzie certyfikacji uruchom poleceniemmc.exe z menu Start, aby uruchomić konsolę zarządzania firmy Microsoft.
Wybierz pozycję Plik...>Dodaj/Zdalne przystawce...>Szablony certyfikatów>Dodawać >>OK , aby wyświetlić listę szablonów certyfikatów.
Rozwiń pozycję Szablony certyfikatów, kliknij prawym przyciskiem myszy pozycję Agent rejestracji programu Exchange (żądanie w trybie offline), a następnie wybierz pozycję Duplikuj szablon.
Wybierz kartę Ogólne , a następnie wprowadź ciąg "Agent rejestracji usług ADFS" w polu Nazwa wyświetlana szablonu . Spowoduje to automatyczne ustawienie nazwy szablonu na "ADFSEnrollmentAgent".
Wybierz kartę Zabezpieczenia , a następnie wybierz pozycję Dodaj....
Następnie wybierz pozycję Typy obiektów..., konta usług, a następnie przycisk OK.
Wprowadź nazwę konta usługi dla usług AD FS i wybierz przycisk OK.
- W izolowanej konfiguracji usług AD FS konto usługi będzie miało nazwę "adfssvc$"
- Jeśli skonfigurujesz usługi AD FS przy użyciu programu Microsoft Entra Connect, konto usługi będzie miało nazwę "aadcsvc$"
Po dodaniu konta usługi i wyświetleniu go na karcie Zabezpieczenia wybierz je w okienku Grupy lub nazwy użytkowników , wybierz pozycję Zezwalaj zarówno na "Rejestrowanie", jak i "Automatyczne rejestrowanie" w okienku Uprawnienia dla konta usługi AD FS , a następnie wybierz przycisk OK , aby zapisać.
Aby zaktualizować istniejący szablon certyfikatu agenta rejestracji:
- W urzędzie certyfikacji uruchom poleceniemmc.exe z menu Start, aby uruchomić konsolę zarządzania firmy Microsoft.
- Wybierz pozycję Plik...>Dodaj/Zdalne przystawce...>Szablony certyfikatów>Dodawać >>OK , aby wyświetlić listę szablonów certyfikatów.
- Rozwiń szablony certyfikatów, kliknij dwukrotnie szablon odpowiadający szablonowi skonfigurowanemu na serwerze usług AD FS. Na karcie Ogólne nazwa szablonu powinna być zgodna z nazwą znalezioną powyżej.
- Wybierz kartę Zabezpieczenia , a następnie wybierz pozycję Dodaj....
- Następnie wybierz pozycję Typy obiektów..., konta usług, a następnie przycisk OK.
- Wprowadź nazwę konta usługi dla usług AD FS i wybierz przycisk OK.
- W izolowanej konfiguracji usług AD FS konto usługi będzie miało nazwę "adfssvc$"
- Jeśli skonfigurujesz usługi AD FS przy użyciu programu Microsoft Entra Connect, konto usługi będzie miało nazwę "aadcsvc$"
- Po dodaniu konta usługi i wyświetleniu go na karcie Zabezpieczenia wybierz je w okienku Grupy lub nazwy użytkowników , wybierz pozycję Zezwalaj zarówno na "Rejestrowanie", jak i "Automatyczne rejestrowanie" w okienku Uprawnienia dla konta usługi AD FS , a następnie wybierz przycisk OK , aby zapisać.
Tworzenie szablonu certyfikatu logowania karty inteligentnej
Aby utworzyć szablon certyfikatu logowania karty inteligentnej:
W urzędzie certyfikacji uruchom poleceniemmc.exe z menu Start, aby uruchomić konsolę zarządzania firmy Microsoft.
Wybierz pozycję Plik...>Dodaj/Zdalne przystawce...>Szablony certyfikatów>Dodawać>OK , aby wyświetlić listę szablonów certyfikatów.
Rozwiń pozycję Szablony certyfikatów, kliknij prawym przyciskiem myszy pozycję Logowanie karty inteligentnej i wybierz pozycję Duplikuj szablon.
Wybierz kartę Ogólne , a następnie wprowadź ciąg "ADFS SSO" w polu Nazwa wyświetlana szablonu . Spowoduje to automatyczne ustawienie nazwy szablonu na "ADFSSSO".
Uwaga
Ponieważ ten certyfikat jest wymagany na żądanie, zalecamy skrócenie okresu ważności do 8 godzin, a okres odnowienia do 1 godziny.
Wybierz kartę Nazwa podmiotu, a następnie wybierz pozycję Podaj w żądaniu. Gdy zostanie wyświetlony komunikat ostrzegawczy, wybierz przycisk OK.
Wybierz kartę Wymagania dotyczące wystawiania .
Wybierz pozycję Ta liczba autoryzowanych podpisów i wprowadź wartość 1.
W obszarze Zasady aplikacji wybierz pozycję Agent żądania certyfikatu.
Wybierz kartę Zabezpieczenia , a następnie wybierz pozycję Dodaj....
Wybierz pozycję Typy obiektów..., Konta usług i OK.
Wprowadź nazwę konta usługi dla usług AD FS, tak jak w sekcji Tworzenie szablonu certyfikatu agenta rejestracji .
- W izolowanej konfiguracji usług AD FS konto usługi będzie miało nazwę "adfssvc$"
- Jeśli skonfigurujesz usługi AD FS przy użyciu programu Microsoft Entra Connect, konto usługi będzie miało nazwę "aadcsvc$"
Po dodaniu konta usługi i wyświetleniu go na karcie Zabezpieczenia wybierz je w okienku Grupa lub nazwy użytkowników , wybierz pozycję Zezwalaj zarówno dla opcji "Zarejestruj" i "Autoenrolluj", a następnie wybierz przycisk OK , aby zapisać.
Włącz nowe szablony certyfikatów:
Aby włączyć nowe szablony certyfikatów:
W urzędzie certyfikacji uruchom poleceniemmc.exe z menu Start, aby uruchomić konsolę zarządzania firmy Microsoft.
Wybierz pozycję Plik...>Dodaj/usuń przystawkę...>Urząd> certyfikacjiDodawać >>Skończyć> i OK, aby wyświetlić urząd certyfikacji.
Rozwiń węzeł Urząd certyfikacji w okienku po lewej stronie i otwórz pozycję Szablony certyfikatów.
Kliknij prawym przyciskiem myszy w środkowym okienku, które pokazuje listę szablonów certyfikatów, wybierz pozycję Nowy, a następnie wybierz pozycję Szablon certyfikatu do wystawienia.
Wybierz zarówno agenta rejestracji usług AD FS , jak i logowania jednokrotnego usług ADFS, a następnie wybierz przycisk OK. Oba szablony powinny być widoczne w środkowym okienku.
Uwaga
Jeśli masz już skonfigurowany szablon certyfikatu agenta rejestracji, musisz tylko dodać szablon logowania jednokrotnego usług ADFS.
Konfigurowanie serwerów usług AD FS
Należy skonfigurować serwery Active Directory Federation Services (AD FS) do korzystania z nowych szablonów certyfikatów i ustawić zaufania jednostki uzależnionej do obsługi logowania jednokrotnego.
Zaufanie jednostki uzależnionej między serwerem usług AD FS a usługą Azure Virtual Desktop umożliwia poprawne przesyłanie żądań certyfikatów logowania jednokrotnego do środowiska domeny.
Podczas konfigurowania logowania jednokrotnego usług AD FS należy wybrać klucz lub certyfikat udostępniony:
- Jeśli masz jeden serwer usług AD FS, możesz wybrać klucz udostępniony lub certyfikat.
- Jeśli masz wiele serwerów usług AD FS, należy wybrać certyfikat.
Klucz udostępniony lub certyfikat używany do generowania tokenu do logowania się do systemu Windows musi być bezpiecznie przechowywany w usłudze Azure Key Vault. Wpis tajny można przechowywać w istniejącej Key Vault lub wdrożyć nowy. W obu przypadkach należy upewnić się, że należy ustawić odpowiednie zasady dostępu, aby usługa Azure Virtual Desktop mogła uzyskać do nich dostęp.
W przypadku korzystania z certyfikatu można użyć dowolnego certyfikatu ogólnego przeznaczenia i nie ma żadnych wymagań dotyczących nazwy podmiotu lub alternatywnej nazwy podmiotu (SAN). Chociaż nie jest to wymagane, zaleca się utworzenie certyfikatu wystawionego przez prawidłowy urząd certyfikacji. Ten certyfikat można utworzyć bezpośrednio w usłudze Azure Key Vault i musi mieć klucz prywatny, który można eksportować. Klucz publiczny można wyeksportować i użyć do skonfigurowania serwera usług AD FS przy użyciu poniższego skryptu. Należy pamiętać, że ten certyfikat różni się od certyfikatu SSL usług AD FS, który musi mieć odpowiednią nazwę podmiotu i prawidłowy urząd certyfikacji.
Skrypt programu PowerShell ConfigureWVDSSO.ps1 dostępny w Galeria programu PowerShell skonfiguruje serwer usług AD FS pod kątem zaufania jednostki uzależnionej i zainstaluje certyfikat w razie potrzeby.
Ten skrypt ma tylko jeden wymagany parametr ADFSAuthority, który jest adresem URL rozpoznawanym przez usługi AD FS i używa sufiksu "/adfs". Na przykład https://adfs.contoso.com/adfs
.
Na maszynach wirtualnych usług AD FS uruchom następujące polecenie cmdlet programu PowerShell, aby skonfigurować usługi AD FS do używania szablonów certyfikatów z poprzedniej sekcji:
Set-AdfsCertificateAuthority -EnrollmentAgentCertificateTemplate "ADFSEnrollmentAgent" -LogonCertificateTemplate "ADFSSSO" -EnrollmentAgent
Uwaga
Jeśli masz już skonfigurowaną wartość EnrollmentAgentCertificateTemplate, upewnij się, że używasz istniejącej nazwy szablonu zamiast ADFSEnrollmentAgent.
Uruchom skrypt ConfigureWVDSSO.ps1.
Uwaga
Do wykonania następnej
$config
części instrukcji potrzebne są wartości zmiennej, więc nie zamykaj okna programu PowerShell użytego do wykonania poprzednich instrukcji. Możesz nadal używać tego samego okna programu PowerShell lub pozostawić je otwarte podczas uruchamiania nowej sesji programu PowerShell.Jeśli używasz klucza udostępnionego w Key Vault, uruchom następujące polecenie cmdlet programu PowerShell na serwerze usług AD FS z ADFSServiceUrl zastąpione pełnym adresem URL, aby dotrzeć do usługi AD FS:
Install-Script ConfigureWVDSSO $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
Uwaga
Do skonfigurowania środowiska w suwerennej chmurze, takiego jak Azure Government, potrzebne są właściwości WvdWebAppAppIDUri i RdWebURL. W usłudze Azure Commercial Cloud te właściwości są automatycznie ustawiane odpowiednio na
https://www.wvd.microsoft.com
ihttps://rdweb.wvd.microsoft.com
.Jeśli używasz certyfikatu w Key Vault, uruchom następujące polecenie cmdlet programu PowerShell na serwerze usług AD FS z ADFSServiceUrl zastąpione pełnym adresem URL, aby dotrzeć do usługi AD FS:
Install-Script ConfigureWVDSSO $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" -UseCert -CertPath "<Path to the pfx file>" -CertPassword <Password to the pfx file> [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
Uwaga
Do skonfigurowania środowiska w suwerennej chmurze, takiego jak Azure Government, potrzebne są właściwości WvdWebAppAppIDUri i RdWebURL. W usłudze Azure Commercial Cloud te właściwości są automatycznie ustawiane odpowiednio na
https://www.wvd.microsoft.com
ihttps://rdweb.wvd.microsoft.com
.
Ustaw zasady dostępu w usłudze Azure Key Vault, uruchamiając następujące polecenie cmdlet programu PowerShell:
Set-AzKeyVaultAccessPolicy -VaultName "<Key Vault Name>" -ServicePrincipalName 9cdead84-a844-4324-93f2-b2e6bb768d07 -PermissionsToSecrets get -PermissionsToKeys sign
Zapisz klucz udostępniony lub certyfikat na platformie Azure Key Vault z tagiem zawierającym rozdzielaną przecinkami listę identyfikatorów subskrypcji, które mogą korzystać z wpisu tajnego.
Jeśli używasz klucza udostępnionego w Key Vault, uruchom następujące polecenie cmdlet programu PowerShell, aby zapisać klucz udostępniony i ustawić tag:
$hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" $secret = Set-AzKeyVaultSecret -VaultName "<Key Vault Name>" -Name "adfsssosecret" -SecretValue (ConvertTo-SecureString -String $config.SSOClientSecret -AsPlainText -Force) -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]}
Jeśli certyfikat znajduje się już w Key Vault, uruchom następujące polecenie cmdlet programu PowerShell, aby ustawić tag:
$hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" $secret = Update-AzKeyVaultCertificate -VaultName "<Key Vault Name>" -Name "<Certificate Name>" -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]} -PassThru
Jeśli masz certyfikat lokalny, uruchom następujące polecenie cmdlet programu PowerShell, aby zaimportować certyfikat w Key Vault i ustawić tag:
$hp = Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" $secret = Import-AzKeyVaultCertificate -VaultName "<Key Vault Name>" -Name "adfsssosecret" -Tag @{ 'AllowedWVDSubscriptions' = $hp.Id.Split('/')[2]} -FilePath "<Path to pfx>" -Password (ConvertTo-SecureString -String "<pfx password>" -AsPlainText -Force)
Uwaga
Opcjonalnie możesz skonfigurować częstotliwość monitowania użytkowników o poświadczenia, zmieniając ustawienia logowania jednokrotnego usług AD FS. Domyślnie użytkownicy będą monitować co 8 godzin na niezarejestrowanych urządzeniach.
Konfigurowanie puli hostów usługi Azure Virtual Desktop
Nadszedł czas, aby skonfigurować parametry logowania jednokrotnego usług AD FS w puli hostów usługi Azure Virtual Desktop. W tym celu skonfiguruj środowisko programu PowerShell dla usługi Azure Virtual Desktop, jeśli jeszcze tego nie zrobiono, i połącz się z kontem.
Następnie zaktualizuj informacje logowania jednokrotnego dla puli hostów, uruchamiając jedno z następujących dwóch poleceń cmdlet w tym samym oknie programu PowerShell na maszynie wirtualnej usług AD FS:
Jeśli używasz klucza udostępnionego w Key Vault, uruchom następujące polecenie cmdlet programu PowerShell:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType SharedKeyInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
Uwaga
Musisz ustawić właściwość SsoClientId tak, aby była zgodna z chmurą platformy Azure, w której wdrażasz logowanie jednokrotne. W usłudze Azure Commercial Cloud ta właściwość
https://www.wvd.microsoft.com
powinna mieć wartość . Jednak wymagane ustawienie dla tej właściwości będzie inne w przypadku innych chmur, takich jak chmura Azure Government.Jeśli używasz certyfikatu w Key Vault, uruchom następujące polecenie cmdlet programu PowerShell:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType CertificateInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
Uwaga
Musisz ustawić właściwość SsoClientId tak, aby była zgodna z chmurą platformy Azure, w której wdrażasz logowanie jednokrotne. W usłudze Azure Commercial Cloud ta właściwość
https://www.wvd.microsoft.com
powinna mieć wartość . Jednak wymagane ustawienie dla tej właściwości będzie inne w przypadku innych chmur, takich jak chmura Azure Government.
Konfigurowanie dodatkowych pul hostów
Jeśli musisz skonfigurować dodatkowe pule hostów, możesz pobrać ustawienia użyte do skonfigurowania istniejącej puli hostów w celu skonfigurowania nowej.
Aby pobrać ustawienia z istniejącej puli hostów, otwórz okno programu PowerShell i uruchom to polecenie cmdlet:
Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" | fl *
Możesz wykonać kroki konfigurowania puli hostów usługi Azure Virtual Desktop przy użyciu tych samych wartości SsoClientId, SsoClientSecretKeyVaultPath, SsoSecretType i SsoadfsAuthority .
Usuwanie logowania jednokrotnego
Aby wyłączyć logowania jednokrotnego w puli hostów, uruchom następujące polecenie cmdlet:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority ''
Jeśli chcesz również wyłączyć logowania jednokrotnego na serwerze usług AD FS, uruchom następujące polecenie cmdlet:
Install-Script UnConfigureWVDSSO
UnConfigureWVDSSO.ps1 -WvdWebAppAppIDUri "<WVD Web App URI>" -WvdClientAppApplicationID "a85cf173-4192-42f8-81fa-777a763e6e2c"
Uwaga
Właściwość WvdWebAppAppAppIDUri musi być zgodna z chmurą platformy Azure, w ramach którą wdrażasz. W usłudze Azure Commercial Cloud ta właściwość to https://www.wvd.microsoft.com
. Będzie ona inna w przypadku innych chmur, takich jak chmura Azure Government.
Następne kroki
Po skonfigurowaniu logowania jednokrotnego możesz zalogować się do obsługiwanego klienta usługi Azure Virtual Desktop, aby przetestować go w ramach sesji użytkownika. Jeśli chcesz dowiedzieć się, jak nawiązać połączenie z sesją przy użyciu nowych poświadczeń, zapoznaj się z następującymi artykułami: