Condividi tramite


Configurare l'accesso Single Sign-On per Desktop virtuale Azure con AD FS

Questo articolo illustra il processo di configurazione dell'accesso Single Sign-On (SSO) di Active Directory Federation Service (AD FS) per Desktop virtuale Azure.

Nota

Desktop virtuale Azure (versione classica) non supporta questa funzionalità.

Prerequisiti

Prima di configurare l'accesso Single Sign-On di AD FS, è necessario disporre della configurazione seguente in esecuzione nell'ambiente:

  • Host di sessione che eseguono una versione supportata di Windows 10 o Windows 11.

  • È necessario distribuire il ruolo Servizi certificati Active Directory. Tutti i server che eseguono il ruolo devono essere aggiunti a un dominio, avere installato gli aggiornamenti di Windows più recenti e essere configurati come autorità di certificazione aziendali.

  • È necessario distribuire il ruolo Active Directory Federation Services (AD FS). Tutti i server che eseguono questo ruolo devono essere aggiunti a un dominio, avere installato gli aggiornamenti di Windows più recenti ed eseguire Windows Server 2016 o versione successiva. Per iniziare a configurare questo ruolo, vedere l'esercitazione sulla federazione.

  • È consigliabile configurare il ruolo Proxy applicazione Web per proteggere la connessione dell'ambiente ai server AD FS. Tutti i server che eseguono questo ruolo devono avere installato gli aggiornamenti di Windows più recenti ed eseguire Windows Server 2016 o versione successiva. Per iniziare a configurare questo ruolo, vedere questa guida al proxy applicazione Web.

  • È necessario distribuire Microsoft Entra Connessione per sincronizzare gli utenti con Microsoft Entra ID. Microsoft Entra Connessione deve essere configurato in modalità federativa.

  • Configurare l'ambiente PowerShell per Desktop virtuale Azure nel server AD FS.

Nota

Questa soluzione non è supportata con Microsoft Entra Domain Services. È necessario usare un controller di dominio Dominio di Active Directory Services.

Client supportati

I client Desktop virtuale Azure seguenti supportano questa funzionalità:

Configurare l'autorità di certificazione per rilasciare certificati

È necessario creare correttamente i modelli di certificato seguenti in modo che AD FS possa usare l'accesso SSO:

  • Prima di tutto, è necessario creare il modello di certificato dell'agente di registrazione di Exchange (richiesta offline). AD FS usa il modello di certificato dell'agente di registrazione di Exchange per richiedere i certificati per conto dell'utente.
  • Sarà anche necessario creare il modello di certificato di accesso smart card , che AD FS userà per creare il certificato di accesso.

Dopo aver creato questi modelli di certificato, è necessario abilitare i modelli nell'autorità di certificazione in modo che AD FS possa richiederli.

Nota

Questa soluzione genera nuovi certificati a breve termine ogni volta che un utente accede, che può riempire il database dell'autorità di certificazione se si hanno molti utenti. È possibile evitare l'overload del database configurando una CA per l'elaborazione di certificati non persistenti. In questo caso, nel modello di certificato di accesso tramite smart card duplicato assicurarsi di abilitare solo Non archiviare certificati e richieste nel database della CA. Non abilitare Non includere le informazioni di revoca nei certificati rilasciati o la configurazione non funzionerà.

Creare il modello di certificato dell'agente di registrazione

A seconda dell'ambiente, potrebbe essere già stato configurato un modello di certificato dell'agente di registrazione per altri scopi, ad esempio Windows Hello for Business, certificati di accesso o certificati VPN. In questo caso, sarà necessario modificarlo per supportare l'accesso SSO. In caso contrario, è possibile creare un nuovo modello.

Per determinare se si usa già un modello di certificato dell'agente di registrazione, eseguire il comando di PowerShell seguente nel server AD FS e verificare se viene restituito un valore. Se è vuoto, creare un nuovo modello di certificato dell'agente di registrazione. In caso contrario, ricordare il nome e aggiornare il modello di certificato dell'agente di registrazione esistente.

Import-Module adfs
(Get-AdfsCertificateAuthority).EnrollmentAgentCertificateTemplateName

Per creare un nuovo modello di certificato dell'agente di registrazione:

  1. Nell'autorità di certificazione eseguire mmc.exe dal menu Start per avviare Microsoft Management Console.

  2. Selezionare File...>Aggiungi snap-in remoto...>Modelli>di certificato Aggiungi >>OK per visualizzare l'elenco dei modelli di certificato.

  3. Espandere i modelli di certificato, fare clic con il pulsante destro del mouse su Exchange Enrollment Agent (richiesta offline) e selezionare Duplica modello.

  4. Selezionare la scheda Generale , quindi immettere "AGENTE di registrazione ADFS" nel campo Nome visualizzato modello. Il nome del modello verrà impostato automaticamente su "ADF edizione Standard nrollmentAgent".

  5. Selezionare la scheda Sicurezza e quindi Aggiungi....

  6. Selezionare quindi Tipi di oggetto, quindi Account di servizio e quindi OK.

  7. Immettere il nome dell'account del servizio per AD FS e selezionare OK.

    • In un'installazione di AD FS isolata, l'account del servizio sarà denominato "adfssvc$"
    • Se si configura AD FS usando Microsoft Entra Connessione, l'account del servizio sarà denominato "aadcsvc$"
  8. Dopo aver aggiunto l'account del servizio ed è visibile nella scheda Sicurezza , selezionarlo nel riquadro Gruppi o nomi utente, selezionare Consenti per "Registra" e "Registrazione automatica" nel riquadro Autorizzazioni per l'account del servizio AD FS, quindi selezionare OK per salvare.

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

Per aggiornare un modello di certificato dell'agente di registrazione esistente:

  1. Nell'autorità di certificazione eseguire mmc.exe dal menu Start per avviare Microsoft Management Console.
  2. Selezionare File...>Aggiungi snap-in remoto...>Modelli>di certificato Aggiungi >>OK per visualizzare l'elenco dei modelli di certificato.
  3. Espandere i modelli di certificato, fare doppio clic sul modello corrispondente a quello configurato nel server AD FS. Nella scheda Generale il nome del modello deve corrispondere al nome trovato in precedenza.
  4. Selezionare la scheda Sicurezza e quindi Aggiungi....
  5. Selezionare quindi Tipi di oggetto, quindi Account di servizio e quindi OK.
  6. Immettere il nome dell'account del servizio per AD FS e selezionare OK.
    • In un'installazione di AD FS isolata, l'account del servizio sarà denominato "adfssvc$"
    • Se si configura AD FS usando Microsoft Entra Connessione, l'account del servizio sarà denominato "aadcsvc$"
  7. Dopo aver aggiunto l'account del servizio ed è visibile nella scheda Sicurezza , selezionarlo nel riquadro Gruppi o nomi utente, selezionare Consenti per "Registra" e "Registrazione automatica" nel riquadro Autorizzazioni per l'account del servizio AD FS, quindi selezionare OK per salvare.

Creare il modello di certificato di accesso smart card

Per creare il modello di certificato di accesso smart card:

  1. Nell'autorità di certificazione eseguire mmc.exe dal menu Start per avviare Microsoft Management Console.

  2. Selezionare File...>Aggiungi snap-in remoto...>Modelli>di certificato Aggiungi>OK per visualizzare l'elenco dei modelli di certificato.

  3. Espandere i modelli di certificato, fare clic con il pulsante destro del mouse su Accesso smart card e selezionare Duplica modello.

  4. Selezionare la scheda Generale, quindi immettere "ADFS SSO" nel campo Nome visualizzato modello. Il nome del modello verrà impostato automaticamente su "ADFSSSO".

    Nota

    Poiché questo certificato è richiesto su richiesta, è consigliabile abbreviare il periodo di validità a 8 ore e il periodo di rinnovo a 1 ora.

  5. Selezionare la scheda Nome soggetto e quindi selezionare Specifica nella richiesta. Quando viene visualizzato un messaggio di avviso, selezionare OK.

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

  6. Selezionare la scheda Requisiti di rilascio.

  7. Selezionare Questo numero di firme autorizzate e immettere il valore 1.

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

  8. Per Criteri applicazione selezionare Agente richiesta certificato.

  9. Selezionare la scheda Sicurezza e quindi Aggiungi....

  10. Selezionare Tipi di oggetto, Account del servizio e OK.

  11. Immettere il nome dell'account del servizio per AD FS esattamente come è stato fatto nella sezione Creare il modello di certificato dell'agente di registrazione.

    • In un'installazione di AD FS isolata, l'account del servizio sarà denominato "adfssvc$"
    • Se si configura AD FS usando Microsoft Entra Connessione, l'account del servizio sarà denominato "aadcsvc$"
  12. Dopo aver aggiunto l'account del servizio ed è visibile nella scheda Sicurezza , selezionarlo nel riquadro Gruppi o nomi utente, selezionare Consenti per "Registra" e "Registrazione automatica", quindi selezionare OK per salvare.

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

Abilitare i nuovi modelli di certificato:

Per abilitare i nuovi modelli di certificato:

  1. Nell'autorità di certificazione eseguire mmc.exe dal menu Start per avviare Microsoft Management Console.

  2. Selezionare File...>Aggiungi/Rimuovi snap-in...>Autorità di>certificazione Aggiungi>> fine> e OK per visualizzare l'autorità di certificazione.

  3. Espandere Autorità di certificazione nel riquadro sinistro e aprire Modelli di certificato.

  4. Fare clic con il pulsante destro del mouse nel riquadro centrale che mostra l'elenco dei modelli di certificato, selezionare Nuovo, quindi selezionare Modello di certificato da rilasciare.

  5. Selezionare sia AGENTE di registrazione ADFS che ADFS SSO, quindi selezionare OK. Entrambi i modelli dovrebbero essere visualizzati nel riquadro centrale.

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

    Nota

    Se è già configurato un modello di certificato dell'agente di registrazione, è sufficiente aggiungere il modello SSO DI ADFS.

Configurare il server ADFS

È necessario configurare i server Active Directory Federation Services (AD FS) per usare i nuovi modelli di certificato e impostare l'attendibilità della relying party per supportare l'accesso SSO.

L'attendibilità della relying party tra il server AD FS e il servizio Desktop virtuale Azure consente l'inoltro corretto delle richieste di certificati Single Sign-On all'ambiente di dominio.

Quando si configura l'accesso Single Sign-On di AD FS, è necessario scegliere la chiave condivisa o il certificato:

  • Se si dispone di un singolo server AD FS, è possibile scegliere una chiave condivisa o un certificato.
  • Se si dispone di più server AD FS, è necessario scegliere il certificato.

La chiave condivisa o il certificato usato per generare il token per accedere a Windows deve essere archiviato in modo sicuro in Azure Key Vault. È possibile archiviare il segreto in un insieme di credenziali delle chiavi esistente o distribuirne uno nuovo. In entrambi i casi, è necessario assicurarsi di impostare i criteri di accesso corretti in modo che il servizio Desktop virtuale Azure possa accedervi.

Quando si usa un certificato, è possibile usare qualsiasi certificato per utilizzo generico e non è necessario specificare il nome soggetto o il nome alternativo soggetto (SAN). Sebbene non sia necessario, è consigliabile creare un certificato emesso da un'autorità di certificazione valida. Questo certificato può essere creato direttamente in Azure Key Vault e deve avere una chiave privata esportabile. La chiave pubblica può essere esportata e usata per configurare il server AD FS usando lo script seguente. Si noti che questo certificato è diverso dal certificato SSL di AD FS che deve avere un nome soggetto appropriato e un'autorità di certificazione valida.

Lo script di PowerShell ConfigureWVDSSO.ps1 disponibile in PowerShell Gallery configurerà il server AD FS per l'attendibilità della relying party e installerà il certificato, se necessario.

Questo script ha un solo parametro obbligatorio, ADFSAuthority, ovvero l'URL che si risolve in AD FS e usa "/adfs" come suffisso. Ad esempio: https://adfs.contoso.com/adfs.

  1. Nelle macchine virtuali AD FS eseguire il cmdlet di PowerShell seguente per configurare AD FS in modo da usare i modelli di certificato della sezione precedente:

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

    Nota

    Se è già configurato enrollmentAgentCertificateTemplate, assicurarsi di usare il nome del modello esistente anziché ADF edizione Standard nrollmentAgent.

  2. Eseguire lo script ConfigureWVDSSO.ps1.

    Nota

    Sono necessari i valori delle $config variabili per completare la parte successiva delle istruzioni, quindi non chiudere la finestra di PowerShell usata per completare le istruzioni precedenti. È possibile continuare a usare la stessa finestra di PowerShell o lasciarla aperta durante l'avvio di una nuova sessione di PowerShell.

    • Se si usa una chiave condivisa nell'insieme di credenziali delle chiavi, eseguire il cmdlet di PowerShell seguente nel server AD FS con ADFSServiceUrl sostituito con l'URL completo per raggiungere il servizio AD FS:

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

      Nota

      Sono necessarie le proprietà WvdWebAppAPPIDUri e RdWebURL per configurare un ambiente in un cloud sovrano, ad esempio Azure per enti pubblici. Nel cloud commerciale di Azure queste proprietà vengono impostate automaticamente rispettivamente su https://www.wvd.microsoft.com e https://rdweb.wvd.microsoft.com .

    • Se si usa un certificato nell'insieme di credenziali delle chiavi, eseguire il cmdlet di PowerShell seguente nel server AD FS con ADFSServiceUrl sostituito con l'URL completo per raggiungere il servizio 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>"]
      

      Nota

      Sono necessarie le proprietà WvdWebAppAPPIDUri e RdWebURL per configurare un ambiente in un cloud sovrano, ad esempio Azure per enti pubblici. Nel cloud commerciale di Azure queste proprietà vengono impostate automaticamente rispettivamente su https://www.wvd.microsoft.com e https://rdweb.wvd.microsoft.com .

  3. Impostare i criteri di accesso in Azure Key Vault eseguendo il cmdlet di PowerShell seguente:

    Set-AzKeyVaultAccessPolicy -VaultName "<Key Vault Name>" -ServicePrincipalName 9cdead84-a844-4324-93f2-b2e6bb768d07 -PermissionsToSecrets get -PermissionsToKeys sign
    
  4. Archiviare la chiave condivisa o il certificato in Azure Key Vault con un tag contenente un elenco separato coma di ID sottoscrizione autorizzati a usare il segreto.

    • Se si usa una chiave condivisa nell'insieme di credenziali delle chiavi, eseguire il cmdlet di PowerShell seguente per archiviare la chiave condivisa e impostare il 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]}
      
    • Se il certificato è già presente nell'insieme di credenziali delle chiavi, eseguire il cmdlet di PowerShell seguente per impostare il 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
      
    • Se si dispone di un certificato locale, eseguire il cmdlet di PowerShell seguente per importare il certificato nell'insieme di credenziali delle chiavi e impostare il 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)
      

Nota

Facoltativamente, è possibile configurare la frequenza con cui agli utenti vengono richieste le credenziali modificando le impostazioni di Single Sign-On di AD FS. Per impostazione predefinita, agli utenti verrà richiesto ogni 8 ore nei dispositivi non registrati.

Configurare il pool di host di Desktop virtuale Azure

È possibile configurare i parametri SSO di AD FS nel pool di host di Desktop virtuale Azure. A tale scopo, configurare l'ambiente PowerShell per Desktop virtuale Azure, se non è già stato fatto e ci si connette all'account.

Successivamente, aggiornare le informazioni sull'accesso Single Sign-On per il pool di host eseguendo uno dei due cmdlet seguenti nella stessa finestra di PowerShell nella macchina virtuale AD FS:

  • Se si usa una chiave condivisa nell'insieme di credenziali delle chiavi, eseguire il cmdlet di PowerShell seguente:

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

    Nota

    È necessario impostare la proprietà SsoClientId in modo che corrisponda al cloud di Azure in cui si distribuisce l'accesso SSO. Nel cloud commerciale di Azure questa proprietà deve essere impostata su https://www.wvd.microsoft.com. Tuttavia, l'impostazione necessaria per questa proprietà sarà diversa per altri cloud, ad esempio il cloud Azure per enti pubblici.

  • Se si usa un certificato nell'insieme di credenziali delle chiavi, eseguire il cmdlet di PowerShell seguente:

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

    Nota

    È necessario impostare la proprietà SsoClientId in modo che corrisponda al cloud di Azure in cui si distribuisce l'accesso SSO. Nel cloud commerciale di Azure questa proprietà deve essere impostata su https://www.wvd.microsoft.com. Tuttavia, l'impostazione necessaria per questa proprietà sarà diversa per altri cloud, ad esempio il cloud Azure per enti pubblici.

Configurare pool di host aggiuntivi

Quando è necessario configurare pool di host aggiuntivi, è possibile recuperare le impostazioni usate per configurare un pool di host esistente per configurare quello nuovo.

Per recuperare le impostazioni dal pool di host esistente, aprire una finestra di PowerShell ed eseguire questo cmdlet:

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

È possibile seguire la procedura per configurare il pool di host di Desktop virtuale Azure usando gli stessi valori di SsoClientId, SsoClientSecretKeyVaultPath, SsoSecretType e SsoadfsAuthority .

Rimozione dell'accesso SSO

Per disabilitare l'accesso Single Sign-On nel pool di host, eseguire il cmdlet seguente:

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

Se si vuole anche disabilitare l'accesso SSO nel server AD FS, eseguire questo cmdlet:

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

Nota

La proprietà WvdWebAppIDUri deve corrispondere al cloud di Azure in cui si esegue la distribuzione. Nel cloud commerciale di Azure questa proprietà è https://www.wvd.microsoft.com. Sarà diverso per altri cloud, ad esempio il cloud Azure per enti pubblici.

Passaggi successivi

Dopo aver configurato l'accesso Single Sign-On, è possibile accedere a un client di Desktop virtuale Azure supportato per testarlo come parte di una sessione utente. Per informazioni su come connettersi a una sessione usando le nuove credenziali, vedere gli articoli seguenti: