Share via


Konfigurera enkel inloggning för Azure Virtual Desktop med HJÄLP av AD FS

Den här artikeln beskriver hur du konfigurerar enkel inloggning med Active Directory Federation Service (AD FS) för Azure Virtual Desktop.

Kommentar

Azure Virtual Desktop (klassisk) stöder inte den här funktionen.

Förutsättningar

Innan du konfigurerar enkel inloggning med AD FS måste följande konfiguration köras i din miljö:

  • Sessionsvärdar som kör en version av Windows 10 eller Windows 11 som stöds.

  • Du måste distribuera rollen Active Directory Certificate Services (CA). Alla servrar som kör rollen måste vara domänanslutna, ha de senaste Windows-uppdateringarna installerade och konfigureras som företagscertifikatutfärdare.

  • Du måste distribuera rollen Active Directory Federation Services (AD FS) (AD FS). Alla servrar som kör den här rollen måste vara domänanslutna, ha de senaste Windows-uppdateringarna installerade och köra Windows Server 2016 eller senare. Se vår federationsguide för att komma igång med att konfigurera den här rollen.

  • Vi rekommenderar att du konfigurerar rollen Web Programproxy för att skydda din miljös anslutning till AD FS-servrarna. Alla servrar som kör den här rollen måste ha de senaste Windows-uppdateringarna installerade och köra Windows Server 2016 eller senare. Se den här webbguiden för Programproxy för att komma igång med att konfigurera den här rollen.

  • Du måste distribuera Microsoft Entra Anslut för att synkronisera användare med Microsoft Entra-ID. Microsoft Entra Anslut måste konfigureras i federationsläge.

  • Konfigurera PowerShell-miljön för Azure Virtual Desktop på AD FS-servern.

Kommentar

Den här lösningen stöds inte med Microsoft Entra Domain Services. Du måste använda en domänkontrollant för Active Directory-domän Services.

Klienter som stöds

Följande Azure Virtual Desktop-klienter stöder den här funktionen:

Konfigurera certifikatutfärdare för att utfärda certifikat

Du måste skapa följande certifikatmallar korrekt så att AD FS kan använda enkel inloggning:

  • Först måste du skapa certifikatmallen Exchange Enrollment Agent (offlinebegäran ). AD FS använder certifikatmallen Exchange Enrollment Agent för att begära certifikat för användarens räkning.
  • Du måste också skapa certifikatmallen smartkortsinloggning , som AD FS använder för att skapa inloggningscertifikatet.

När du har skapat dessa certifikatmallar måste du aktivera mallarna på certifikatutfärdaren så att AD FS kan begära dem.

Kommentar

Den här lösningen genererar nya kortsiktiga certifikat varje gång en användare loggar in, vilket kan fylla i certifikatutfärdardatabasen om du har många användare. Du kan undvika att överbelasta databasen genom att konfigurera en certifikatutfärdare för icke-beständig certifikatbearbetning. Om du gör det i den duplicerade certifikatmallen för smartkortsinloggning kontrollerar du att du endast aktiverar Lagra inte certifikat och begäranden i CA-databasen. Aktivera inte Ta inte med återkallningsinformation i utfärdade certifikat eller så fungerar inte konfigurationen.

Skapa certifikatmallen för registreringsagenten

Beroende på din miljö kanske du redan har konfigurerat en certifikatmall för registreringsagenten för andra syften som Windows Hello för företag, inloggningscertifikat eller VPN-certifikat. I så fall måste du ändra den för att stödja enkel inloggning. Annars kan du skapa en ny mall.

För att avgöra om du redan använder en certifikatmall för registreringsagenten kör du följande PowerShell-kommando på AD FS-servern och ser om ett värde returneras. Om den är tom skapar du en ny certifikatmall för registreringsagenten. I annat fall bör du komma ihåg namnet och uppdatera den befintliga certifikatmallen för registreringsagenten.

Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName

Så här skapar du en ny certifikatmall för registreringsagenten:

  1. På certifikatutfärdare kör du mmc.exe från Start-menyn för att starta Microsoft Management Console.

  2. Välj Fil...>Lägg till/fjärransluten snapin-modul...>Certifikatmallar>Lägg till>> OK för att visa listan över certifikatmallar.

  3. Expandera certifikatmallarna, högerklicka på Exchange-registreringsagenten (offlinebegäran) och välj Duplicera mall.

  4. Välj fliken Allmänt och ange sedan "ADFS-registreringsagent" i fältet Mallvisningsnamn . Detta anger automatiskt mallnamnet till "ADFSEnrollmentAgent".

  5. Välj fliken Säkerhet och välj sedan Lägg till....

  6. Välj sedan Objekttyper..., sedan Tjänstkonton och sedan OK.

  7. Ange tjänstkontonamnet för AD FS och välj OK.

    • I en isolerad AD FS-konfiguration får tjänstkontot namnet "adfssvc$"
    • Om du konfigurerar AD FS med Microsoft Entra Anslut får tjänstkontot namnet "aadcsvc$"
  8. När tjänstkontot har lagts till och visas på fliken Säkerhet väljer du det i fönstret Grupp eller användarnamn , väljer Tillåt för både "Registrera" och "Registrera automatiskt" i fönstret Behörigheter för AD FS-tjänstkontot och väljer sedan OK för att spara.

    A screenshot showing the security tab of the Enrollment Agent certificate template after it is properly configured.

Så här uppdaterar du en befintlig certifikatmall för registreringsagenten:

  1. På certifikatutfärdare kör du mmc.exe från Start-menyn för att starta Microsoft Management Console.
  2. Välj Fil...>Lägg till/fjärransluten snapin-modul...>Certifikatmallar>Lägg till>> OK för att visa listan över certifikatmallar.
  3. Expandera certifikatmallarna och dubbelklicka på mallen som motsvarar den som konfigurerats på AD FS-servern. På fliken Allmänt ska mallnamnet matcha namnet du hittade ovan.
  4. Välj fliken Säkerhet och välj sedan Lägg till....
  5. Välj sedan Objekttyper..., sedan Tjänstkonton och sedan OK.
  6. Ange tjänstkontonamnet för AD FS och välj OK.
    • I en isolerad AD FS-konfiguration får tjänstkontot namnet "adfssvc$"
    • Om du konfigurerar AD FS med Microsoft Entra Anslut får tjänstkontot namnet "aadcsvc$"
  7. När tjänstkontot har lagts till och visas på fliken Säkerhet väljer du det i fönstret Grupp eller användarnamn , väljer Tillåt för både "Registrera" och "Registrera automatiskt" i fönstret Behörigheter för AD FS-tjänstkontot och väljer sedan OK för att spara.

Skapa certifikatmallen smartkortsinloggning

Så här skapar du certifikatmallen för smartkortsinloggning:

  1. På certifikatutfärdare kör du mmc.exe från Start-menyn för att starta Microsoft Management Console.

  2. Välj Fil...>Lägg till/fjärransluten snapin-modul...>Certifikatmallar>Lägg till>OK för att visa listan över certifikatmallar.

  3. Expandera certifikatmallarna, högerklicka på Smartcard-inloggning och välj Duplicera mall.

  4. Välj fliken Allmänt och ange sedan "ADFS SSO" i fältet Mallvisningsnamn . Detta anger automatiskt mallnamnet till "ADFSSSO".

    Kommentar

    Eftersom det här certifikatet begärs på begäran rekommenderar vi att du förkortar giltighetsperioden till 8 timmar och förnyelseperioden till 1 timme.

  5. Välj fliken Ämnesnamn och välj sedan Ange i begäran. När du ser ett varningsmeddelande väljer du OK.

    A screenshot showing the subject name tab of the SSO certificate template and what it should look like when properly configured.

  6. Välj fliken Utfärdandekrav .

  7. Välj Det här antalet auktoriserade signaturer och ange värdet 1.

    A screenshot showing the issuance requirements tab of the SSO certificate template and what it should look like when properly configured.

  8. Som Programprincip väljer du Certifikatbegärandeagent.

  9. Välj fliken Säkerhet och välj sedan Lägg till....

  10. Välj Objekttyper..., Tjänstkonton och OK.

  11. Ange tjänstkontonamnet för AD FS precis som du gjorde i avsnittet Skapa certifikatmallen för registreringsagenten .

    • I en isolerad AD FS-konfiguration får tjänstkontot namnet "adfssvc$"
    • Om du konfigurerar AD FS med Microsoft Entra Anslut får tjänstkontot namnet "aadcsvc$"
  12. När tjänstkontot har lagts till och visas på fliken Säkerhet väljer du det i fönstret Grupp eller användarnamn , väljer Tillåt för både "Registrera" och "Registrera automatiskt" och väljer sedan OK för att spara.

A screenshot showing the security tab of the SSO certificate template after it is properly configured.

Aktivera de nya certifikatmallarna:

Så här aktiverar du de nya certifikatmallarna:

  1. På certifikatutfärdare kör du mmc.exe från Start-menyn för att starta Microsoft Management Console.

  2. Välj Fil...>Lägg till/ta bort snapin-modul...>Certifikatutfärdare>Lägg till>> avslut> och OK för att visa certifikatutfärdare.

  3. Expandera certifikatutfärdaren i den vänstra rutan och öppna Certifikatmallar.

  4. Högerklicka i det mittersta fönstret som visar listan över certifikatmallar, välj Ny och välj sedan Certifikatmall som ska utfärdas.

  5. Välj både ADFS-registreringsagenten och ADFS SSO och välj sedan OK. Du bör se båda mallarna i mittenfönstret.

    A screenshot showing list of certificate templates that can be issued, including the new ADFS Enrollment Agent and ADFS SSO.

    Kommentar

    Om du redan har konfigurerat en certifikatmall för registreringsagenten behöver du bara lägga till ADFS SSO-mallen.

Konfigurera AD FS-servrar

Du måste konfigurera Active Directory Federation Services (AD FS)-servrarna (AD FS) så att de använder de nya certifikatmallarna och ange det förlitande partförtroendet som stöd för enkel inloggning.

Det förlitande partförtroendet mellan AD FS-servern och Azure Virtual Desktop-tjänsten gör att begäranden om enkel inloggningscertifikat kan vidarebefordras korrekt till din domänmiljö.

När du konfigurerar enkel inloggning med AD FS måste du välja delad nyckel eller certifikat:

  • Om du har en enda AD FS-server kan du välja delad nyckel eller certifikat.
  • Om du har flera AD FS-servrar måste du välja certifikat.

Den delade nyckeln eller certifikatet som används för att generera token för att logga in på Windows måste lagras säkert i Azure Key Vault. Du kan lagra hemligheten i ett befintligt Nyckelvalv eller distribuera en ny. I båda fallen måste du ange rätt åtkomstprincip så att Azure Virtual Desktop-tjänsten kan komma åt den.

När du använder ett certifikat kan du använda ett allmänt certifikat och det finns inget krav på ämnesnamnet eller alternativt namn på certifikatmottagaren (SAN). Även om det inte krävs rekommenderar vi att du skapar ett certifikat som utfärdats av en giltig certifikatutfärdare. Det här certifikatet kan skapas direkt i Azure Key Vault och måste ha en exporterbar privat nyckel. Den offentliga nyckeln kan exporteras och användas för att konfigurera AD FS-servern med hjälp av skriptet nedan. Observera att det här certifikatet skiljer sig från AD FS SSL-certifikatet som måste ha rätt ämnesnamn och giltig certifikatutfärdare.

PowerShell-skriptet ConfigureWVDSSO.ps1 som är tillgängligt i PowerShell-galleriet konfigurerar AD FS-servern för förtroende från förlitande part och installerar certifikatet om det behövs.

Det här skriptet har bara en obligatorisk parameter, ADFSAuthority, som är den URL som matchar din AD FS och använder "/adfs" som sitt suffix. Exempel: https://adfs.contoso.com/adfs

  1. På de virtuella AD FS-datorerna kör du följande PowerShell-cmdlet för att konfigurera AD FS att använda certifikatmallarna från föregående avsnitt:

    Set-AdfsCertificateAuthority -EnrollmentAgentCertificateTemplate "ADFSEnrollmentAgent" -LogonCertificateTemplate "ADFSSSO" -EnrollmentAgent
    

    Kommentar

    Om du redan har konfigurerat en EnrollmentAgentCertificateTemplate kontrollerar du att du använder det befintliga mallnamnet i stället för ADFSEnrollmentAgent.

  2. Kör skriptet ConfigureWVDSSO.ps1.

    Kommentar

    Du behöver $config variabelvärdena för att slutföra nästa del av instruktionerna, så stäng inte det PowerShell-fönster som du använde för att slutföra föregående instruktioner. Du kan antingen fortsätta använda samma PowerShell-fönster eller lämna det öppet när du startar en ny PowerShell-session.

    • Om du använder en delad nyckel i Nyckelvalvet kör du följande PowerShell-cmdlet på AD FS-servern med ADFSServiceUrl ersatt med den fullständiga URL:en för att nå AD FS-tjänsten:

      Install-Script ConfigureWVDSSO
      $config = ConfigureWVDSSO.ps1 -ADFSAuthority "<ADFSServiceUrl>" [-WvdWebAppAppIDUri "<WVD Web App URI>"] [-RdWebURL "<RDWeb URL>"]
      

      Kommentar

      Du behöver egenskaperna WvdWebAppAppIDUri och RdWebURL för att konfigurera en miljö i ett nationellt moln som Azure Government. I Azure Commercial Cloud anges dessa egenskaper automatiskt till https://www.wvd.microsoft.com respektive https://rdweb.wvd.microsoft.com .

    • Om du använder ett certifikat i Key Vault kör du följande PowerShell-cmdlet på AD FS-servern med ADFSServiceUrl ersatt med den fullständiga URL:en för att nå AD FS-tjänsten:

      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>"]
      

      Kommentar

      Du behöver egenskaperna WvdWebAppAppIDUri och RdWebURL för att konfigurera en miljö i ett nationellt moln som Azure Government. I Azure Commercial Cloud anges dessa egenskaper automatiskt till https://www.wvd.microsoft.com respektive https://rdweb.wvd.microsoft.com .

  3. Ange åtkomstprincipen för Azure Key Vault genom att köra följande PowerShell-cmdlet:

    Set-AzKeyVaultAccessPolicy -VaultName "<Key Vault Name>" -ServicePrincipalName 9cdead84-a844-4324-93f2-b2e6bb768d07 -PermissionsToSecrets get -PermissionsToKeys sign
    
  4. Lagra den delade nyckeln eller certifikatet i Azure Key Vault med en tagg som innehåller en kommaavgränsad lista över prenumerations-ID:t som tillåts använda hemligheten.

    • Om du använder en delad nyckel i Nyckelvalvet kör du följande PowerShell-cmdlet för att lagra den delade nyckeln och ange taggen:

      $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]}
      
    • Om certifikatet redan finns i Key Vault kör du följande PowerShell-cmdlet för att ange taggen:

      $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
      
    • Om du har ett lokalt certifikat kör du följande PowerShell-cmdlet för att importera certifikatet i Key Vault och ange taggen:

      $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)
      

Kommentar

Du kan också konfigurera hur ofta användare uppmanas att ange autentiseringsuppgifter genom att ändra inställningarna för enkel inloggning med AD FS. Som standard uppmanas användarna var 8:e timme på oregistrerade enheter.

Konfigurera din Azure Virtual Desktop-värdpool

Det är dags att konfigurera AD FS SSO-parametrarna på din Azure Virtual Desktop-värdpool. Det gör du genom att konfigurera PowerShell-miljön för Azure Virtual Desktop om du inte redan har gjort det och ansluta till ditt konto.

Därefter uppdaterar du SSO-informationen för värdpoolen genom att köra någon av följande två cmdletar i samma PowerShell-fönster på den virtuella AD FS-datorn:

  • Om du använder en delad nyckel i Key Vault kör du följande PowerShell-cmdlet:

    Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType SharedKeyInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
    

    Kommentar

    Du måste ange egenskapen SsoClientId så att den matchar det Azure-moln som du distribuerar enkel inloggning i. I Azure Commercial Cloud ska den här egenskapen vara inställd på https://www.wvd.microsoft.com. Den obligatoriska inställningen för den här egenskapen kommer dock att vara annorlunda för andra moln, till exempel Azure Government-molnet.

  • Om du använder ett certifikat i Key Vault kör du följande PowerShell-cmdlet:

    Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority "<ADFSServiceUrl>" -SsoClientId "<WVD Web App URI>" -SsoSecretType CertificateInKeyVault -SsoClientSecretKeyVaultPath $secret.Id
    

    Kommentar

    Du måste ange egenskapen SsoClientId så att den matchar det Azure-moln som du distribuerar enkel inloggning i. I Azure Commercial Cloud ska den här egenskapen vara inställd på https://www.wvd.microsoft.com. Den obligatoriska inställningen för den här egenskapen kommer dock att vara annorlunda för andra moln, till exempel Azure Government-molnet.

Konfigurera ytterligare värdpooler

När du behöver konfigurera ytterligare värdpooler kan du hämta de inställningar som du använde för att konfigurera en befintlig värdpool för att konfigurera den nya.

Om du vill hämta inställningarna från din befintliga värdpool öppnar du ett PowerShell-fönster och kör den här cmdleten:

Get-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" | fl *

Du kan följa stegen för att konfigurera din Azure Virtual Desktop-värdpool med samma SsoClientId-, SsoClientSecretKeyVaultPath-, SsoSecretType- och SsoadfsAuthority-värden .

Ta bort enkel inloggning

Om du vill inaktivera enkel inloggning i värdpoolen kör du följande cmdlet:

Update-AzWvdHostPool -Name "<Host Pool Name>" -ResourceGroupName "<Host Pool Resource Group Name>" -SsoadfsAuthority ''

Om du också vill inaktivera enkel inloggning på AD FS-servern kör du den här cmdleten:

Install-Script UnConfigureWVDSSO
UnConfigureWVDSSO.ps1 -WvdWebAppAppIDUri "<WVD Web App URI>" -WvdClientAppApplicationID "a85cf173-4192-42f8-81fa-777a763e6e2c"

Kommentar

Egenskapen WvdWebAppAppIDUri måste matcha det Azure-moln som du distribuerar i. I Azure Commercial Cloud är https://www.wvd.microsoft.comden här egenskapen . Det kommer att vara annorlunda för andra moln som Azure Government-molnet.

Nästa steg

Nu när du har konfigurerat enkel inloggning kan du logga in på en Azure Virtual Desktop-klient som stöds för att testa den som en del av en användarsession. Om du vill lära dig hur du ansluter till en session med dina nya autentiseringsuppgifter kan du läsa följande artiklar: