Eenmalige aanmelding configureren voor Azure Virtual Desktop met AD FS
In dit artikel wordt u begeleid bij het configureren van eenmalige aanmelding (SSO) van Active Directory Federation Service (AD FS) voor Azure Virtual Desktop.
Notitie
Azure Virtual Desktop (klassiek) biedt geen ondersteuning voor deze functie.
Vereisten
Voordat u eenmalige aanmelding van AD FS configureert, moet de volgende installatie worden uitgevoerd in uw omgeving:
Sessiehosts met een ondersteunde versie van Windows 10 of Windows 11.
U moet de rol Active Directory Certificate Services (CA) implementeren. Alle servers waarop de rol wordt uitgevoerd, moeten lid zijn van een domein, de meest recente Windows-updates moeten zijn geïnstalleerd en moeten worden geconfigureerd als certificeringsinstanties voor ondernemingen.
U moet de rol Active Directory Federation Services (AD FS) implementeren. Alle servers waarop deze rol wordt uitgevoerd, moeten lid zijn van een domein, de meest recente Windows-updates moeten zijn geïnstalleerd en Windows Server 2016 of hoger moeten worden uitgevoerd. Zie onze federatiezelfstudie om aan de slag te gaan met het instellen van deze rol.
U wordt aangeraden de rol Web toepassingsproxy in te stellen om de verbinding van uw omgeving met de AD FS-servers te beveiligen. Op alle servers waarop deze rol wordt uitgevoerd, moeten de meest recente Windows-updates zijn geïnstalleerd en Windows Server 2016 of hoger worden uitgevoerd. Raadpleeg deze handleiding voor web-toepassingsproxy om aan de slag te gaan met het instellen van deze rol.
U moet Microsoft Entra Connect implementeren om gebruikers te synchroniseren met Microsoft Entra-id. Microsoft Entra Connect moet worden geconfigureerd in de federatiemodus.
Stel uw PowerShell-omgeving in voor Azure Virtual Desktop op de AD FS-server.
Notitie
Deze oplossing wordt niet ondersteund met Microsoft Entra Domain Services. U moet een Active Directory-domein Services-domeincontroller gebruiken.
Ondersteunde clients
De volgende Azure Virtual Desktop-clients ondersteunen deze functie:
De certificeringsinstantie configureren voor het verlenen van certificaten
U moet de volgende certificaatsjablonen op de juiste manier maken, zodat AD FS eenmalige aanmelding kan gebruiken:
- Eerst moet u de certificaatsjabloon exchange-inschrijvingsagent (offlineaanvraag) maken. AD FS maakt gebruik van de certificaatsjabloon exchange-inschrijvingsagent om certificaten namens de gebruiker aan te vragen.
- U moet ook de certificaatsjabloon voor smartcardaanmelding maken, die AD FS gebruikt om het aanmeldingscertificaat te maken.
Nadat u deze certificaatsjablonen hebt gemaakt, moet u de sjablonen inschakelen op de certificeringsinstantie, zodat AD FS deze kan aanvragen.
Notitie
Met deze oplossing worden steeds nieuwe certificaten voor de korte termijn gegenereerd wanneer een gebruiker zich aanmeldt, waardoor de database van de certificeringsinstantie kan worden ingevuld als u veel gebruikers hebt. U kunt voorkomen dat uw database overbelast raakt door een CA in te stellen voor niet-permanente certificaatverwerking. Als u dit doet, moet u op de gedupliceerde certificaatsjabloon voor het aanmelden van smartcards alleen certificaten en aanvragen opslaan in de CA-database. Schakel geen intrekkingsgegevens in uitgegeven certificaten in of de configuratie werkt niet.
De certificaatsjabloon voor de inschrijvingsagent maken
Afhankelijk van uw omgeving hebt u mogelijk al een certificaatsjabloon voor de inschrijvingsagent geconfigureerd voor andere doeleinden, zoals Windows Hello voor Bedrijven, aanmeldingscertificaten of VPN-certificaten. Zo ja, dan moet u deze wijzigen ter ondersteuning van eenmalige aanmelding. Zo niet, dan kunt u een nieuwe sjabloon maken.
Als u wilt bepalen of u al een certificaatsjabloon voor de inschrijvingsagent gebruikt, voert u de volgende PowerShell-opdracht uit op de AD FS-server en controleert u of er een waarde wordt geretourneerd. Als deze leeg is, maakt u een nieuwe certificaatsjabloon voor de inschrijvingsagent. Anders moet u de naam onthouden en de bestaande certificaatsjabloon voor de inschrijvingsagent bijwerken.
Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName
Ga als volgt te werk om een nieuwe certificaatsjabloon voor de inschrijvingsagent te maken:
Voer op de certificeringsinstantie mmc.exe uit vanuit de Startmenu om de Microsoft Management Console te starten.
Bestand selecteren...>Module toevoegen/extern...>Certificaatsjablonen>voegen OK toe>> om de lijst met certificaatsjablonen weer te geven.
Vouw de certificaatsjablonen uit, klik met de rechtermuisknop op Exchange Enrollment Agent (offlineaanvraag) en selecteer Duplicaatsjabloon.
Selecteer het tabblad Algemeen en voer ADFS-inschrijvingsagent in het veld Weergavenaam van sjabloon in. Hiermee wordt de sjabloonnaam automatisch ingesteld op ADFSEnrollmentAgent.
Selecteer het tabblad Beveiliging en selecteer vervolgens Toevoegen....
Selecteer vervolgens Objecttypen..., vervolgens Serviceaccounts en vervolgens OK.
Voer de naam van het serviceaccount voor AD FS in en selecteer OK.
- In een geïsoleerde AD FS-installatie krijgt het serviceaccount de naam 'adfssvc$'
- Als u AD FS instelt met Microsoft Entra Connect, krijgt het serviceaccount de naam 'aadcsvc$'
Nadat het serviceaccount is toegevoegd en zichtbaar is op het tabblad Beveiliging , selecteert u dit in het deelvenster Groep of gebruikersnamen , selecteert u Toestaan voor zowel Inschrijven als Automatisch inschrijven in het deelvenster Machtigingen voor het AD FS-serviceaccount en selecteert u VERVOLGENS OK om op te slaan.
Een bestaande certificaatsjabloon voor de inschrijvingsagent bijwerken:
- Voer op de certificeringsinstantie mmc.exe uit vanuit de Startmenu om de Microsoft Management Console te starten.
- Bestand selecteren...>Module toevoegen/extern...>Certificaatsjablonen>voegen OK toe>> om de lijst met certificaatsjablonen weer te geven.
- Vouw de certificaatsjablonen uit en dubbelklik op de sjabloon die overeenkomt met de sjabloon die is geconfigureerd op de AD FS-server. Op het tabblad Algemeen moet de sjabloonnaam overeenkomen met de naam die u hierboven hebt gevonden.
- Selecteer het tabblad Beveiliging en selecteer vervolgens Toevoegen....
- Selecteer vervolgens Objecttypen..., vervolgens Serviceaccounts en vervolgens OK.
- Voer de naam van het serviceaccount voor AD FS in en selecteer OK.
- In een geïsoleerde AD FS-installatie krijgt het serviceaccount de naam 'adfssvc$'
- Als u AD FS instelt met Microsoft Entra Connect, krijgt het serviceaccount de naam 'aadcsvc$'
- Nadat het serviceaccount is toegevoegd en zichtbaar is op het tabblad Beveiliging , selecteert u dit in het deelvenster Groep of gebruikersnamen , selecteert u Toestaan voor zowel Inschrijven als Automatisch inschrijven in het deelvenster Machtigingen voor het AD FS-serviceaccount en selecteert u VERVOLGENS OK om op te slaan.
De certificaatsjabloon voor smartcardaanmelding maken
Ga als volgende te werk om de certificaatsjabloon voor aanmelden voor smartcards te maken:
Voer op de certificeringsinstantie mmc.exe uit vanuit de Startmenu om de Microsoft Management Console te starten.
Bestand selecteren...>Module toevoegen/extern...>Certificaatsjablonen>voegen OK toe>om de lijst met certificaatsjablonen weer te geven.
Vouw de certificaatsjablonen uit, klik met de rechtermuisknop op Smartcardaanmelding en selecteer Duplicaatsjabloon.
Selecteer het tabblad Algemeen en voer 'ADFS SSO' in het veld Weergavenaam van sjabloon in. Hiermee wordt de sjabloonnaam automatisch ingesteld op 'ADFSSSO'.
Notitie
Omdat dit certificaat op aanvraag wordt aangevraagd, raden we u aan de geldigheidsperiode te verkorten tot 8 uur en de verlengingsperiode tot 1 uur.
Selecteer het tabblad Onderwerpnaam en selecteer Vervolgens Leveren in de aanvraag. Wanneer u een waarschuwingsbericht ziet, selecteert u OK.
Selecteer het tabblad Uitgiftevereisten .
Selecteer Dit aantal geautoriseerde handtekeningen en voer de waarde 1 in.
Selecteer voor toepassingsbeleid de agent voor certificaataanvragen.
Selecteer het tabblad Beveiliging en selecteer vervolgens Toevoegen....
Selecteer Objecttypen..., Serviceaccounts en OK.
Voer de naam van het serviceaccount voor AD FS in, net zoals u hebt gedaan in de sectie Certificaatsjabloon voor inschrijvingsagent maken.
- In een geïsoleerde AD FS-installatie krijgt het serviceaccount de naam 'adfssvc$'
- Als u AD FS instelt met Microsoft Entra Connect, krijgt het serviceaccount de naam 'aadcsvc$'
Nadat het serviceaccount is toegevoegd en zichtbaar is op het tabblad Beveiliging , selecteert u dit in het deelvenster Groeps- of gebruikersnamen , selecteert u Toestaan voor zowel Inschrijven als Automatisch inschrijven. Selecteer vervolgens OK om op te slaan.
Schakel de nieuwe certificaatsjablonen in:
De nieuwe certificaatsjablonen inschakelen:
Voer op de certificeringsinstantie mmc.exe uit vanuit de Startmenu om de Microsoft Management Console te starten.
Bestand selecteren...>Module toevoegen/verwijderen...>Certificeringsinstantie>Toevoegen >>Voltooien> en OK om de certificeringsinstantie weer te geven.
Vouw de certificeringsinstantie in het linkerdeelvenster uit en open certificaatsjablonen.
Klik met de rechtermuisknop in het middelste deelvenster waarin de lijst met certificaatsjablonen wordt weergegeven, selecteer Nieuw en selecteer vervolgens Certificaatsjabloon die u wilt uitgeven.
Selecteer zowel ADFS Enrollment Agent als ADFS SSO en selecteer VERVOLGENS OK. U ziet beide sjablonen in het middelste deelvenster.
Notitie
Als u al een certificaatsjabloon voor de inschrijvingsagent hebt geconfigureerd, hoeft u alleen de ADFS SSO-sjabloon toe te voegen.
De AD FS-Servers configureren
U moet de Active Directory Federation Services -servers (AD FS) configureren voor het gebruik van de nieuwe certificaatsjablonen en de relying-party vertrouwensrelatie instellen ter ondersteuning van eenmalige aanmelding.
Met de relying-party-vertrouwensrelatie tussen uw AD FS-server en de Azure Virtual Desktop-service kunnen aanvragen voor eenmalige aanmeldingscertificaten correct worden doorgestuurd naar uw domeinomgeving.
Wanneer u eenmalige aanmelding van AD FS configureert, moet u een gedeelde sleutel of certificaat kiezen:
- Als u één AD FS-server hebt, kunt u een gedeelde sleutel of certificaat kiezen.
- Als u meerdere AD FS-servers hebt, moet u een certificaat kiezen.
De gedeelde sleutel of het gedeelde certificaat dat wordt gebruikt om het token te genereren om u aan te melden bij Windows, moet veilig worden opgeslagen in Azure Key Vault. U kunt het geheim opslaan in een bestaande sleutelkluis of een nieuwe implementeren. In beide gevallen moet u ervoor zorgen dat u het juiste toegangsbeleid instelt, zodat de Azure Virtual Desktop-service er toegang toe heeft.
Wanneer u een certificaat gebruikt, kunt u elk algemeen certificaat gebruiken en is er geen vereiste voor de onderwerpnaam of alternatieve onderwerpnaam (SAN). Hoewel dit niet vereist is, is het raadzaam om een certificaat te maken dat is uitgegeven door een geldige certificeringsinstantie. Dit certificaat kan rechtstreeks in Azure Key Vault worden gemaakt en moet een exporteerbare persoonlijke sleutel hebben. De openbare sleutel kan worden geëxporteerd en gebruikt om de AD FS-server te configureren met behulp van het onderstaande script. Houd er rekening mee dat dit certificaat verschilt van het AD FS SSL-certificaat dat een juiste onderwerpnaam en geldige certificeringsinstantie moet hebben.
Met het PowerShell-script ConfigureWVDSSO.ps1 in de PowerShell Gallery configureert u uw AD FS-server voor de relying-party-vertrouwensrelatie en installeert u het certificaat indien nodig.
Dit script heeft slechts één vereiste parameter, ADFSAuthority, de URL die wordt omgezet in uw AD FS en gebruikt '/adfs' als achtervoegsel. Bijvoorbeeld: https://adfs.contoso.com/adfs
.
Voer op de AD FS-VM's de volgende PowerShell-cmdlet uit om AD FS te configureren voor het gebruik van de certificaatsjablonen uit de vorige sectie:
Set-AdfsCertificateAuthority -EnrollmentAgentCertificateTemplate "ADFSEnrollmentAgent" -LogonCertificateTemplate "ADFSSSO" -EnrollmentAgent
Notitie
Als u al een EnrollmentAgentCertificateTemplate hebt geconfigureerd, moet u ervoor zorgen dat u de bestaande sjabloonnaam gebruikt in plaats van ADFSEnrollmentAgent.
Voer het script ConfigureWVDSSO.ps1 uit.
Notitie
U hebt de
$config
variabelewaarden nodig om het volgende deel van de instructies te voltooien, dus sluit het PowerShell-venster dat u hebt gebruikt om de vorige instructies te voltooien niet. U kunt hetzelfde PowerShell-venster blijven gebruiken of het geopend laten tijdens het starten van een nieuwe PowerShell-sessie.Als u een gedeelde sleutel gebruikt in Key Vault, voert u de volgende PowerShell-cmdlet uit op de AD FS-server door ADFSServiceUrl vervangen door de volledige URL om uw AD FS-service te bereiken:
Install-Script ConfigureWVDSSO $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
Notitie
U hebt de eigenschappen WvdWebAppAppAppIDUri en RdWebURL nodig om een omgeving te configureren in een onafhankelijke cloud, zoals Azure Government. In de Commerciële Cloud van Azure worden deze eigenschappen automatisch ingesteld op
https://www.wvd.microsoft.com
enhttps://rdweb.wvd.microsoft.com
respectievelijk.Als u een certificaat in key vault gebruikt, voert u de volgende PowerShell-cmdlet uit op de AD FS-server door ADFSServiceUrl vervangen door de volledige URL om uw AD FS-service te bereiken:
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>"]
Notitie
U hebt de eigenschappen WvdWebAppAppAppIDUri en RdWebURL nodig om een omgeving te configureren in een onafhankelijke cloud, zoals Azure Government. In de Commerciële Cloud van Azure worden deze eigenschappen automatisch ingesteld op
https://www.wvd.microsoft.com
enhttps://rdweb.wvd.microsoft.com
respectievelijk.
Stel het toegangsbeleid in de Azure Key Vault in door de volgende PowerShell-cmdlet uit te voeren:
Set-AzKeyVaultAccessPolicy -VaultName "<Key Vault Name>" -ServicePrincipalName 9cdead84-a844-4324-93f2-b2e6bb768d07 -PermissionsToSecrets get -PermissionsToKeys sign
Sla de gedeelde sleutel of het gedeelde certificaat op in Azure Key Vault met een tag met een door coma's gescheiden lijst met abonnements-id's die het geheim mogen gebruiken.
Als u een gedeelde sleutel gebruikt in Key Vault, voert u de volgende PowerShell-cmdlet uit om de gedeelde sleutel op te slaan en de tag in te stellen:
$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]}
Als uw certificaat zich al in de Key Vault bevindt, voert u de volgende PowerShell-cmdlet uit om de tag in te stellen:
$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
Als u een lokaal certificaat hebt, voert u de volgende PowerShell-cmdlet uit om het certificaat in key vault te importeren en de tag in te stellen:
$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)
Notitie
U kunt desgewenst configureren hoe vaak gebruikers om referenties wordt gevraagd door de instellingen voor eenmalige aanmelding van AD FS te wijzigen. Standaard worden gebruikers om de 8 uur gevraagd op niet-geregistreerde apparaten.
Uw Azure Virtual Desktop-hostgroep configureren
Het is tijd om de AD FS SSO-parameters in uw Azure Virtual Desktop-hostgroep te configureren. Hiervoor stelt u uw PowerShell-omgeving in voor Azure Virtual Desktop als u dat nog niet hebt gedaan en verbinding maakt met uw account.
Werk daarna de SSO-gegevens voor uw hostgroep bij door een van de volgende twee cmdlets uit te voeren in hetzelfde PowerShell-venster op de AD FS-VM:
Als u een gedeelde sleutel gebruikt in Key Vault, voert u de volgende PowerShell-cmdlet uit:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType SharedKeyInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
Notitie
U moet de eigenschap SsoClientId instellen op basis van de Azure-cloud waarin u eenmalige aanmelding implementeert. In de Commerciële Cloud van Azure moet deze eigenschap worden ingesteld op
https://www.wvd.microsoft.com
. De vereiste instelling voor deze eigenschap is echter anders voor andere clouds, zoals de Azure Government-cloud.Als u een certificaat in Key Vault gebruikt, voert u de volgende PowerShell-cmdlet uit:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType CertificateInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
Notitie
U moet de eigenschap SsoClientId instellen op basis van de Azure-cloud waarin u eenmalige aanmelding implementeert. In de Commerciële Cloud van Azure moet deze eigenschap worden ingesteld op
https://www.wvd.microsoft.com
. De vereiste instelling voor deze eigenschap is echter anders voor andere clouds, zoals de Azure Government-cloud.
Aanvullende hostgroepen configureren
Wanneer u extra hostgroepen wilt configureren, kunt u de instellingen ophalen die u hebt gebruikt om een bestaande hostgroep te configureren voor het instellen van de nieuwe.
Als u de instellingen uit uw bestaande hostgroep wilt ophalen, opent u een PowerShell-venster en voert u deze cmdlet uit:
Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" | fl *
U kunt de stappen volgen om uw Azure Virtual Desktop-hostgroep te configureren met dezelfde waarden voor SsoClientId, SsoClientSecretKeyVaultPath, SsoSecretType en SsoadfsAuthority.
Eenmalige aanmelding verwijderen
Als u eenmalige aanmelding wilt uitschakelen voor de hostgroep, voert u de volgende cmdlet uit:
Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority ''
Als u ook eenmalige aanmelding op uw AD FS-server wilt uitschakelen, voert u deze cmdlet uit:
Install-Script UnConfigureWVDSSO
UnConfigureWVDSSO.ps1 -WvdWebAppAppIDUri "<WVD Web App URI>" -WvdClientAppApplicationID "a85cf173-4192-42f8-81fa-777a763e6e2c"
Notitie
De eigenschap WvdWebAppAppAppIDUri moet overeenkomen met de Azure-cloud waarin u implementeert. In de Azure Commercial Cloud is https://www.wvd.microsoft.com
deze eigenschap. Dit is anders voor andere clouds, zoals de Azure Government-cloud.
Volgende stappen
Nu u eenmalige aanmelding hebt geconfigureerd, kunt u zich aanmelden bij een ondersteunde Azure Virtual Desktop-client om deze te testen als onderdeel van een gebruikerssessie. Als u wilt weten hoe u verbinding maakt met een sessie met behulp van uw nieuwe referenties, raadpleegt u deze artikelen: