Citrix DaaS

Creare cataloghi aggiunti ad Azure Active Directory

In questo articolo viene descritto come creare cataloghi aggiunti ad Azure Active Directory (AD) utilizzando Citrix DaaS.

Per informazioni su requisiti, limitazioni e considerazioni, vedere Macchine aggiunte ad Azure Active Directory.

Prima di creare il catalogo di macchina, è necessario quanto segue:

  1. Nuova posizione risorsa
    • Accedere all’interfaccia utente di amministrazione di Citrix Cloud > menu hamburger in alto a sinistra > Resource Locations (Posizioni risorsa).
    • Fare clic su + Resource Location (+ Posizione risorsa).
    • Immettere un nome per la nuova posizione risorsa e fare clic su Save (Salva).
  2. Creare una connessione host. Per i dettagli, vedere la sezione Creare e gestire connessioni. Quando si distribuiscono macchine in Azure, vedere Connettersi ad Azure Resource Manager.
  3. Per eliminare sistematicamente i dispositivi Azure AD obsoleti e consentire ai nuovi dispositivi di essere aggiunti ad Azure AD, è possibile assegnare il ruolo di amministratore dei dispositivi cloud all’entità servizio di provisioning. Se non si eliminano i dispositivi AD di Azure non aggiornati, la macchina virtuale non persistente corrispondente rimane in stato di inizializzazione finché non viene rimossa manualmente dal portale di Azure AD. A tale scopo, abilitare la gestione delle connessioni host dei dispositivi aggiunti ad Azure AD utilizzando l’interfaccia Full Configuration o seguire i seguenti passaggi:

    1. Accedere al portale di Azure e passare ad Azure Active Directory > Ruoli e amministratori.
    2. Cercare il ruolo incorporato di Cloud Device Administrator e fai clic su Aggiungi assegnazioni per assegnare il ruolo al responsabile del servizio dell’applicazione utilizzata dalla connessione di hosting.
    3. Utilizzare l’SDK Citrix Remote PowerShell per eseguire i seguenti comandi per ottenere le CustomProperties esistenti della connessione di hosting. La stringa ${HostingConnectionName} si riferisce al nome della connessione di hosting.

      1. Aprire una finestra di PowerShell.
      2. Eseguire il comando asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
      3. Eseguire il comando che segue per ottenere le proprietà personalizzate esistenti della connessione di hosting.

        (Get-Item -LiteralPath XDHyp:\Connections${HostingConnectionName}).CustomProperties
        <!--NeedCopy-->
        
      4. Copiare CustomProperties dalla connessione a un blocco note e aggiungere l’impostazione della proprietà <Property xsi:type="StringProperty" Name="AzureAdDeviceManagement" Value="true" />.
      5. Nella finestra di PowerShell assegnare una variabile alle proprietà personalizzate modificate. Ad esempio, $UpdatedCustomProperties=’<CustomProperties …</CustomProperties>’.
      6. Reimpostare la proprietà personalizzata sulla connessione di hosting:

        Set-Item -LiteralPath XDHyp:\Connections${HostingConnectionName} -CustomProperties ${UpdatedCustomProperties} -ZoneUid ${ZoneUid}
        <!--NeedCopy-->
        
      7. Eseguire il comando (Get-Item -LiteralPath XDHyp:\Connections\${HostingConnectionName}).CustomProperties per verificare le impostazioni delle proprietà personalizzate aggiornate.

È possibile creare cataloghi aggiunti ad Azure AD utilizzando l’interfaccia Full Configuration (Configurazione completa) o PowerShell.

Utilizzare l’interfaccia Full Configuration

Le seguenti informazioni sono un’aggiunta alle linee guida della sezione Creare cataloghi delle macchine. Per creare cataloghi aggiunti ad Azure AD, seguire le linee guida generali in quell’articolo, tenendo conto dei dettagli specifici dei cataloghi aggiunti ad Azure AD.

Nella procedura guidata per la creazione del catalogo:

  1. Nella pagina Master Image (Immagine master):
    • Selezionare 2106 o successivo come livello funzionale.
    • Selezionare Use a machine profile (Usa un profilo macchina) e selezionare il computer appropriato dall’elenco.
  2. Nella pagina Machine Identities (Identità macchine), selezionare Azure Active Directory joined (Aggiunta ad Azure Active Directory). Le macchine create sono di proprietà di un’organizzazione e sono connesse con un account Azure AD appartenente a tale organizzazione. Esistono solo nel cloud.

    Nota:

    • Il tipo di identità Azure Active Directory joined (Aggiunta ad Azure Active Directory) richiede la versione 2106 o successiva come livello di funzionalità minimo per il catalogo.
    • Le macchine vengono aggiunte al dominio Azure AD associato al tenant a cui è associata la connessione di hosting.
  3. Agli utenti deve essere concesso l’accesso esplicito in Azure per accedere alle macchine utilizzando le proprie credenziali AAD. Vedere la sezione Azure Active Directory joined per maggiori dettagli.

Utilizzare PowerShell

Di seguito sono riportati i passaggi di PowerShell equivalenti alle operazioni nell’interfaccia Full Configuration. Per informazioni su come creare un catalogo utilizzando l’SDK Remote PowerShell, vedere https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.

La differenza tra i cataloghi aggiunti ad AD on-premise e quelli aggiunti ad Azure AD sta nella creazione del pool di identità e dello schema di provisioning.

Per creare un pool di identità per i cataloghi aggiunti ad Azure AD:

New-AcctIdentityPool -AllowUnicode -IdentityType="AzureAD" -WorkgroupMachine -IdentityPoolName "AzureADJoinedCatalog" -NamingScheme "AzureAD-VM-##" -NamingSchemeType "Numeric" -Scope @() -ZoneUid "81291221-d2f2-49d2-ab12-bae5bbd0df05"
<!--NeedCopy-->

Per creare uno schema di provisioning per i cataloghi aggiunti ad Azure AD, il parametro MachineProfile è richiesto in New-ProvScheme:

New-ProvScheme -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"StandardSSD_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`" /></CustomProperties>" -HostingUnitName "AzureResource" -IdentityPoolName "AzureADJoinedCatalog" -InitialBatchSizeHint 1 -MachineProfile "XDHyp:\HostingUnits\AzureResource\image.folder\azuread-rg.resourcegroup\MasterVDA.vm" -MasterImageVM "XDHyp:\HostingUnits\AzureResource\image.folder\azuread-rg.resourcegroup\azuread-small_OsDisk_1_5fb42fadf7ff460bb301ee0d56ea30da.manageddisk" -NetworkMapping @{"0"="XDHyp:\HostingUnits\AzureResource\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\azuread-rg.resourcegroup\azuread-vnet.virtualprivatecloud\Test_VNET.network"} -ProvisioningSchemeName "AzureADJoinedCatalog" -RunAsynchronously -Scope @() -SecurityGroup @() -ServiceOffering "XDHyp:\HostingUnits\AzureResource\serviceoffering.folder\Standard_DS1_v2.serviceoffering"
<!--NeedCopy-->

Tutti gli altri comandi utilizzati per creare cataloghi aggiunti ad Azure AD sono gli stessi dei tradizionali cataloghi aggiunti ad AD on-premise.

Visualizzare lo stato del processo di join di Azure AD

Nell’interfaccia Full Configuration (Configurazione completa), lo stato del processo di join di Azure AD è visibile quando le macchine aggiunte ad Azure AD in un gruppo di consegna sono in uno stato di accensione. Per visualizzare lo stato, utilizzare Search (Cerca) per identificare tali macchine e quindi per ogni controllo Machine Identity (Identità macchina) nella scheda Details (Dettagli) nel riquadro inferiore. In Machine Identity (Identità macchina) possono essere visualizzate le seguenti informazioni:

  • Aggiunte ad Azure AD
  • Not yet joined to Azure AD (Non ancora aggiunta ad Azure AD)

Nota:

Se le macchine non si trovano nello stato Azure AD joined (Aggiunta ad Azure AD), non vengono registrate con il Delivery Controller. Lo stato di registrazione è Initialization (Inizializzazione).

Inoltre, utilizzando l’interfaccia Full Configuration (Configurazione completa), è possibile scoprire perché le macchine non sono disponibili. A tale scopo, fare clic su una macchina nel nodo Search (Cerca), selezionare Registration (Registrazione) nella scheda Details (Dettagli) nel riquadro inferiore, quindi leggere la descrizione comando per ulteriori informazioni.

Gruppo di consegna

Per i dettagli, vedere la sezione Creare gruppi di consegna.

Abilitare Rendezvous

Una volta creato il gruppo di consegna, è possibile abilitare Rendezvous. Per i dettagli, vedere Rendezvous V2.

Risoluzione dei problemi

Se l’aggiunta delle macchine ad Azure AD non va a buon fine, procedere come segue:

  • Controllare se l’identità gestita assegnata al sistema è abilitata per le macchine. Le macchine di cui è stato eseguito il provisioning con MCS devono avere questa opzione abilitata automaticamente. Il processo di aggiunta ad Azure AD fallisce senza che al sistema venga assegnata un’identità gestita. Se l’identità gestita assegnata al sistema non è abilitata per le macchine di cui è stato eseguito il provisioning con MCS, il motivo possibile è:

    • IdentityType del pool di identità associato allo schema di provisioning non è impostato su AzureAD. È possibile verificarlo eseguendo Get-AcctIdentityPool.
  • Controllare lo stato di provisioning dell’estensione AADLoginForWindows per le macchine. MCS fa affidamento su questa estensione per aggiungere una macchina virtuale ad Azure AD. Se l’estensione AADLoginForWindows non esiste, i possibili motivi sono:

    • IdentityType del pool di identità associato allo schema di provisioning non è impostato su AzureAD. È possibile verificarlo eseguendo Get-AcctIdentityPool.

    • L’installazione dell’estensione AADLoginForWindows è bloccata dalla politica di Azure.

  • Per risolvere gli errori di assegnazione dell’estensione AADLoginForWindows, è possibile controllare i registri in C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.ActiveDirectory.AADLoginForWindows nella macchina di cui è stato eseguito il provisioning con MCS.

  • Controllare lo stato di accesso e i registri di debug di Azure AD eseguendo il comando dsregcmd /status /debug sulla macchina di cui è stato eseguito il provisioning con MCS.

  • Controllare i registri degli eventi di Windows in Registri applicazioni e servizi > Microsoft > Windows > User Device Registration (Registrazione del dispositivo utente).
  • Verificare se la gestione dei dispositivi Azure AD è configurata correttamente eseguendo Get-Item -LiteralPath XDHyp:\Connections\${HostingConnectionName}.

    Assicurarsi che il valore della:

    • proprietà AzureAdDeviceManagement in CustomProperties sia true
    • proprietà Citrix_MCS_AzureAdDeviceManagement_PermissionGranted nei metadati sia true

    Se Citrix_MCS_AzureAdDeviceManagement_PermissionGranted è false, significa che il ServicePrincipal dell’applicazione utilizzata dalla connessione di hosting non dispone di autorizzazioni sufficienti per eseguire la gestione dei dispositivi Azure AD. Per risolvere questo problema, assegnare a ServicePrincipal il ruolo di amministratore del dispositivo cloud.

Gruppo di sicurezza dinamico di Azure Active Directory

Le regole di gruppo dinamico collocano le VM del catalogo in un gruppo di sicurezza dinamico basato sullo schema di denominazione del catalogo delle macchine.

Se lo schema di denominazione del catalogo delle macchine è Test### (dove # sta per un numero), Citrix crea la regola di appartenenza dinamica ^Test[0-9]{3}$ nel gruppo di sicurezza dinamico. Ora, se il nome della macchina virtuale creata da Citrix è compreso tra Test001 e Test999, la VM è inclusa nel gruppo di sicurezza dinamico.

Nota:

Se il nome della macchina virtuale creata manualmente è compreso tra Test001 e Test999, anche in quel caso la VM è inclusa nel gruppo di sicurezza dinamico. Questa è una delle limitazioni del gruppo di sicurezza dinamico.

La funzionalità dei gruppi di sicurezza dinamici è utile quando si desidera gestire le macchine virtuali tramite Azure Active Directory (Azure AD). È utile anche quando si desidera applicare i criteri di accesso condizionale o distribuire app da Intune filtrando le macchine virtuali con il gruppo di sicurezza dinamico di Azure AD.

È possibile utilizzare i comandi PowerShell per:

  • Creare un catalogo di macchine con il gruppo di sicurezza dinamico di Azure AD
  • Abilitare la funzionalità dei gruppi di sicurezza per un catalogo Azure AD
  • Eliminare un catalogo di macchine con il gruppo di sicurezza dei dispositivi aggiunto ad Azure AD

Importante:

  • Per creare un catalogo di macchine con il gruppo di sicurezza dinamico di Azure AD, aggiungere macchine al catalogo ed eliminare il catalogo di macchine, è necessario disporre del token di accesso di Azure AD. Per informazioni su come ottenere il token di accesso ad Azure AD, vedere https://docs.microsoft.com/en-us/graph/graph-explorer/graph-explorer-features#consent-to-permissions/.
  • Per richiedere un token di accesso in Azure AD, Citrix richiede l’autorizzazione Group.ReadWrite.All per l’API Microsoft Graph. Un utente di Azure AD che dispone dell’autorizzazione per il consenso di amministratore a livello di tenant può concedere l’autorizzazione Group.ReadWrite.All all’API Microsoft Graph. Per informazioni su come concedere il consenso di amministratore a livello di tenant a un’applicazione in Azure Active Directory (Azure AD), vedere il documento Microsoft https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/grant-admin-consent/.

Creare un catalogo di macchine con il gruppo di sicurezza dinamico di Azure AD

  1. Nell’interfaccia utente di configurazione del catalogo macchine della console basata sul Web, nella pagina Machine Identities, selezionare Azure Active Directory joined.
  2. Accedere ad Azure AD.
  3. Ottenere il token di accesso all’API MS Graph. Utilizzare questo token di accesso come valore del parametro $AzureADAccessToken quando si eseguono i comandi PowerShell.
  4. Eseguire il comando seguente per verificare se il nome del gruppo di sicurezza dinamico esiste nel tenant.

    Get-AcctAzureADSecurityGroup
    –AccessToken  $AzureADAccessToken
    –Name "SecurityGroupName"
    <!--NeedCopy-->
    
  5. Creare un catalogo di macchine utilizzando l’ID tenant, il token di accesso e il gruppo di sicurezza dinamico. Eseguire il comando seguente per creare un IdentityPool con IdentityType=AzureAD e creare un gruppo di sicurezza dinamico in Azure.

    New-AcctIdentityPool
    -AllowUnicode
    -IdentityPoolName "SecurityGroupCatalog"
    -NamingScheme "SG-VM-###"
    -NamingSchemeType "Numeric" -Scope @()
    -ZoneUid "81291221-d2f2-49d2-ab12-bae5bbd0df05"
    -WorkgroupMachine
    -IdentityType "AzureAD"
    -DeviceManagementType "None"
    -AzureADTenantId  620387bb-9167-4bdd-8435-e3dccc58369e
    -AzureADSecurityGroupName "SecurityGroupName"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Abilitare la funzionalità dei gruppi di sicurezza per un catalogo Azure AD

È possibile abilitare la funzionalità di sicurezza dinamica per un catalogo di Azure AD creato senza abilitare la funzionalità del gruppo di sicurezza dinamico. A questo scopo:

  1. Creare manualmente un nuovo gruppo di sicurezza dinamico. È anche possibile riutilizzare un gruppo di sicurezza dinamico esistente.
  2. Accedere ad Azure AD e ottenere il token di accesso all’API MS Graph. Utilizzare questo token di accesso come valore del parametro $AzureADAccessToken quando si eseguono i comandi PowerShell.

    Nota:

    Per informazioni sulle autorizzazioni richieste dall’utente di Azure AD, vedere https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/grant-admin-consent#prerequisites/.

  3. Eseguire il comando seguente per connettere il pool di identità al gruppo di sicurezza dinamico di Azure AD creato.

    Set-AcctIdentityPool
    -IdentityPoolName "SecurityGroupCatalog"
    -AzureADTenantId 620387bb-9167-4bdd-8435-e3dccc58369e
    -AzureADSecurityGroupNam "ExistingSecurityGroupName"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Se si aggiorna lo schema di denominazione, Citrix aggiorna lo schema di denominazione a una nuova regola di appartenenza. Se si elimina il catalogo, viene eliminata la regola di appartenenza e non il gruppo di sicurezza.

Eliminare un catalogo di macchine con il gruppo di sicurezza dei dispositivi aggiunto ad Azure AD

Quando si elimina un catalogo di macchine, viene eliminato anche il gruppo di sicurezza dei dispositivi aggiunti ad Azure AD.

Per eliminare il gruppo di sicurezza dinamico di Azure AD, procedere come segue:

  1. Accedere ad Azure AD.
  2. Ottenere il token di accesso all’API MS Graph. Utilizzare questo token di accesso come valore del parametro $AzureADAccessToken quando si eseguono i comandi PowerShell.
  3. Eseguire il seguente comando:

    Remove-AcctIdentityPool
    -IdentityPoolName "SecurityGroupCatalog"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Creare un gruppo di sicurezza dinamico di Azure AD in un gruppo di sicurezza assegnato ad Azure AD esistente

È possibile creare un gruppo di sicurezza dinamico di Azure AD all’interno di un gruppo di sicurezza assegnato ad Azure AD esistente. È possibile procedere come segue:

  • Ottenere informazioni sui gruppi di sicurezza.
  • Ottenere tutti i gruppi di sicurezza assegnati ad Azure AD che sono sincronizzati dal server AD locale o i gruppi di sicurezza assegnati a cui è possibile assegnare i ruoli di Azure AD.
  • Ottenere tutti i gruppi di sicurezza dinamici di Azure AD.
  • Aggiungere il gruppo di sicurezza dinamico di Azure AD come membro del gruppo assegnato ad Azure AD.
  • Rimuovere l’appartenenza tra il gruppo di sicurezza dinamico di Azure AD e il gruppo di sicurezza assegnato ad Azure AD quando il gruppo di sicurezza dinamico di Azure AD viene eliminato insieme al catalogo macchine.

È inoltre possibile visualizzare messaggi di errore espliciti in caso di non riuscita di una o più delle operazioni.

Requisito:

È necessario disporre del token di accesso all’API MS Graph quando si eseguono i comandi PowerShell.

Per ottenere il token di accesso:

  1. Aprire Microsoft Graph explorer e accedere ad Azure AD.
  2. Assicurarsi di disporre del consenso per le autorizzazioni Group.ReadWrite.All e GroupMember.ReadWrite.All.
  3. Ottenere il token di accesso da Microsoft Graph explorer. Utilizzare questo token di accesso quando si eseguono i comandi PowerShell.

Per ottenere informazioni sui gruppi di sicurezza in base all’ID del gruppo:

  1. Ottenere il token di accesso.
  2. Trovare l’ID dell’oggetto del gruppo nel portale di Azure.
  3. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token> -GroupId <GroupUid>
    <!--NeedCopy-->
    

Per ottenere i gruppi di sicurezza in base al nome visualizzato del gruppo:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Name <TargetGroupDisplayName>
    <!--NeedCopy-->
    

Per ottenere i gruppi di sicurezza il cui nome visualizzato contiene una sottostringa:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -SearchString <displayNameSubString>
    <!--NeedCopy-->
    

Per ottenere tutti i gruppi di sicurezza assegnati ad Azure AD sincronizzati dal server AD locale o i gruppi di sicurezza assegnati a cui è possibile assegnare i ruoli di Azure AD:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Assigned true
    <!--NeedCopy-->
    

Per ottenere tutti i gruppi di sicurezza dinamici di Azure AD:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Dynamic true
    <!--NeedCopy-->
    

Per ottenere i gruppi di sicurezza assegnati ad Azure AD con il numero massimo di record:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroup
    -AccessToken <token>
    -Assigned true
    -MaxRecordCount 10
    <!--NeedCopy-->
    

Per aggiungere il gruppo di sicurezza dinamico di Azure AD come membro del gruppo di sicurezza assegnato ad Azure AD:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Add-AcctAzureADSecurityGroupMember
    -AccessToken <token>
    -GroupId <ASG-Id>
    -RefGroupId <DSG-Id>
    <!--NeedCopy-->
    

Per ottenere i membri del gruppo di sicurezza assegnati ad Azure AD:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Get-AcctAzureADSecurityGroupMember
    -AccessToken <token>
    -GroupId <ASG-Id>
    <!--NeedCopy-->
    

    Nota:

    Get-AcctAzureADSecurityGroupMember fornisce solo i membri diretti del tipo di gruppo di sicurezza all’interno del gruppo di sicurezza assegnato ad Azure AD.

Per rimuovere l’appartenenza tra il gruppo di sicurezza dinamico di Azure AD e il gruppo di sicurezza assegnato ad Azure AD quando il gruppo di sicurezza dinamico di Azure AD viene eliminato insieme al catalogo macchine:

  1. Ottenere il token di accesso.
  2. Eseguire il seguente comando PowerShell nella console PowerShell:

    Remove-AcctIdentityPool
    -IdentityPoolName "SecurityGroupCatalog"
    -AzureADAccessToken $AzureADAccessToken
    <!--NeedCopy-->
    

Modificare il nome del gruppo di sicurezza dinamico di Azure AD

È possibile modificare il nome del gruppo di sicurezza dinamico di Azure AD associato a un catalogo di macchine. Questa modifica rende le informazioni sul gruppo di sicurezza archiviate nell’oggetto del pool di identità di Azure AD coerenti con le informazioni archiviate nel portale di Azure.

Nota:

I gruppi di sicurezza dinamici di Azure AD non includono i gruppi di sicurezza sincronizzati da AD locale e altri tipi di gruppi come il gruppo Office 365.

È possibile modificare il nome del gruppo di sicurezza dinamico di Azure AD utilizzando l’interfaccia Full Configuration e i comandi PowerShell.

Per modificare il nome del gruppo di sicurezza dinamico di Azure AD utilizzando PowerShell:

  1. Aprire la finestra di PowerShell.
  2. Eseguire il comando asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  3. Eseguire il comando Set-AcctIdentityPool -AzureAdSeurityGroupName [DSG-Name].

Se il nome del gruppo di sicurezza dinamico di Azure AD non può essere modificato, vengono visualizzati i messaggi di errore appropriati.