Citrix Virtual Apps and Desktops

Connessione a Microsoft Azure

Nota:

Da luglio 2023, Microsoft ha rinominato Azure Active Directory (Azure AD) in Microsoft Entra ID. In questo documento, qualsiasi riferimento ad Azure Active Directory, Azure AD o AAD si riferisce ora a Microsoft Entra ID.

Creare e gestire connessioni e risorse descrive le procedure guidate che creano una connessione. Le seguenti informazioni riguardano i dettagli specifici degli ambienti cloud di Azure Resource Manager.

Nota:

Prima di creare una connessione a Microsoft Azure, è necessario completare la configurazione dell’account Azure come posizione delle risorse. Vedere Ambienti cloud di Microsoft Azure Resource Manager.

Creare entità servizio e connessioni

Prima di creare le connessioni, è necessario configurare le entità servizio che le connessioni utilizzano per accedere alle risorse di Azure. È possibile creare una connessione in due modi:

  • Creare un’entità servizio e una connessione insieme utilizzando Web Studio
  • Creare una connessione utilizzando un’entità servizio creata in precedenza

Questa sezione mostra come completare queste attività:

Considerazioni

  • Citrix® consiglia di utilizzare l’entità servizio con il ruolo di collaboratore. Tuttavia, consultare la sezione Autorizzazioni minime per ottenere l’elenco delle autorizzazioni minime.
  • Quando si crea la prima connessione, Azure richiede di concedere le autorizzazioni necessarie. Per le connessioni future, è comunque necessario autenticarsi, ma Azure memorizza il consenso precedente e non visualizza nuovamente la richiesta.
  • Gli account utilizzati per l’autenticazione devono disporre delle autorizzazioni per assegnare ruoli nella sottoscrizione utilizzando Azure RBAC. Ad esempio, Proprietario, Amministratore del controllo degli accessi in base al ruolo o Amministratore dell’accesso utente della sottoscrizione.
  • L’account utilizzato per l’autenticazione deve essere un membro della directory della sottoscrizione. Esistono due tipi di account da considerare: “Aziendale o dell’istituto di istruzione” e “account Microsoft personale”. Per i dettagli, vedere CTX219211.
  • Sebbene sia possibile utilizzare un account Microsoft esistente aggiungendolo come membro della directory della sottoscrizione, possono verificarsi complicazioni se all’utente è stato precedentemente concesso l’accesso guest a una delle risorse della directory. In questo caso, potrebbe avere una voce segnaposto nella directory che non gli concede le autorizzazioni necessarie e viene restituito un errore.

    Per risolvere il problema, rimuovere le risorse dalla directory e aggiungerle nuovamente in modo esplicito. Tuttavia, esercitare questa opzione con cautela, perché ha effetti indesiderati su altre risorse a cui l’account può accedere.

  • Esiste un problema noto per cui alcuni account vengono rilevati come guest della directory quando sono effettivamente membri. Configurazioni come questa si verificano in genere con account di directory più vecchi e consolidati. Soluzione alternativa: aggiungere un account alla directory, che assume il valore di appartenenza corretto.
  • I gruppi di risorse sono semplicemente contenitori per le risorse e possono contenere risorse provenienti da regioni diverse dalla propria. Ciò può potenzialmente creare confusione se ci si aspetta che le risorse visualizzate nella regione di un gruppo di risorse siano disponibili.
  • Assicurarsi che la rete e la subnet siano sufficientemente grandi da ospitare il numero di macchine richieste. Ciò richiede una certa lungimiranza, ma Microsoft aiuta a specificare i valori corretti, con indicazioni sulla capacità dello spazio degli indirizzi.

Creare un’entità servizio e una connessione utilizzando Web Studio

Importante:

Questa funzionalità non è ancora disponibile per le sottoscrizioni di Azure Cina.

Con Web Studio, è possibile creare sia un’entità servizio che una connessione in un unico flusso di lavoro. Le entità servizio consentono alle connessioni di accedere alle risorse di Azure. Quando ci si autentica in Azure per creare un’entità servizio, un’applicazione viene registrata in Azure. Viene creata una chiave segreta (denominata segreto client o segreto applicazione) per l’applicazione registrata. L’applicazione registrata (una connessione in questo caso) utilizza il segreto client per autenticarsi in Azure AD.

Prima di iniziare, assicurarsi di aver soddisfatto questi prerequisiti:

  • Si dispone di un account utente nel tenant di Azure Active Directory della sottoscrizione.
  • Gli account utilizzati per l’autenticazione devono disporre delle autorizzazioni per assegnare ruoli nella sottoscrizione utilizzando Azure RBAC. Ad esempio, Proprietario, Amministratore del controllo degli accessi in base al ruolo o Amministratore dell’accesso utente della sottoscrizione.
  • Si dispone delle autorizzazioni di amministratore globale, amministratore dell’applicazione o sviluppatore dell’applicazione per l’autenticazione. Queste autorizzazioni possono essere revocate dopo aver creato la connessione host. Per ulteriori informazioni sui ruoli, vedere Ruoli predefiniti di Azure AD.

Utilizzare la procedura guidata Aggiungi connessione e risorse per creare un’entità servizio e una connessione insieme:

  1. Nella pagina Connessione, selezionare Crea una nuova connessione, il tipo di connessione Microsoft Azure e l’ambiente Azure.
  2. Selezionare gli strumenti da utilizzare per creare le macchine virtuali e quindi selezionare Avanti.
  3. Nella pagina Dettagli connessione, immettere l’ID della sottoscrizione Azure e un nome per la connessione. Dopo aver immesso l’ID della sottoscrizione, il pulsante Crea nuovo viene abilitato.

    Nota:

    Il nome della connessione può contenere da 1 a 64 caratteri e non può contenere solo spazi vuoti né i caratteri \/;:#.*?=<>|[]{}"'()'.

  4. Selezionare Crea nuovo e quindi immettere il nome utente e la password dell’account Azure Active Directory.
  5. Selezionare Accedi.
  6. Selezionare Accetta per concedere a Citrix Virtual Apps and Desktops™ le autorizzazioni elencate. Citrix Virtual Apps and Desktops crea un’entità servizio che le consente di gestire le risorse di Azure per conto dell’utente specificato.
  7. Dopo aver selezionato Accetta, si torna alla pagina Connessione della procedura guidata.

    Nota:

    Dopo aver eseguito correttamente l’autenticazione in Azure, i pulsanti Crea nuovo e Usa esistente scompaiono. Viene visualizzato il testo Connessione riuscita, con un segno di spunta verde, che indica la connessione riuscita alla sottoscrizione Azure.

  8. Nella pagina Dettagli connessione, selezionare Avanti.

    Nota:

    Non è possibile procedere alla pagina successiva finché non ci si autentica correttamente in Azure e si acconsente a concedere le autorizzazioni richieste.

  9. Configurare le risorse per la connessione. Le risorse comprendono la regione e la rete.

    • Nella pagina Regione, selezionare una regione.
    • Nella pagina Rete, eseguire le seguenti operazioni:
      • Digitare un nome di risorsa di 1-64 caratteri per aiutare a identificare la combinazione di regione e rete. Un nome di risorsa non può contenere solo spazi vuoti né i caratteri \/;:#.*?=<>|[]{}"'()'.
      • Selezionare una coppia rete virtuale/gruppo di risorse. (Se si dispone di più reti virtuali con lo stesso nome, l’associazione del nome della rete con il gruppo di risorse fornisce combinazioni uniche.) Se la regione selezionata nella pagina precedente non dispone di reti virtuali, tornare a quella pagina e selezionare una regione che disponga di reti virtuali.
  10. Nella pagina Riepilogo, visualizzare un riepilogo delle impostazioni e selezionare Fine per completare la configurazione.

Visualizzare l’ID dell’applicazione

Dopo aver creato una connessione, è possibile visualizzare l’ID dell’applicazione che la connessione utilizza per accedere alle risorse di Azure.

Nell’elenco Aggiungi connessione e risorse, selezionare la connessione per visualizzare i dettagli. La scheda Dettagli mostra l’ID dell’applicazione.

Creare un’entità servizio utilizzando PowerShell

Per creare un’entità servizio utilizzando PowerShell, connettersi alla sottoscrizione di Azure Resource Manager e utilizzare i cmdlet PowerShell forniti nelle sezioni seguenti.

Assicurarsi di avere questi elementi pronti:

  • SubscriptionId: SubscriptionID di Azure Resource Manager per la sottoscrizione in cui si desidera eseguire il provisioning dei VDA.
  • ActiveDirectoryID: ID tenant dell’applicazione registrata con Azure AD.
  • ApplicationName: Nome dell’applicazione da creare in Azure AD.

I passaggi dettagliati sono i seguenti:

Connettersi alla sottoscrizione di Azure Resource Manager.

`Connect-AzAccount`
  1. Selezionare la sottoscrizione di Azure Resource Manager in cui si desidera creare l’entità servizio.

    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription

  2. Creare l’applicazione nel tenant AD.

    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName

  3. Creare un’entità servizio.

    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId

  4. Assegnare un ruolo all’entità servizio.

    New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId

  5. Dalla finestra di output della console PowerShell, annotare l’ApplicationId. Questo ID viene fornito durante la creazione della connessione host.

Ottenere il segreto dell’applicazione in Azure

Per creare una connessione utilizzando un’entità servizio esistente, è necessario prima ottenere l’ID dell’applicazione e il segreto dell’entità servizio nel portale di Azure.

I passaggi dettagliati sono i seguenti:

  1. Ottenere l’ID applicazione da Web Studio o utilizzando PowerShell.
  2. Accedere al portale di Azure.
  3. In Azure, selezionare Azure Active Directory.
  4. Da Registrazioni app in Azure AD, selezionare l’applicazione.
  5. Andare a Certificati e segreti.
  6. Fare clic su Segreti client.

Creare una connessione utilizzando un’entità servizio esistente

Se si dispone già di un’entità servizio, è possibile utilizzarla per creare una connessione utilizzando Web Studio.

Assicurarsi di avere questi elementi pronti:

  • SubscriptionId
  • ActiveDirectoryID (ID tenant)
  • ID applicazione
  • Segreto dell’applicazione

    Per ulteriori informazioni, vedere Ottenere il segreto dell’applicazione.

  • Data di scadenza del segreto

I passaggi dettagliati sono i seguenti:

Nella procedura guidata Aggiungi connessione e risorse:

  1. Nella pagina Connessione, selezionare Crea una nuova connessione, il tipo di connessione Microsoft Azure e l’ambiente Azure.

  2. Selezionare gli strumenti da utilizzare per creare le macchine virtuali e quindi selezionare Avanti.

  3. Nella pagina Dettagli connessione, immettere l’ID della sottoscrizione Azure e un nome per la connessione.

    Nota:

    Il nome della connessione può contenere da 1 a 64 caratteri e non può contenere solo spazi vuoti né i caratteri \/;:#.*?=<>|[]{}"'()'.

  4. Selezionare Usa esistente. Nella finestra Dettagli entità servizio esistente, immettere le seguenti impostazioni per l’entità servizio esistente. Dopo aver immesso i dettagli, il pulsante Salva viene abilitato. Selezionare Salva. Non è possibile procedere oltre questa pagina finché non si forniscono dettagli validi.

    • ID sottoscrizione. Immettere l’ID della sottoscrizione Azure. Per ottenere l’ID della sottoscrizione, accedere al portale di Azure e passare a Sottoscrizioni > Panoramica.
    • ID Active Directory (ID tenant). Immettere l’ID della directory (tenant) dell’applicazione registrata con Azure AD.
    • ID applicazione. Immettere l’ID dell’applicazione (client) dell’applicazione registrata con Azure AD.
    • Segreto dell’applicazione. Creare una chiave segreta (segreto client). L’applicazione registrata utilizza la chiave per autenticarsi in Azure AD. Si consiglia di cambiare regolarmente le chiavi per motivi di sicurezza. Assicurarsi di salvare la chiave perché non sarà possibile recuperarla in seguito.
    • Data di scadenza del segreto. Immettere la data dopo la quale scade il segreto dell’applicazione. Viene visualizzata un’icona di avviso sulla specifica connessione host nel nodo Hosting a partire da 14 giorni prima della scadenza della chiave segreta. Tuttavia, se la chiave segreta scade, si ricevono errori.

      Nota:

      Per motivi di sicurezza, il periodo di scadenza non può essere superiore a due anni da oggi.

    • URL di autenticazione. Questo campo viene popolato automaticamente e non è modificabile.
    • URL di gestione. Questo campo viene popolato automaticamente e non è modificabile.
    • Suffisso di archiviazione. Questo campo viene popolato automaticamente e non è modificabile.
    • Endpoint di archiviazione BLOB di Azure per caricare o scaricare dischi o snapshot. Questo campo viene popolato automaticamente e non è modificabile.
    • Servizio Key Vault. Questo campo viene popolato automaticamente e non è modificabile.
    • Suffisso del bus di servizio. Questo campo viene popolato automaticamente e non è modificabile.

      L’accesso ai seguenti endpoint è necessario per la creazione di un catalogo MCS in Azure. L’accesso a questi endpoint ottimizza la connettività tra la rete e il portale di Azure e i suoi servizi.

      • URL di autenticazione: https://login.microsoftonline.com
      • URL di gestione: https://management.azure.com. Questo è un URL di richiesta per le API del provider di Azure Resource Manager. L’endpoint per la gestione dipende dall’ambiente. Ad esempio, per Azure Global, è https://management.azure.com, e per Azure US Government, è https://management.usgovcloudapi.net.
      • Suffisso di archiviazione: https://*.core.windows.net. Questo (*) è un carattere jolly per il suffisso di archiviazione. Ad esempio, https://demo.table.core.windows.net.
      • Endpoint di archiviazione BLOB di Azure per caricare o scaricare dischi o snapshot: https://*.storage.azure.net. Questo (*) è un carattere jolly per le operazioni di importazione ed esportazione di BLOB storage. Ad esempio, https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net.
      • Servizio Key Vault: https://*.vault.azure.net. Questo (*) è un carattere jolly per il nome del key vault. Ad esempio, https://<your-key-vault-name>.vault.azure.net.
      • Suffisso del bus di servizio: https://*.servicebus.windows.net. Questo (*) è un carattere jolly per gli spazi dei nomi creati nel cloud globale di Azure. Ad esempio, https://{serviceNamespace}.servicebus.windows.net/{path}.
  5. Dopo aver selezionato Salva, si torna alla pagina Dettagli connessione. Selezionare Avanti per continuare alla pagina successiva.
  6. Configurare le risorse per la connessione. Le risorse comprendono la regione e la rete.

    • Nella pagina Regione, selezionare una regione.
    • Nella pagina Rete, eseguire le seguenti operazioni:
      • Digitare un nome di risorsa di 1-64 caratteri per aiutare a identificare la combinazione di regione e rete. Un nome di risorsa non può contenere solo spazi vuoti né i caratteri \/;:#.*?=<>|[]{}"'()'.
      • Selezionare una coppia rete virtuale/gruppo di risorse. (Se si dispone di più reti virtuali con lo stesso nome, l’associazione del nome della rete con il gruppo di risorse fornisce combinazioni uniche.) Se la regione selezionata nella pagina precedente non dispone di reti virtuali, tornare a quella pagina e selezionare una regione che disponga di reti virtuali.
  7. Nella pagina Riepilogo, visualizzare un riepilogo delle impostazioni e selezionare Fine per completare la configurazione.

Gestire entità servizio e connessioni

Questa sezione descrive come gestire le entità servizio e le connessioni:

Configurare le impostazioni di limitazione di Azure

Azure Resource Manager limita le richieste per sottoscrizioni e tenant, instradando il traffico in base a limiti definiti, adattati alle esigenze specifiche del provider. Per ulteriori informazioni, vedere Limitazione delle richieste di Resource Manager sul sito Microsoft. Esistono limiti per sottoscrizioni e tenant, dove la gestione di molte macchine può diventare problematica. Ad esempio, una sottoscrizione contenente molte macchine potrebbe riscontrare problemi di prestazioni relativi alle operazioni di alimentazione.

Suggerimento:

Per ulteriori informazioni, vedere Migliorare le prestazioni di Azure con Machine Creation Services.

Per aiutare a mitigare questi problemi, è possibile rimuovere la limitazione interna di MCS per utilizzare una maggiore quota di richieste disponibile da Azure.

Si consigliano le seguenti impostazioni ottimali per l’accensione o lo spegnimento di VM in sottoscrizioni di grandi dimensioni, ad esempio quelle contenenti 1.000 VM:

  • Operazioni simultanee assolute: 500
  • Numero massimo di nuove operazioni al minuto: 2000
  • Concorrenza massima delle operazioni: 500

Utilizzare Web Studio per configurare le operazioni di Azure per una data connessione Azure:

  1. In Web Studio, selezionare Hosting nel riquadro sinistro.
  2. Selezionare la connessione.
  3. Nella procedura guidata Modifica connessione, selezionare Avanzate.
  4. Nella pagina Avanzate, utilizzare le opzioni di configurazione per specificare il numero di azioni simultanee e il numero massimo di nuove azioni al minuto, e qualsiasi opzione di connessione aggiuntiva.

Limitazione di Azure

MCS supporta 500 operazioni simultanee massime per impostazione predefinita. In alternativa, è possibile utilizzare l’SDK PowerShell remoto per impostare il numero massimo di operazioni simultanee.

Utilizzare la proprietà PowerShell, MaximumConcurrentProvisioningOperations, per specificare il numero massimo di operazioni di provisioning Azure simultanee. Quando si utilizza questa proprietà, considerare:

  • Il valore predefinito di MaximumConcurrentProvisioningOperations è 500.
  • Configurare il parametro MaximumConcurrentProvisioningOperations utilizzando il comando PowerShell Set-item.

Abilitare la condivisione di immagini in Azure

Quando si creano o si aggiornano cataloghi di macchine, è possibile selezionare immagini condivise da diversi tenant e sottoscrizioni di Azure (condivise tramite la Azure Compute Gallery). Per abilitare la condivisione di immagini all’interno o tra tenant, è necessario effettuare le impostazioni necessarie in Azure:

Condividere immagini all’interno di un tenant (tra sottoscrizioni)

Per selezionare un’immagine nella Azure Compute Gallery che appartiene a una sottoscrizione diversa, l’immagine deve essere condivisa con l’entità servizio (SPN) di tale sottoscrizione.

Ad esempio, se esiste un’entità servizio (SPN 1), configurata in Studio come:

Entità servizio: SPN 1

Sottoscrizione: sottoscrizione 1

Tenant: tenant 1

L’immagine si trova in una sottoscrizione diversa, configurata in Studio come:

Sottoscrizione: sottoscrizione 2

Tenant: tenant 1

Se si desidera condividere l’immagine nella sottoscrizione 2 con la sottoscrizione 1 (SPN 1), andare alla sottoscrizione 2 e condividere il gruppo di risorse con SPN1.

L’immagine deve essere condivisa con un’altra SPN utilizzando il controllo degli accessi in base al ruolo di Azure (RBAC). Azure RBAC è il sistema di autorizzazione utilizzato per gestire l’accesso alle risorse di Azure. Per ulteriori informazioni su Azure RBAC, vedere il documento Microsoft Che cos’è il controllo degli accessi in base al ruolo di Azure (Azure RBAC). Per concedere l’accesso, si assegnano ruoli alle entità servizio a livello di gruppo di risorse con il ruolo di Collaboratore. Per assegnare ruoli di Azure, è necessario disporre dell’autorizzazione Microsoft.Authorization/roleAssignments/write, ad esempio Amministratore dell’accesso utente o Proprietario. Per ulteriori informazioni sulla condivisione di immagini con un’altra SPN, vedere il documento Microsoft Assegnare ruoli di Azure usando il portale di Azure.

Per informazioni sulla selezione di un’immagine da una sottoscrizione diversa utilizzando i comandi PowerShell, Selezionare un’immagine da una sottoscrizione diversa.

Condividere immagini tra tenant

Per condividere immagini tra tenant con Azure Compute Gallery, creare una registrazione dell’applicazione.

Ad esempio, se ci sono due tenant (Tenant 1 e Tenant 2) e si desidera condividere la galleria di immagini con Tenant 1, allora:

  1. Creare una registrazione dell’applicazione per Tenant 1. Per ulteriori informazioni, vedere Creare la registrazione dell’app.

  2. Concedere a Tenant 2 l’accesso all’applicazione richiedendo un accesso tramite browser. Sostituire Tenant2 ID con l’ID tenant di Tenant 1. Sostituire Application (client) ID con l’ID applicazione della registrazione dell’applicazione creata. Una volta effettuate le sostituzioni, incollare l’URL in un browser e seguire le istruzioni di accesso per accedere a Tenant 2. Ad esempio:

    https://login.microsoftonline.com/<Tenant 2 ID>/oauth2/authorize?client_id=<Application (client) ID>&response_type=code&redirect_uri=https%3A%2F%2Fwww.microsoft.com%2F
    <!--NeedCopy-->
    

    Per ulteriori informazioni, vedere Concedere l’accesso a Tenant 2.

  3. Concedere all’applicazione l’accesso al gruppo di risorse di Tenant 2. Accedere come Tenant 2 e concedere alla registrazione dell’applicazione l’accesso al gruppo di risorse che contiene l’immagine della galleria. Per ulteriori informazioni, vedere Autenticare le richieste tra tenant.

Per creare un catalogo utilizzando un’immagine da un tenant diverso utilizzando i comandi PowerShell:

  1. Aggiornare le proprietà personalizzate della connessione host con gli ID tenant condivisi.
  2. Selezionare un’immagine da un tenant diverso.

Aggiungere tenant condivisi a una connessione utilizzando Web Studio

Quando si creano o si aggiornano cataloghi di macchine in Web Studio, è possibile selezionare immagini condivise da diversi tenant e sottoscrizioni di Azure (condivise tramite la Azure Compute Gallery). La funzionalità richiede di fornire informazioni sui tenant e sulle sottoscrizioni condivise per le connessioni host associate.

Nota:

Assicurarsi di aver configurato le impostazioni necessarie in Azure per abilitare la condivisione di immagini tra tenant. Per ulteriori informazioni, vedere Condividere immagini tra tenant.

Completare i seguenti passaggi per una connessione:

  1. In Web Studio, selezionare Hosting nel riquadro sinistro.
  2. Selezionare la connessione e quindi selezionare Modifica connessione nella barra delle azioni.

    Tenant condivisi

  3. In Tenant condivisi, eseguire le seguenti operazioni:

    • Fornire l’ID dell’applicazione e il segreto dell’applicazione associati alla sottoscrizione della connessione. Citrix Virtual Apps and Desktops utilizza queste informazioni per autenticarsi in Azure AD.
    • Aggiungere tenant e sottoscrizioni che condividono la Azure Compute Gallery con la sottoscrizione della connessione. È possibile aggiungere fino a 8 tenant condivisi e 8 sottoscrizioni per ogni tenant.
  4. Al termine, selezionare Applica per applicare le modifiche apportate e mantenere la finestra aperta, oppure selezionare OK per applicare le modifiche e chiudere la finestra.

Implementare la condivisione di immagini utilizzando PowerShell

Questa sezione illustra i processi di condivisione di immagini utilizzando PowerShell:

Selezionare un’immagine da una sottoscrizione diversa

È possibile selezionare un’immagine nella Azure Compute Gallery che appartiene a una sottoscrizione condivisa diversa nello stesso tenant di Azure per creare e aggiornare cataloghi MCS utilizzando i comandi PowerShell.

  1. Nella cartella radice dell’unità host, Citrix crea una nuova cartella di sottoscrizione condivisa denominata sharedsubscription.
  2. Elencare tutte le sottoscrizioni condivise in un tenant.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
    <!--NeedCopy-->
    
  3. Selezionare una sottoscrizione condivisa, quindi elencare tutti i gruppi di risorse condivisi di tale sottoscrizione condivisa.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
    <!--NeedCopy-->
    
  4. Selezionare un gruppo di risorse, quindi elencare tutte le gallerie di tale gruppo di risorse.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
    <!--NeedCopy-->
    
  5. Selezionare una galleria, quindi elencare tutte le definizioni di immagine di tale galleria.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
    <!--NeedCopy-->
    
  6. Selezionare una definizione di immagine, quindi elencare tutte le versioni di immagine di tale definizione di immagine.

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
    <!--NeedCopy-->
    
  7. Creare e aggiornare un catalogo MCS utilizzando i seguenti elementi:

    • Gruppo di risorse
    • Galleria
    • Definizione di immagine della galleria
    • Versione di immagine della galleria

    Per informazioni su come creare un catalogo utilizzando l’SDK PowerShell remoto, vedere https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.

Aggiornare le proprietà personalizzate della connessione host con gli ID tenant condivisi

Utilizzare Set-Item per aggiornare le proprietà personalizzate della connessione host con gli ID tenant e gli ID sottoscrizione condivisi. Aggiungere una proprietà SharedTenants in CustomProperties. Il formato di Shared Tenants è:

[{"Tenant":"94367291-119e-457c-bc10-25337231f7bd","Subscriptions":["7bb42f40-8d7f-4230-a920-be2781f6d5d9"]},{"Tenant":"50e83564-c4e5-4209-b43d-815c45659564","Subscriptions":["06ab8944-6a88-47ee-a975-43dd491a37d0"]}]
<!--NeedCopy-->

Ad esempio:

Set-Item -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
<Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"123`" />
<Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" />
<Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"123abc`" />
<Property xsi:type=`"StringProperty`" Name=`"SharedTenants`" Value=`"`[ { 'Tenant':'123abc', 'Subscriptions':['345', '567'] } ]`"` />
</CustomProperties>"
-LiteralPath @("XDHyp:\Connections\aazure") -PassThru -UserName "advc345" -SecurePassword
$psd
<!--NeedCopy-->

Nota:

È possibile aggiungere più di un tenant. Ogni tenant può avere più di una sottoscrizione.

Selezionare un’immagine da un tenant diverso

È possibile selezionare un’immagine nella Azure Compute Gallery che appartiene a un tenant di Azure diverso per creare e aggiornare cataloghi MCS utilizzando i comandi PowerShell.

  1. Nella cartella radice dell’unità host, Citrix crea una nuova cartella di sottoscrizione condivisa denominata sharedsubscription.
  2. Elencare tutte le sottoscrizioni condivise.

    Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
    <!--NeedCopy-->
    
  3. Selezionare una sottoscrizione condivisa, quindi elencare tutti i gruppi di risorse condivisi di tale sottoscrizione condivisa.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
    <!--NeedCopy-->
    
  4. Selezionare un gruppo di risorse, quindi elencare tutte le gallerie di tale gruppo di risorse.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
    <!--NeedCopy-->
    
  5. Selezionare una galleria, quindi elencare tutte le definizioni di immagine di tale galleria.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
    <!--NeedCopy-->
    
  6. Selezionare una definizione di immagine, quindi elencare tutte le versioni di immagine di tale definizione di immagine.

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
    <!--NeedCopy-->
    
  7. Creare e aggiornare un catalogo MCS utilizzando i seguenti elementi:

    • Gruppo di risorse
    • Galleria
    • Definizione di immagine della galleria
    • Versione di immagine della galleria

    Per informazioni su come creare un catalogo utilizzando l’SDK PowerShell remoto, vedere https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/.

Gestire il segreto dell’applicazione e la data di scadenza del segreto

Assicurarsi di modificare il segreto dell’applicazione per una connessione prima che il segreto scada. Viene visualizzata un’icona di avviso sulla specifica connessione host nel nodo Hosting a partire da 14 giorni prima della scadenza della chiave segreta. Tuttavia, se la chiave segreta scade, si ricevono errori.

Creare un segreto dell’applicazione in Azure

È possibile creare un segreto dell’applicazione per una connessione tramite il portale di Azure.

  1. Selezionare Azure Active Directory.
  2. Da Registrazioni app in Azure AD, selezionare l’applicazione.
  3. Andare a Certificati e segreti.
  4. Fare clic su Segreti client > Nuovo segreto client.
  5. Fornire una descrizione del segreto e specificare una durata. Al termine, selezionare Aggiungi.

    Nota:

    Assicurarsi di salvare il segreto client perché non sarà possibile recuperarlo in seguito.

  6. Copiare il valore del segreto client e la data di scadenza.
  7. In Web Studio, modificare la connessione corrispondente e sostituire il contenuto nei campi Segreto dell’applicazione e Data di scadenza del segreto con i valori copiati.

Modificare la data di scadenza del segreto

È possibile utilizzare Web Studio per aggiungere o modificare la data di scadenza del segreto dell’applicazione in uso.

Nota:

Viene visualizzata un’icona di avviso sulla specifica connessione host nel nodo Hosting a partire da 14 giorni prima della scadenza della chiave segreta. Tuttavia, se la chiave segreta scade, si ricevono errori.

  1. Nella procedura guidata Aggiungi connessione e risorse, fare clic con il pulsante destro del mouse su una connessione e fare clic su Modifica connessione.
  2. Nella pagina Proprietà connessione, fare clic su Data di scadenza del segreto per aggiungere o modificare la data di scadenza del segreto dell’applicazione in uso.

Utilizzare un gruppo di sicurezza di rete pre-creato

Creare un gruppo di sicurezza di rete Deny-All per la preparazione dell’immagine invece di richiedere a Citrix di creare e modificare NSG. Modificare le proprietà personalizzate dell’unità host utilizzando un comando PowerShell Set-Item per includere il parametro NsgForPreparation per fornire il gruppo di sicurezza di rete Deny-All.

Prerequisiti

Configurare le seguenti autorizzazioni richieste per un’entità servizio:

  • Microsoft.Network/networkSecurityGroups/join/action: Associare un gruppo di sicurezza di rete a una subnet o a un’interfaccia di rete
  • Microsoft.Network/networkSecurityGroups/read: Ottiene il gruppo di sicurezza di rete
  • Microsoft.Network/networkSecurityGroups/securityRules/read: Ottiene la regola

Aggiungere il gruppo di sicurezza di rete Deny-All pre-creato

Per aggiungere il gruppo di sicurezza di rete Deny-All pre-creato, impostare le proprietà personalizzate come segue sull’unità host:

  1. Aprire una finestra PowerShell utilizzando l’SDK PowerShell remoto.
  2. Eseguire i seguenti comandi:

    Add-PSSnapin citrix*.
    cd XDHyp:\HostingUnits\
    Dir
    <!--NeedCopy-->
    
  3. Selezionare un’unità host per recuperare i dettagli:

    Get-Item "XDHyp:\HostingUnits\<nomeunitàhost>"
    <!--NeedCopy-->
    
  4. Copiare le CustomProperties in un blocco note e aggiungere l’impostazione della proprietà <Property xsi:type="StringProperty” Name="NsgForPreparation” Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/>. Ad esempio:

    <CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>
    <!--NeedCopy-->
    
  5. Nella finestra PowerShell, assegnare una variabile alle proprietà personalizzate modificate. Ad esempio:

    $customProperty = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`"{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>"
    <!--NeedCopy-->
    
  6. Eseguire $cred = Get-Credential. Se richiesto, fornire le credenziali di connessione. Le credenziali sono l’ID applicazione Azure e il segreto.
  7. Eseguire il seguente comando.

    Set-Item -PSPath XDHyp:\HostingUnits\<nomeunitàhost> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password
    <!--NeedCopy-->
    

    Importante:

    Se si riceve un messaggio che indica che SubscriptionId è mancante, sostituire tutte le virgolette doppie (“) con un backtick seguito da virgolette doppie (`”) nella proprietà personalizzata.

  8. Eseguire dir per verificare le impostazioni CustomProperties aggiornate.

    Nota:

    Sono necessari più di un minuto per la visualizzazione degli aggiornamenti.

Recuperare i dettagli del gruppo di sicurezza di rete

Per recuperare i dettagli del gruppo di sicurezza di rete, recuperare prima i gruppi di risorse contenenti il gruppo di sicurezza di rete, quindi recuperare il gruppo di sicurezza di rete in base al nome del gruppo di risorse.

  1. Recuperare i gruppi di risorse contenenti il gruppo di sicurezza di rete. Ad esempio:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
    <!--NeedCopy-->
    
  2. Recuperare il gruppo di sicurezza di rete in base al nome del gruppo di risorse. Ad esempio:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType securitygroup -MaxRecords 5 -AdditionalDataFilter '{"location": ["eastus", "westus"], "resourcegroup":["nomedelgruppodirisorse"]}'
    <!--NeedCopy-->
    

Filtrare i gruppi di risorse vuoti

Utilizzare il comando PowerShell Get-HypInventoryItem per filtrare i gruppi di risorse vuoti durante la selezione di un’immagine master, un profilo macchina o un’immagine preparata durante la creazione del catalogo macchine.

Esempi:

  • Recuperare il numero massimo di record in una pagina:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
     <!--NeedCopy-->
    
  • Recuperare il numero massimo di record in una pagina e filtrare per trovare i contenitori di risorse che hanno risorse specifiche.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
     <!--NeedCopy-->
    
  • Recuperare con skip per indicare direttamente la pagina e filtrare per trovare i contenitori di risorse che hanno risorse specifiche.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -skip 20 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
     <!--NeedCopy-->
    
  • Utilizzare un token per recuperare la pagina successiva e filtrare per trovare i contenitori di risorse che hanno risorse specifiche.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' -ContinuationToken 'ew0KICAiJGlkIjogIjEiLA0KICAiTWF4Um93cyI6IDUsDQogICJSb3dzVG9Ta2lwIjogMjUsDQogICJLdXN0b0NsdXN0ZXJVcmwiOiAiaHR0cHM6Ly9hcmctbmV1LTEzLXNmLmFyZy5jb3JlLndpbmRvd3MubmV0Ig0KfQ=='
     <!--NeedCopy-->
    
  • Recuperare tutti i gruppi di risorse con il tag interno Citrix e limitare il numero massimo di record con MaxRecords.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
     <!--NeedCopy-->
    
  • Filtrare per profilo macchina (immagine master) con il tag interno Citrix e limitare il numero massimo di record con MaxRecords.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
     <!--NeedCopy-->
    
  • Filtrare per immagine preparata con il tag interno Citrix e limitare il numero massimo di record con MaxRecords.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}'
     <!--NeedCopy-->
    
  • Filtrare per profilo macchina (immagine preparata) con il tag interno Citrix e limitare il numero massimo di record con MaxRecords.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
     <!--NeedCopy-->
    
  • Filtrare per immagine con il tag interno Citrix e limitare il numero massimo di record con MaxRecords e posizione.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}'
     <!--NeedCopy-->
    
  • Recuperare tutti i gruppi di risorse senza considerare i tag CitrixResource.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 50 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"]}' -Force $true
     <!--NeedCopy-->
    

Connettersi all’ambiente cloud Azure Sovereign Airgap

L’ambiente cloud Azure Sovereign Airgap è adatto per carichi di lavoro top-secret che devono trovarsi su domini di rete segregati. È possibile connettersi all’ambiente cloud Azure Sovereign Airgap utilizzando una proprietà personalizzata DisableInstanceDiscovery durante la creazione di una connessione host.

<Property xsi:type="StringProperty" Name="DisableInstanceDiscovery" Value="true" />
<!--NeedCopy-->

Vedere Create-HostingConnection.ps1 per ulteriori informazioni sulla creazione di una connessione host Azure.

Autorizzazioni Azure richieste

Questa sezione contiene le autorizzazioni minime e generali richieste per Azure.

Autorizzazioni minime

Le autorizzazioni minime offrono un migliore controllo della sicurezza. Tuttavia, le nuove funzionalità che richiedono autorizzazioni aggiuntive falliscono a causa dell’utilizzo di sole autorizzazioni minime.

Creazione di una connessione host

Aggiungere una nuova connessione host utilizzando le informazioni ottenute da Azure.

"Microsoft.Network/virtualNetworks/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/disks/read",
"Microsoft.Resources/providers/read",
"Microsoft.Resources/subscriptions/locations/read",
"Microsoft.Resources/tenants/read",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read"
<!--NeedCopy-->

Gestione dell’alimentazione delle VM

Accendere o spegnere le istanze della macchina.

"Microsoft.Compute/virtualMachines/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Insights/diagnosticsettings/delete",
"Microsoft.Insights/diagnosticsettings/read",
"Microsoft.Insights/diagnosticsettings/write",
<!--NeedCopy-->

Creazione, aggiornamento o eliminazione di VM

Creare un catalogo macchine, quindi aggiungere, eliminare, aggiornare macchine ed eliminare il catalogo macchine.

Di seguito è riportato l’elenco delle autorizzazioni minime richieste quando l’immagine master è un disco gestito o gli snapshot si trovano nella stessa regione della connessione host.

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/extensions/read",
"Microsoft.Compute/virtualMachines/extensions/write",
"Microsoft.Features/providers/features/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/locations/usages/read",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read"

<!--NeedCopy-->

Sono necessarie le seguenti autorizzazioni aggiuntive basate sulle autorizzazioni minime per le seguenti funzionalità:

  • Se l’immagine master è un VHD in un account di archiviazione situato nella stessa regione della connessione host:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • Se l’immagine master è una ImageVersion dalla Shared Image Gallery:

     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     <!--NeedCopy-->
    
  • Se l’immagine master è un disco gestito, gli snapshot o il VHD si trovano in una regione diversa dalla regione della connessione host:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     "Microsoft.Storage/storageAccounts/write",
     "Microsoft.Storage/storageAccounts/delete",
     "Microsoft.Storage/checknameavailability/read",
     "Microsoft.Storage/locations/usages/read",
     "Microsoft.Storage/skus/read",
     <!--NeedCopy-->
    
  • Se si utilizza un gruppo di risorse gestito da Citrix:

     "Microsoft.Resources/subscriptions/resourceGroups/write",
     "Microsoft.Resources/subscriptions/resourceGroups/delete",
     <!--NeedCopy-->
    
  • Se si inserisce l’immagine master nella Azure Compute Gallery (precedentemente Shared Image Gallery) in un tenant o una sottoscrizione condivisa:

     "Microsoft.Compute/galleries/write",
     "Microsoft.Compute/galleries/images/write",
     "Microsoft.Compute/galleries/images/versions/write",
     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     "Microsoft.Compute/galleries/delete",
     "Microsoft.Compute/galleries/images/delete",
     "Microsoft.Compute/galleries/images/versions/delete",
     "Microsoft.Resources/subscriptions/read",
     <!--NeedCopy-->
    
  • Se si utilizza il supporto host dedicato di Azure:

     "Microsoft.Compute/hostGroups/read",
     "Microsoft.Compute/hostGroups/write",
     "Microsoft.Compute/hostGroups/hosts/read",
     <!--NeedCopy-->
    
  • Se si utilizza la crittografia lato server (SSE) con chiavi gestite dal cliente (CMK):

     "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • Se si distribuiscono VM utilizzando modelli ARM (profilo macchina):

     "Microsoft.Resources/deployments/write",
     "Microsoft.Resources/deployments/operationstatuses/read",
     "Microsoft.Resources/deployments/read",
     "Microsoft.Resources/deployments/delete",
     "Microsoft.Insights/DataCollectionRuleAssociations/Read",
     "Microsoft.Insights/dataCollectionRules/read",
     <!--NeedCopy-->
    
  • Se si utilizza la specifica del modello di Azure come profilo macchina:

     "Microsoft.Resources/templateSpecs/read",
     "Microsoft.Resources/templateSpecs/versions/read",
     <!--NeedCopy-->
    

Creazione, aggiornamento ed eliminazione di macchine con disco non gestito

Di seguito è riportato l’elenco delle autorizzazioni minime richieste quando l’immagine master è VHD e si utilizza il gruppo di risorse fornito dall’amministratore:

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/locations/usages/read",
"Microsoft.Storage/skus/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/locations/usages/read",
<!--NeedCopy-->

Autorizzazione generale

Il ruolo di Collaboratore ha pieno accesso per gestire tutte le risorse. Questo set di autorizzazioni non impedisce di ottenere nuove funzionalità.

Il seguente set di autorizzazioni fornisce la migliore compatibilità in futuro, sebbene includa più autorizzazioni del necessario con il set di funzionalità attuale:

"Microsoft.Compute/diskEncryptionSets/read",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/galleries/delete",
"Microsoft.Compute/galleries/images/delete",
"Microsoft.Compute/galleries/images/read",
"Microsoft.Compute/galleries/images/versions/delete",
"Microsoft.Compute/galleries/images/versions/read",
"Microsoft.Compute/galleries/images/versions/write",
"Microsoft.Compute/galleries/images/write",
"Microsoft.Compute/galleries/read",
"Microsoft.Compute/galleries/write",
"Microsoft.Compute/hostGroups/hosts/read",
"Microsoft.Compute/hostGroups/read",
"Microsoft.Compute/hostGroups/write",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/extensions/read",
"Microsoft.Compute/virtualMachines/extensions/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/locations/usages/read",
"Microsoft.Resources/deployments/operationstatuses/read",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/deployments/write",
"Microsoft.Resources/deployments/delete",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Resources/providers/read",
"Microsoft.Resources/subscriptions/locations/read",
"Microsoft.Resources/subscriptions/read",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Resources/tenants/read",
"Microsoft.Resources/templateSpecs/read",
"Microsoft.Resources/templateSpecs/versions/read",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/locations/usages/read",
"Microsoft.Storage/skus/read",
"Microsoft.Features/providers/features/read",
"Microsoft.Insights/DataCollectionRuleAssociations/Read",
"Microsoft.Insights/dataCollectionRules/read",
"Microsoft.Insights/diagnosticsettings/delete",
"Microsoft.Insights/diagnosticsettings/read",
"Microsoft.Insights/diagnosticsettings/write",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read"
<!--NeedCopy-->

Convalidare la connessione host nell’ambiente non segreto di Azure

È possibile convalidare le autorizzazioni su una connessione host per eseguire attività relative alla creazione e alla gestione di cataloghi di macchine MCS. Questa implementazione aiuta a individuare in anticipo le autorizzazioni mancanti richieste per diversi scenari, come la creazione, l’eliminazione e l’aggiornamento di VM, la gestione dell’alimentazione delle VM, in modo da evitare blocchi in momenti critici.

È possibile convalidare le autorizzazioni su una connessione host utilizzando il comando PowerShell Test-HypHypervisorConnection. Il risultato del comando viene acquisito come un elenco in cui ogni elemento dell’elenco è suddiviso in tre sezioni.

  • Categoria: l’azione o l’attività che un utente può eseguire per creare e gestire un catalogo di macchine MCS.
  • Azione correttiva: il passaggio che un amministratore deve eseguire per risolvere una discrepanza di autorizzazioni mancanti dell’utente.
  • Autorizzazione mancante: l’elenco delle autorizzazioni mancanti per una categoria.

Per convalidare le autorizzazioni, eseguire le seguenti operazioni:

  1. Creare una connessione host ad Azure.
  2. Aprire una finestra PowerShell dall’host del Delivery Controller™.
  3. Eseguire asnp citrix* per caricare i moduli PowerShell specifici di Citrix.
  4. Eseguire il seguente comando per verificare se si dispone delle autorizzazioni richieste per testare una connessione.

    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon"
    <!--NeedCopy-->
    

    Autorizzazione a livello di ruolo richiesta per l’SPN:

    • Microsoft.Authorization/roleDefinitions/read (a livello di sottoscrizione o a livello di gruppo di risorse se il gruppo di risorse è fornito)
    • Microsoft.Authorization/roleAssignments/read (a livello di sottoscrizione o a livello di gruppo di risorse se il gruppo di risorse è fornito)

    Autorizzazioni a livello di API richieste per l’SPN:

    Microsoft.Graph:

    • Application.Read.All
    • Directory.Read.All
    • ServicePrincipalEndpoint.Read.All
  5. Dopo aver aggiunto le autorizzazioni mancanti richieste per cercare le proprie autorizzazioni, eseguire il seguente comando per verificare se si dispone delle autorizzazioni nelle varie categorie.

    Esempio:

    Per testare una connessione a livello di sottoscrizione con un livello di autorizzazione superiore richiesto:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\ AzureCon -SecurePassword $password -UserName 922e65d5-38ae-4cf5-xxxx-xxxxxxxxx
    <!--NeedCopy-->
    

    Esempio:

    Per testare una connessione a livello di gruppo di risorse senza un livello di autorizzazione elevato:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List
    <!--NeedCopy-->
    

    Nota:

    Il parametro CustomProperties viene utilizzato per fornire il livello del gruppo di risorse perché il gruppo di risorse è un’informazione specifica della connessione.

    Esempio:

    Per testare una connessione con il livello di autorizzazione superiore a livello di gruppo di risorse:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -SecurePassword $password -UserName 922e65d5-38ae-4cf5-832b-54122196b7dd -CustomProperties $customProperties
    <!--NeedCopy-->
    

Per informazioni sulle autorizzazioni, vedere Autorizzazioni Azure richieste.

Convalidare la connessione host nell’ambiente segreto di Azure

È possibile convalidare se una connessione host dispone delle autorizzazioni richieste in un ambiente segreto di Azure utilizzando un comando PowerShell Test-HypHypervisorConnection.

Tuttavia, per ottenere correttamente il risultato della convalida, creare o aggiornare una connessione host esistente in modo che abbia una proprietà personalizzata AuthenticationObjectId. Questa proprietà memorizza l’ID oggetto dell’entità servizio collegata alla connessione host.

Nota:

Ottenere l’ID oggetto dell’entità servizio dal portale di Azure. Non utilizzare l’ID dell’applicazione.

Creare o aggiornare una connessione host per includere AuthenticationObjectId

Utilizzare New-Item per creare una connessione host e aggiungere AuthenticationObjectId come proprietà personalizzata. Esempio:

New-Item -ConnectionType 'Azure' -HypervisorAddress @('http://hypervisorhost1.example.com','http://hypervisorhost2.example.com')`
    -LoggingId $loggingId -Path @('XDHyp:\\Connections\\Example') -Persist -Scope @() `
    -Password 'Password' -UserName 'root' -CustomProperties <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="ID oggetto dell'entità servizio"/>
<!--NeedCopy-->

Utilizzare Set-Item per aggiornare una connessione host esistente per aggiungere AuthenticationObjectId come proprietà personalizzata. I passaggi per eseguire questa operazione sono:

  1. Aprire una finestra PowerShell utilizzando l’SDK PowerShell remoto.
  2. Eseguire i seguenti comandi:

    Add-PSSnapin citrix*.
    cd XDHyp:\Connections\
    dir
    <!--NeedCopy-->
    
  3. Copiare le CustomProperties dalla connessione in un blocco note e aggiungere l’impostazione della proprietà <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="ID oggetto dell'entità servizio"/> alle CustomProperties.
  4. Nella finestra PowerShell, assegnare una variabile alle proprietà personalizzate modificate.
  5. Eseguire $cred = Get-Credential. Se richiesto, fornire le credenziali di connessione. Le credenziali sono l’ID applicazione Azure e il segreto.
  6. Eseguire Set-Item -PSPath XDHyp:\Connections\<Nome_connessione> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password.
  7. Eseguire dir per verificare le impostazioni CustomProperties aggiornate.

    Set-Item -PSPath XDHyp:\Connections\$connName -CustomProperties <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="ID oggetto dell'entità servizio"/> -username $cred.username -Securepassword $cred.password
    <!--NeedCopy-->
    

Convalidare la connessione host per le autorizzazioni

Per convalidare le connessioni host per i ruoli e le autorizzazioni richieste, eseguire i seguenti comandi:

  • Se si dispone di ruoli e autorizzazioni assegnati a livello di sottoscrizione:

     Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\<La_tua_connessione_host>
     <!--NeedCopy-->
    
  • Se si dispone di ruoli e autorizzazioni assegnati a livello di gruppo di risorse:

     Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\<La_tua_connessione_host>  -CustomProperties $CustomProperties
        
     $CustomProperties = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">'`
     +  '<Property xsi:type="StringProperty" Name="ResourceGroups" Value="ExampleResourceGroup" />'`
     +  '</CustomProperties>'
     <!--NeedCopy-->
    

Dove andare dopo

Ulteriori informazioni