Citrix DaaS

Verbindung zu Microsoft Azure

Hinweis

Seit Juli 2023 hat Microsoft Azure Active Directory (Azure AD) in Microsoft Entra ID umbenannt. In diesem Dokument bezieht sich jeder Verweis auf Azure Active Directory, Azure AD oder AAD jetzt auf die Microsoft Entra ID.

Unter Verbindungen und Ressourcen erstellen und verwalten werden die Assistenten zum Erstellen einer Verbindung beschrieben. Die folgenden Informationen beziehen sich speziell auf Azure Resource Manager-Cloudumgebungen.

Hinweis

Bevor Sie eine Verbindung zu Microsoft Azure herstellen, müssen Sie Ihr Azure-Konto als Ressourcenstandort eingerichtet haben. Weitere Informationen finden Sie unter Microsoft Azure Resource Manager-Virtualisierungsumgebungen.

Dienstprinzipale und Verbindungen erstellen

Bevor Sie Verbindungen erstellen, müssen Sie Dienstprinzipale einrichten, über die Verbindungen auf Azure-Ressourcen zugreifen. Es gibt zwei Optionen zum Erstellen einer Verbindung:

  • Erstellen Sie mit Studio zusammen einen Service Principal und eine Verbindung
  • Verbindung mithilfe eines zuvor erstellten Dienstprinzipals erstellen

In diesem Abschnitt erfahren Sie, wie Sie diese Aufgaben ausführen:

Überlegungen

Bevor Sie beginnen, sollten Sie Folgendes berücksichtigen:

  • Citrix empfiehlt, Dienstprinzipale mit der Rolle Mitwirkender zu verwenden. Beachten Sie jedoch die Liste der Mindestberechtigungen im Abschnitt Mindestberechtigungen.
  • Beim Erstellen der ersten Verbindung fordert Azure Sie auf, die erforderlichen Berechtigungen zu erteilen. Sie müssen sich für zukünftige Verbindungen neu authentifizieren, Ihre Zustimmung wird jedoch in Azure gespeichert und die Aufforderung nicht wieder angezeigt.
  • Nachdem Sie sich zum ersten Mal bei Azure authentifiziert haben, wird eine Citrix-eigene mehrinstanzenfähige Anwendung (ID: 08b70dc3-76c5-4611-ba7d-3312ba36cb2b) im Namen des authentifizierten Kontos zu Ihrem Azure Active Directory eingeladen.
  • Zur Authentifizierung verwendete Konten müssen über Berechtigungen zum Zuweisen von Rollen im Abonnement mithilfe von Azure RBAC verfügen. Beispiel: Besitzer, rollenbasierter Zugriffskontrolladministrator oder Benutzerzugriffsadministrator des Abonnements.
  • Das für die Authentifizierung verwendete Konto muss Mitglied des Verzeichnisses des Abonnements sein. Es gibt zwei Arten von Konten, auf die Sie achten sollten: “Arbeitsplatz oder Schule” und “Persönliches Microsoft-Konto”. Weitere Informationen finden Sie unter CTX219211.
  • Sie können zwar ein bestehendes Microsoft-Konto als Mitglied des Abonnementverzeichnisses hinzufügen und verwenden, doch kann es zu Komplikationen kommen, wenn dem Konto zuvor Gastzugriff auf eine der Verzeichnisressourcen gewährt worden war. In diesem Fall besitzt das Konto möglicherweise einen Platzhaltereintrag im Verzeichnis, der nicht die erforderlichen Berechtigungen gewährt, und es wird ein Fehler zurückgegeben.

    Entfernen Sie die Ressourcen aus dem Verzeichnis und fügen Sie sie wieder hinzu, um das Problem zu beheben. Dabei ist jedoch Vorsicht geboten, denn dies hat unbeabsichtigte Auswirkungen auf andere Ressourcen, auf die das Konto zugreifen kann.

  • Es gibt ein bekanntes Problem, bei dem bestimmte Konten, die eigentlich Mitglieder sind, als Verzeichnisgäste erkannt werden. Konfigurationen wie diese treten normalerweise bei älteren Verzeichniskonten auf. Fügen Sie als Workaround dem Verzeichnis jeweils ein Konto hinzu, das den richtigen Mitgliedschaftswert erhält.
  • Ressourcengruppen sind Container für Ressourcen und können Ressourcen aus ihrer eigenen und aus anderen Regionen enthalten. Dies kann Verwirrung auslösen, wenn Sie erwarten, dass die in der Region einer Ressourcengruppe angezeigten Ressourcen verfügbar sind.
  • Stellen Sie sicher, dass Ihr Netzwerk und Subnetz groß genug zum Hosten der benötigten Maschinenzahl ist. Dies erfordert einiges an Vorausschau, doch Microsoft kann Ihnen bei der Wahl der richtigen Werte und der Planung der erforderlichen Adressraumkapazität helfen.

Erstellen Sie einen Dienstprinzipal und eine Verbindung mit Studio

Wichtig:

Dieses Feature ist für chinesische Azure-Abonnements noch nicht verfügbar.

Mit Studio können Sie sowohl einen Dienstprinzipal als auch eine Verbindung in einem einzigen Workflow erstellen. Dienstprinzipale gewähren Verbindungen Zugriff auf Azure-Ressourcen. Wenn Sie sich bei Azure authentifizieren, um einen Dienstprinzipal zu erstellen, wird eine Anwendung in Azure registriert. Für die registrierte Anwendung wird ein geheimer Schlüssel erstellt (geheimer Clientschlüssel oder Anwendungsgeheimnis). Die registrierte Anwendung (in diesem Fall eine Verbindung) verwendet den geheimen Clientschlüssel zur Authentifizierung bei Azure AD.

Stellen Sie vor Beginn sicher, dass Sie die folgenden Voraussetzungen erfüllen:

  • Sie haben ein Benutzerkonto des Azure Active Directory-Mandanten Ihres Abonnements.
  • Zur Authentifizierung verwendete Konten müssen über Berechtigungen zum Zuweisen von Rollen im Abonnement mithilfe von Azure RBAC verfügen. Beispiel: Besitzer, rollenbasierter Zugriffskontrolladministrator oder Benutzerzugriffsadministrator des Abonnements.
  • Sie haben globale Administrator-, Anwendungsadministrator- oder Anwendungsentwicklerberechtigungen für die Authentifizierung. Die Berechtigungen können widerrufen werden, nachdem Sie eine Hostverbindung erstellt haben. Weitere Informationen zu Rollen finden Sie unter Integrierte Azure AD-Rollen.

Verwenden Sie den Assistenten für Verbindung und Ressourcen hinzufügen, um Dienstprinzipal und Verbindung gemeinsam zu erstellen:

  1. Wählen Sie auf der Seite Verbindung die Option Neue Verbindung erstellen, als Verbindungstyp Microsoft Azure und Ihre Azure-Umgebung.

  2. Wählen Sie die Tools, die zum Erstellen der virtuellen Maschinen verwendet werden sollen, und wählen Sie dann Weiter.

  3. Erstellen Sie auf der Seite Verbindungsdetails einen Dienstprinzipal und legen Sie den Verbindungsnamen wie folgt fest:

    1. Geben Sie die ID Ihres Azure-Abonnements und einen Namen für die Verbindung ein. Nachdem Sie die Abonnement-ID eingegeben haben, wird die Schaltfläche Neu erstellen verfügbar.

    Hinweis

    Der Verbindungsname kann 1-64 Zeichen enthalten und darf nicht nur Leerzeichen oder die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.

    1. Wählen Sie Neu erstellen und geben Sie den Benutzernamen und das Kennwort des Azure Active Directory-Kontos ein.
    2. Wählen Sie Anmelden.
    3. Wählen Sie Akzeptieren, um Citrix DaaS die aufgelisteten Berechtigungen zu erteilen. In Azure wird ein Dienstprinzipal erstellt, der Citrix DaaS die Verwaltung von Azure-Ressourcen für den angegebenen Benutzer ermöglicht.
    > **Hinweis**
    >
    > Citrix DaaS benötigt die folgenden Berechtigungen, um einen neuen Dienstprinzipal zu erstellen:
    >
    > -  **Greifen Sie auf Azure Service Management zu, während Sie**
    > -  **Anwendungen lesen und schreiben**
    > -  **Sich anmelden und Ihr Profil einlesen**
    > -  **Zugriff auf Daten behalten, deren Zugriff Ihnen gestattet wurde**
    
    1. Nach Auswahl von Akzeptieren kehren Sie zur Seite Verbindungsdetails zurück.

      Hinweis

      Nachdem Sie sich bei Azure authentifiziert haben, werden die Schaltflächen Neu erstellen und Vorhandene verwenden ausgeblendet. Der Text Verbindung erfolgreich und ein grünes Häkchen zeigen die erfolgreiche Verbindung mit Ihrem Azure-Abonnement an.

    2. Um API-Anforderungen über Citrix Cloud Connectors an Azure weiterzuleiten, aktivieren Sie das Kontrollkästchen Datenverkehr über Citrix Cloud Connectors weiterleiten.

      Alternativ können Sie das Feature mit PowerShell aktivieren. Weitere Informationen finden Sie unter Sichere Umgebung für von Azure verwalteten Netzwerkverkehr erstellen.

      Hinweis

      Diese Option ist nur verfügbar, wenn die Bereitstellung aktive Citrix Cloud Connectors enthält. Derzeit wird dieses Feature für Connector Appliances nicht unterstützt.

    3. Wählen Sie Weiter.

    Hinweis

    Sie können im Assistenten erst fortfahren, wenn Sie sich bei Azure authentifiziert und die Erteilung der erforderlichen Berechtigungen akzeptiert haben.

  4. Konfigurieren Sie die Verbindungsressourcen wie folgt:

    • Wählen Sie auf der Seite Region eine Region aus.
    • Gehen Sie auf der Seite Netzwerk wie folgt vor:
      • Geben Sie einen Ressourcennamen zur Identifizierung der Kombination aus Region und Netzwerk ein. Der Name muss aus 1–64 Zeichen bestehen. Ein Ressourcenname darf nicht nur Leerzeichen oder die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.
      • Wählen Sie eine Kombination aus virtuellem Netzwerk und Ressourcengruppe. (Wenn Sie mehrere virtuelle Netzwerke mit dem gleichen Namen haben, erzielen Sie durch die Kombination aus Netzwerknamen und Ressourcengruppe Einmaligkeit.) Wenn die auf der vorherigen Seite ausgewählte Region keine virtuellen Netzwerke enthält, kehren Sie zu der Seite zurück und wählen Sie eine Region, die virtuelle Netzwerke enthält.
  5. Überprüfen Sie auf der Seite Zusammenfassung die Einstellungen und wählen Sie Fertig stellen, um die Einrichtung abzuschließen.

Anzeigen der Anwendungs-ID

Nachdem Sie eine mit cofEnable Azure AD verbundene Geräteverwaltungsverbindung erstellt haben, können Sie die Anwendungs-ID anzeigen, die die Verbindung für den Zugriff auf Azure-Ressourcen verwendet.

Wählen Sie in der Liste Verbindung und Ressourcen hinzufügen die Verbindung aus, um die Details anzuzeigen. Auf der Registerkarte Details wird die Anwendungs-ID angezeigt.

Anwendungs-ID auf der Seite "Verbindung und Ressourcen hinzufügen"

Erstellen eines Dienstprinzipals mit PowerShell

Zum Erstellen eines Dienstprinzipals mit PowerShell stellen Sie zunächst eine Verbindung mit Ihrem Azure Resource Manager-Abonnement her. Verwenden Sie dann die nachfolgend aufgeführten PowerShell-Cmdlets.

Stellen Sie sicher, dass Sie diese Elemente verfügbar haben:

  • SubscriptionID: Azure Resource Manager SubscriptionID für das Abonnement, für das Sie VDAs bereitstellen möchten.
  • ActiveDirectoryID: Mandanten-ID der Anwendung ein, die Sie bei Azure AD registriert haben.
  • ApplicationName: Name der Anwendung, die in Azure AD erstellt werden soll.

Verfahren:

  1. Stellen Sie eine Verbindung mit Ihrem Azure Resource Manager-Abonnement her.

    Connect-AzAccount

  2. Wählen Sie das Azure Resource Manager-Abonnement, in dem Sie den Dienstprinzipal erstellen möchten.

    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription

  3. Erstellen Sie die Anwendung im AD-Mandanten.

    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName

  4. Erstellen Sie einen Dienstprinzipal.

    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId

  5. Weisen Sie dem Dienstprinzipal eine Rolle zu.

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

  6. Notieren Sie die im Ausgabefenster der PowerShell-Konsole angezeigte Anwendungs-ID (ApplicationId). Sie müssen diese ID beim Erstellen der Hostverbindung angeben.

Anwendungsgeheimnis in Azure abrufen

Um eine Verbindung über einen vorhandenen Dienstprinzipal herzustellen, müssen Sie zunächst die Anwendungs-ID und das Anwendungsgeheimnis des Dienstprinzipals im Azure-Portal abrufen.

Verfahren:

  1. Holen Sie sich die Application ID von Studio oder mit PowerShell.
  2. Melden Sie sich beim Azure-Portal an.
  3. Wählen Sie in Azure Active Directory.
  4. Wählen Sie in Azure AD unter App registrations Ihre Anwendung aus.
  5. Gehen Sie zu Zertifikate & Geheimnisse.
  6. Klicken Sie auf Client secrets.

Anwendungsgeheimnis im Azure-Portal

Verbindung mithilfe von vorhandenem Dienstprinzipal erstellen

Wenn Sie bereits einen Dienstprinzipal haben, können Sie ihn verwenden, um eine Verbindung mit Studio herzustellen.

Stellen Sie sicher, dass Sie diese Elemente verfügbar haben:

  • Abonnement-ID
  • ActiveDirectory-ID (Mandanten-ID)
  • Anwendungs-ID
  • Anwendungsgeheimnis

    Weitere Informationen finden Sie unter Anwendungsgeheimnis abrufen.

  • Ablaufdatum des Geheimnisses

Verfahren:

Führen Sie im Assistenten Verbindung und Ressourcen hinzufügen folgende Schritte aus:

  1. Wählen Sie auf der Seite Verbindung die Option Neue Verbindung erstellen, als Verbindungstyp Microsoft Azure und Ihre Azure-Umgebung.

  2. Wählen Sie die Tools, die zum Erstellen der virtuellen Maschinen verwendet werden sollen, und wählen Sie dann Weiter.

  3. Geben Sie auf der Seite Verbindungsdetails die ID Ihres Azure-Abonnements und einen Namen für die Verbindung ein.

    Hinweis

    Der Verbindungsname kann 1-64 Zeichen enthalten und darf nicht nur Leerzeichen oder die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.

  4. Wählen Sie Vorhandene verwenden. Geben Sie im Fenster Vorhandene Dienstprinzipaldetails die folgenden Einstellungen für den bestehenden Dienstprinzipal ein. Nachdem Sie die Details eingegeben haben, ist die Schaltfläche Speichern aktiviert. Wählen Sie Speichern. Sie können erst fortfahren, wenn Sie gültige Angaben gemacht haben.

    • Abonnement-ID. Geben Sie Ihre Azure-Abonnement-ID ein. Um Ihre Abonnement-ID zu erhalten, melden Sie sich beim Azure-Portal an und navigieren Sie zu Abonnements > Übersicht.
    • Active Directory-ID (Mandanten-ID). Geben Sie die Verzeichnis-ID (Mandanten-ID) der Anwendung ein, die Sie bei Azure AD registriert haben.
    • Anwendungs-ID. Geben Sie die Anwendungs-ID (Client-ID) der Anwendung ein, die Sie bei Azure AD registriert haben.
    • Anwendungsgeheimnis. Geben Sie einen geheimen Clientschlüssel ein. Die registrierte Anwendung verwendet den Schlüssel zur Authentifizierung bei Azure AD. Es wird empfohlen, Schlüssel aus Sicherheitsgründen regelmäßig zu ändern. Speichern Sie den Schlüssel unbedingt, da Sie ihn später nicht abrufen können.
    • Ablaufdatum des Geheimnisses. Geben Sie das Datum ein, nach dem das Anwendungsgeheimnis abläuft. Sie erhalten ab 14 Tagen vor Ablauf des geheimen Schlüssels eine Warnung auf der Konsole. Wenn der geheime Schlüssel abläuft, erhalten Sie Fehler.

      Hinweis

      Aus Sicherheitsgründen darf das Ablaufdatum nicht mehr als zwei Jahre in der Zukunft liegen.

    • Authentifizierungs-URL. Dieses Feld wird automatisch ausgefüllt und kann nicht bearbeitet werden.
    • Verwaltungs-URL. Dieses Feld wird automatisch ausgefüllt und kann nicht bearbeitet werden.
    • Speichersuffix. Dieses Feld wird automatisch ausgefüllt und kann nicht bearbeitet werden.
    • Azure-Blob-Storage-Endpunkt zum Hoch- oder Herunterladen von Datenträgern oder Snapshots. Dieses Feld wird automatisch ausgefüllt und kann nicht bearbeitet werden.
    • Key Vault Service. Dieses Feld wird automatisch ausgefüllt und kann nicht bearbeitet werden.
    • Servicebus-Suffix. Dieses Feld wird automatisch ausgefüllt und kann nicht bearbeitet werden.

      Für die Erstellung eines MCS-Katalogs in Azure ist Zugriff auf die folgenden Endpunkte erforderlich. Durch Zugriff auf diese Endpunkte wird die Konnektivität zwischen Ihrem Netzwerk und dem Azure-Portal und seinen Diensten optimiert.

      • Authentifizierungs-URL: https://login.microsoftonline.com
      • Verwaltungs-URL: https://management.azure.com. Dies ist eine Anforderungs-URL für Azure Resource Manager-Anbieter-APIs. Der Endpunkt für die Verwaltung hängt von der Umgebung ab. Für Azure Global ist es beispielsweise https://management.azure.com, und für Azure US Government ist es https://management.usgovcloudapi.net.
      • Speichersuffix: https://*.core.windows.net. Dieses (*) ist ein Platzhalterzeichen für das Speichersuffix. Beispiel: https://demo.table.core.windows.net.
      • Azure-Blob-Storage-Endpunkt zum Hoch- oder Herunterladen von Datenträgern oder Snapshots: https://*.storage.azure.net. Dieses (*) ist ein Platzhalterzeichen für Import- und Exportvorgänge von Blob-Speichern. Beispiel: https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net.
      • Schlüsseltresordienst: https://*.vault.azure.net. Dieses (*) ist ein Platzhalterzeichen für den Schlüsseltresornamen. Zum Beispiel https://<your-key-vault-name>.vault.azure.net.
      • Servicebus-Suffix: https://*.servicebus.windows.net. Dieses (*) ist ein Platzhalterzeichen für Namespaces, die in der globalen Azure-Cloud erstellt wurden. Zum Beispiel https://{serviceNamespace}.servicebus.windows.net/{path}.
  5. Nachdem Sie Speichern gewählt haben, wird die Seite Verbindungsdetails wieder angezeigt. Wählen Sie Weiter, um mit der nächsten Seite fortzufahren.

  6. Konfigurieren Sie die Verbindungsressourcen wie folgt:

    • Wählen Sie auf der Seite Region eine Region aus.
    • Gehen Sie auf der Seite Netzwerk wie folgt vor:
      • Geben Sie einen Ressourcennamen zur Identifizierung der Kombination aus Region und Netzwerk ein. Der Name muss aus 1–64 Zeichen bestehen. Ein Ressourcenname darf nicht nur Leerzeichen oder die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.
      • Wählen Sie eine Kombination aus virtuellem Netzwerk und Ressourcengruppe. (Wenn Sie mehrere virtuelle Netzwerke mit dem gleichen Namen haben, erzielen Sie durch die Kombination aus Netzwerknamen und Ressourcengruppe Einmaligkeit.) Wenn die auf der vorherigen Seite ausgewählte Region keine virtuellen Netzwerke enthält, kehren Sie zu der Seite zurück und wählen Sie eine Region, die virtuelle Netzwerke enthält.
  7. Überprüfen Sie auf der Seite Zusammenfassung die Einstellungen und wählen Sie Fertig stellen, um die Einrichtung abzuschließen.

Hostverbindung mit Azure Managed Identity erstellen

Sie können mit Azure Managed Identity eine Hostverbindung zu Microsoft Azure Resource Manager herstellen. Die von Azure verwalteten Identitäten bieten eine sichere und skalierbare Möglichkeit, auf Azure-Dienste zuzugreifen, ohne dass Anmeldeinformationen verwaltet werden müssen. Dieser Ansatz eliminiert die Risiken, die mit der Speicherung, Rotation und Verwaltung von Geheimnissen verbunden sind.

Sie können diese Hostverbindung mit einer neuen CustomProperty AuthenticationMode erstellen. Der AuthenticationMode hat drei Optionen: AppClientSecret, SystemAssignedManagedIdentity und UserAssignedManagedIdentity.

Im Folgenden finden Sie eine Beschreibung der Optionen:

  • AppClientSecret: Dies ist der Standardwert. Dies erfordert eine Anwendungs-ID und ein Geheimnis.
  • UserAssignedManagedIdentity: Dafür muss eine Client-ID über einen UserName bereitgestellt werden.
  • SystemAssignedManagedIdentity: Dafür ist keine Eingabe erforderlich. Selbst wenn Sie eine Client-ID angeben, wird diese ignoriert.

Bedingung:

Der Parameter ProxyHypervisorTrafficThroughConnector muss true sein, um die verwaltete Identität verwenden zu können.

Im Folgenden finden Sie die Schritte zum Erstellen der Hostverbindung mit Azure Managed Identity:

  1. Installieren Sie einen Citrix Cloud Connector in einer Azure-VM.
  2. Aktivieren Sie Azure Managed Identity auf dieser Cloud Connector-VM.

    • Für die dem Benutzer zugewiesene verwaltete Identität:

      1. Erstellen Sie im Azure-Portal eine dem Benutzer zugewiesene verwaltete Identität. Weitere Informationen finden Sie unter Eine vom Benutzer zugewiesene verwaltete Identität erstellen und zuweisen.
      2. Weisen Sie der verwalteten Identität Azure-Rollen zu. Siehe Erforderliche Azure-Berechtigungen.
      3. Erstellen Sie eine Azure-VM als Cloud Connector und fügen Sie ihr die vom Benutzer zugewiesene Identität hinzu.
    • Für die dem System zugewiesene verwaltete Identität:

      1. Öffnen Sie das Azure-Portal und gehen Sie zu Ihrer VM.
      2. Wählen Sie in den Einstellungen der VM das Identity Blade aus.
      3. Stellen Sie auf der vom System zugewiesenen Registerkarte den Status auf Ein.
      4. Klicken Sie auf Speichern.
      5. Gewähren Sie erforderliche Azure-Berechtigungen.

      Hinweis

      Wenn Sie die vom System zugewiesene verwaltete Identität auf einer Cloud Connector-VM aktivieren und sie zum Erstellen einer Hostverbindung verwenden, können Sie auch dann Hostverbindungen mit der dem System zugewiesenen verwalteten Identität erstellen, nachdem Sie sie auf der Cloud Connector-VM deaktiviert haben. Die Erstellung von Hostverbindungen kann auch 24 Stunden nach der Deaktivierung der Identität erfolgreich sein. Dies liegt daran, dass verwaltete Identitätstoken von der zugrunde liegenden Azure-Infrastruktur zwischengespeichert werden. Weitere Informationen finden Sie unter Werden Token für verwaltete Identitäten zwischengespeichert?.

  3. Erstellen Sie die Hostverbindung mit diesem neuen Authentifizierungstyp mit den PowerShell-Befehlen:

    1. Öffnen Sie ein PowerShell-Fenster.
    2. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
    3. Erstellen Sie Host-Verbindungen. Beispiel:

      • Für die dem Benutzer zugewiesene verwaltete Identität:

           $UserName = "should be the Client ID of the user-assigned managed identity"
           $Password = "It can be any string.Not used"
        
           $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="' + $SubscriptionId + '" />'`
           +  '<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="' + $TenantId + '" />'`
           +  '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'`
           +  '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="UserAssignedManagedIdentity" />'`
           +  '</CustomProperties>'
        
           New-Item -ConnectionType "Custom" `
           -CustomProperties $CustomProperties `
           -HypervisorAddress @($HypervisorAddress) `
           -Path @("XDHyp:\Connections\$($ConnectionName)") `
           -Metadata $Metadata `
           -Persist `
           -PluginId "AzureRmFactory" `
           -Scope @() `
           -Password $Password `
           -UserName $UserName `
           -ZoneUid $zoneUid
         <!--NeedCopy-->
        
      • Für die dem System zugewiesene verwaltete Identität:

           $UserName = "It can be any string.   Not used"
           $Password = "It can be any string.   Not used"  
           $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="' + $SubscriptionId + '" />'`
           +  '<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="' + $TenantId + '" />'`
           +  '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'`
           +  '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" />'`
           +  '</CustomProperties>'
        
           New-Item -ConnectionType "Custom" `
           -CustomProperties $CustomProperties `
           -HypervisorAddress @($HypervisorAddress) `
           -Path @("XDHyp:\Connections\$($ConnectionName)") `
           -Metadata $Metadata `
           -Persist `
           -PluginId "AzureRmFactory" `
           -Scope @() `
           -Password $Password `
           -UserName $UserName `
           -ZoneUid $zoneUid
         <!--NeedCopy-->
        

Sie können auch eine bestehende Hostverbindung aktualisieren, um eine vom System zugewiesene Identität oder eine vom Benutzer zugewiesene verwaltete Identität zu verwenden. Führen Sie beispielsweise die folgenden PowerShell-Befehle aus:

  1. Öffnen Sie ein PowerShell-Fenster.
  2. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
  3. Führen Sie die folgenden Befehle aus:

      $connName = "ConnectionName"
      $conn = get-item XDHyp:\Connections\$connName
      $conn.CustomProperties
    <!--NeedCopy-->
    
  4. Ändern Sie ProxyHypervisorTrafficThroughConnector in True und fügen Sie die benutzerdefinierte Eigenschaft für AuthenticationMode hinzu, die auf SystemAssignedManagedIdentity oder userAssignedManagedIdentity gesetzt ist. Beispiel:

      $customProps = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"><Property xsi:type="StringProperty" Name="SubscriptionId" Value="subscriptionId" /><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="tenantId" /><Property xsi:type="StringProperty" Name="AzureAdDeviceManagement" Value="false" /><Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="true" /><Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" /></CustomProperties>'
    <!--NeedCopy-->
    
  5. Führen Sie $cred = Get-Credential aus. Gib hier etwas ein.
  6. Führen Sie Set-Item -PSPath xDHYp:\Connections\$connName -CustomProperties $CustomProperties -username $cred.username -securepassword $cred.password aus.

Dienstprinzipale und Verbindungen verwalten

In diesem Abschnitt erfahren Sie, wie Sie Dienstprinzipale und Verbindungen verwalten können:

Einstellungen für Azure-Drosselung konfigurieren

Azure Resource Manager drosselt Anforderungen von Abonnements und Mandanten durch das Routing von Datenverkehr gemäß Grenzwerten, die auf die spezifischen Anforderungen des Anbieters zugeschnitten sind. Weitere Informationen finden Sie auf der Website von Microsoft unter Drosseln von Resource Manager-Anforderungen. Es gibt Grenzwerte für Abonnements und Mandanten, wenn die Verwaltung zahlreicher Maschinen problematisch werden kann. Beispielsweise können bei einem Abonnement mit zahlreichen Maschinen Leistungsprobleme im Zusammenhang mit Energievorgängen auftreten.

Tipp

Weitere Informationen finden Sie unter Verbessern der Azure-Leistung mit Maschinenerstellungsdiensten.

Zur Lösung solcher Probleme können Sie in Citrix DaaS die interne MCS-Einschränkung entfernen, um das Azure-Anforderungskontingent stärker zu nutzen.

Für große Abonnements (z. B. mit 1000 oder mehr VMs) empfehlen wir die folgenden optimalen Einstellungen für das Ein- und Ausschalten von VMs:

  • Absolute gleichzeitige Operationen: 500
  • Maximale neue Operationen pro Minute: 2000
  • Maximale Gleichzeitigkeit von Operationen: 500

Verwenden Sie Studio, um Azure-Operationen für eine bestimmte Hostverbindung zu konfigurieren:

  1. Wählen Sie in Studio im linken Bereich Hosting aus.
  2. Wählen Sie eine Azure-bezogene Verbindung zur Bearbeitung aus.
  3. Wählen Sie Erweitert im Assistenten Verbindung bearbeiten.
  4. Geben Sie auf der Seite Erweitert die Anzahl gleichzeitiger Aktionen, die maximale Anzahl neuer Aktionen pro Minute und ggf. weitere Verbindungsoptionen an.

Azure-Drosselung

MCS unterstützt standardmäßig maximal 500 gleichzeitige Vorgänge. Alternativ können Sie mit dem Remote PowerShell SDK die maximale Anzahl gleichzeitiger Vorgänge festlegen.

Verwenden Sie die PowerShell-Eigenschaften ** und MaximumConcurrentProvisioningOperations, um die maximale Anzahl gleichzeitiger Azure-Bereitstellungsvorgänge anzugeben. Beachten Sie Folgendes bei der Verwendung dieser Eigenschaft:

  • Der Standardwert von MaximumConcurrentProvisioningOperations ist 500.
  • Konfigurieren Sie den Parameter MaximumConcurrentProvisioningOperations mit dem PowerShell-Befehl Set-item.

Dienstprinzipal einer bestehenden Hosting-Verbindung verwalten

Nachdem Sie eine Hosting-Verbindung mit einem Dienstprinzipal erstellt haben, können Sie die Hosting-Verbindung so bearbeiten, dass sie über Folgendes verfügt:

  • Neuer Dienstprinzipal
  • Verwenden Sie einen anderen vorhandenen Dienstprinzipal
  1. Wählen Sie in Studio im linken Bereich Hosting aus.
  2. Wählen Sie die Verbindung und dann in der Aktionsleiste Verbindung bearbeiten aus.
  3. Wählen Sie im linken Bereich Verbindungseigenschaften.
  4. Klicken Sie auf der Seite Verbindungseigenschaften auf Einstellungen bearbeiten. Sie können jetzt wählen, ob Sie einen neuen Dienstprinzipal erstellen oder einen anderen vorhandenen Dienstprinzipal verwenden möchten.

    Einstellungen bearbeiten

    • Klicken Sie auf Dienstprinzipal erstellen, um einen neuen Dienstprinzipal zu erstellen. Folgen Sie der Aufforderung, um sich bei Ihrem Azure AD-Benutzerkonto anzumelden. Citrix verwendet die mehrinstanzenfähige Anwendungs-ID 08b70dc3-76c5-4611-ba7d-3312ba36cb2b, um einen neuen Dienstprinzipal für die bestehende Hostverbindung zu erstellen und die entsprechenden Berechtigungen zu gewähren.
    • Klicken Sie auf Vorhandene verwenden, um einen anderen vorhandenen Dienstprinzipal für diese Hosting-Verbindung zu verwenden.

Imagefreigabe in Azure aktivieren

Beim Erstellen oder Aktualisieren von Maschinenkatalogen können Sie per Azure Compute Gallery freigegebene Images aus anderen Azure-Mandanten und -Abonnements auswählen. Um die Imagefreigabe innerhalb oder zwischen Mandanten zu aktivieren, müssen Sie die erforderlichen Einstellungen in Azure vornehmen:

Images innerhalb eines Mandanten freigeben (abonnementübergreifend)

Um ein Image in Azure Compute Gallery auszuwählen, das zu einem anderen Abonnement gehört, muss es für den Dienstprinzipal (SPN) dieses Abonnements freigegeben werden.

Dienstprinzipal SPN 1 ist in Studio beispielsweise wie folgt konfiguriert:

Dienstprinzipal: SPN 1

Abonnement: Abonnement 1

Mandant: Mandant 1

Das Image ist in einem anderen Abonnement, was in Studio wie folgt konfiguriert ist:

Abonnement: Abonnement 2

Mandant: Mandant 1

Wenn Sie das Image in Abonnement 2 für Abonnement 1 (SPN 1) freigeben möchten, gehen Sie zu Abonnement 2 und geben Sie die Ressourcengruppe für SPN1 frei.

Die Imagefreigabe muss über die rollenbasierte Zugriffssteuerung (RBAC) von Azure erfolgen. Azure RBAC ist das bei der Verwaltung des Zugriffs auf Azure-Ressourcen verwendete Autorisierungssystem. Weitere Informationen zu Azure RBAC finden Sie im Microsoft-Dokument Was ist die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC)?. Um Zugriff zu gewähren, weisen Sie Dienstprinzipals Rollen im Bereich der Ressourcengruppe mit der Rolle “Mitwirkender” zu. Zum Zuweisen von Azure-Rollen benötigen Sie die Berechtigung Microsoft.Authorization/roleAssignments/write, z. B. Benutzerzugriffsadministrator oder Besitzer. Weitere Informationen zum Freigeben von Images für andere SPNs finden Sie im Microsoft-Dokument Zuweisen von Azure-Rollen über das Azure-Portal.

Images mandantenübergreifend freigeben

Um Bilder mit Azure Compute Gallery für mehrere Mandanten freizugeben, erstellen oder aktualisieren Sie die Anwendungsregistrierung und verwenden Sie diese Anwendung, um eine Hostingverbindung herzustellen.

Wenn beispielsweise zwei Mandanten vorliegen (Mandant 1 und Mandant 2) und Sie Ihren Image-Katalog mit Mandant 1 teilen möchten, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Anwendungsregistrierung für Mandant 1. Weitere Informationen finden Sie unter Create the app registration.

  2. Fordern Sie über einen Browser eine Anmeldung an, um Mandant 2 Zugriff auf die Anwendung zu geben. Ersetzen Sie die Tenant2 ID2 durch die ID von Mandant 1. Ersetzen Sie Application (Client) ID durch die Anwendungs-ID der von Ihnen erstellten Anwendungsregistrierung. Wenn Sie die IDs ersetzt haben, fügen Sie die URL in einen Browser ein und folgen Sie den Schritten zum Anmelden bei Mandant 2. Beispiel:

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

    Weitere Informationen finden Sie unter Give Tenant 2 access.

  3. Gewähren Sie der Anwendung Zugriff auf die Ressourcengruppe von Mandant 2. Melden Sie sich als Mandant 2 an und gewähren Sie der Anwendungsregistrierung Zugriff auf die Ressourcengruppe, die das Galeriebild enthält. Weitere Informationen finden Sie unter Authenticate requests across tenants.

Fügen Sie einer Verbindung mit Studio freigegebene Mandanten hinzu

Wenn Sie Maschinenkataloge in Studio erstellen oder aktualisieren, können Sie geteilte Images von verschiedenen Azure-Mandanten und Abonnements auswählen (gemeinsam genutzt über die Azure Compute Gallery). Für dieses Feature müssen Sie Informationen zu freigegebenen Mandanten und Abonnements für zugehörige Hostverbindungen angeben.

Hinweis

Vergewissern Sie sich, dass Sie die erforderlichen Einstellungen in Azure vorgenommen haben, um die Imagefreigabe innerhalb oder zwischen Mandanten zu aktivieren. Weitere Informationen finden Sie unter Images mandantenübergreifend freigeben.

Führen Sie die folgenden Schritte für eine Verbindung aus:

  1. Wählen Sie in Studio im linken Bereich Hosting aus.
  2. Wählen Sie die Verbindung und dann in der Aktionsleiste Verbindung bearbeiten aus.

    Freigegebene Mandanten

  3. Führen Sie unter Freigegebene Mandanten die folgenden Schritte aus:
    1. Geben Sie die dem Abonnement der Verbindung zugeordnete Anwendungs-ID und das Anwendungsgeheimnis an. DaaS verwendet diese Informationen zur Authentifizierung bei Azure AD.
    2. Fügen Sie Mandanten und Abonnements hinzu, die sich die Azure Compute Gallery mit dem Abonnement der Verbindung teilen. Sie können bis zu acht freigegebene Mandanten und acht Abonnements für jeden Mandanten hinzufügen.
  4. Abschließend wählen Sie entweder Übernehmen, damit die Änderungen angewendet werden und das Fenster geöffnet bleibt, oder OK, damit die Änderungen angewendet werden und das Fenster geschlossen wird.

Implementieren der Bildfreigabe mit PowerShell

Dieser Abschnitt erläutert die Prozesse zur Image-Freigabe mithilfe von PowerShell:

Image aus einem anderen Abonnement auswählen

Sie können in Azure Compute Gallery ein Image auswählen, das zu einem anderen freigegebenen Abonnement im selben Azure-Mandanten gehört, um MCS-Kataloge mit PowerShell-Befehlen zu erstellen und zu aktualisieren.

  1. Citrix erstellt im Stammordner der Hostingeinheit einen neuen freigegebenen Abonnementordner mit dem Namen sharedsubscription.
  2. Listen Sie alle freigegebenen Abonnements im Mandanten auf.

      Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
    <!--NeedCopy-->
    
  3. Wählen Sie ein freigegebenes Abonnement und listen Sie dann alle freigegebenen Ressourcengruppen dieses Abonnements auf.

      Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
    <!--NeedCopy-->
    
  4. Wählen Sie eine Ressourcengruppe und listen Sie dann alle Kataloge in der Ressourcengruppe auf.

      Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
    <!--NeedCopy-->
    
  5. Wählen Sie einen Katalog und listen Sie dann alle Imagedefinitionen des Katalogs auf.

      Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
    <!--NeedCopy-->
    
  6. Wählen Sie eine Imagedefinition und listen Sie dann alle Imageversionen der Imagedefinition auf.

      Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
    <!--NeedCopy-->
    
  7. Zum Erstellen und Aktualisieren eines MCS-Katalogs verwenden Sie die folgenden Elemente:

    • Ressourcengruppe
    • Katalog
    • Katalogimagedefinition
    • Katalogimageversion

Benutzerdefinierte Eigenschaften der Hostverbindung mit IDs für freigegebene Mandanten aktualisieren

Verwenden Sie Set-Item, um die benutzerdefinierten Eigenschaften der Hostingverbindung mit gemeinsam genutzten Mandanten-IDs und Abonnement-IDs zu aktualisieren. Fügen Sie eine Eigenschaft SharedTenants in CustomProperties hinzu. Das Format von Freigegebene Mandanten ist:

  [{"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-->

Beispiel:

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

Hinweis

Sie können mehrere Mandanten hinzufügen. Jeder Mandant kann mehrere Abonnements haben.

Image eines anderen Mandanten auswählen

Sie können in der Azure Compute Gallery mit PowerShell-Befehlen ein Image auswählen, das zu einem anderen Azure-Mandanten gehört, um MCS-Kataloge zu erstellen und zu aktualisieren.

  1. Citrix erstellt im Stammordner der Hostingeinheit einen neuen freigegebenen Abonnementordner mit dem Namen sharedsubscription.
  2. Listen Sie alle freigegebenen Abonnements auf.

      Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
    <!--NeedCopy-->
    
  3. Wählen Sie ein freigegebenes Abonnement und listen Sie dann alle freigegebenen Ressourcengruppen dieses Abonnements auf.

      Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
    <!--NeedCopy-->
    
  4. Wählen Sie eine Ressourcengruppe und listen Sie dann alle Kataloge in der Ressourcengruppe auf.

      Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
    <!--NeedCopy-->
    
  5. Wählen Sie einen Katalog und listen Sie dann alle Imagedefinitionen des Katalogs auf.

      Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
    <!--NeedCopy-->
    
  6. Wählen Sie eine Imagedefinition und listen Sie dann alle Imageversionen der Imagedefinition auf.

      Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
    <!--NeedCopy-->
    
  7. Zum Erstellen und Aktualisieren eines MCS-Katalogs verwenden Sie die folgenden Elemente:

    • Ressourcengruppe
    • Katalog
    • Katalogimagedefinition
    • Katalogimageversion

Sichere Umgebung für von Azure verwalteten Netzwerkverkehr erstellen

MCS ermöglicht das Weiterleiten von Netzwerkverkehr (API-Aufrufe von Citrix Cloud an Azure-Hypervisor) über Cloud Connectors in Ihrer Umgebung. Diese Implementierung hilft Ihnen, Ihr Azure-Abonnement zu sperren, um Netzwerkverkehr von bestimmten IP-Adressen zuzulassen. Fügen Sie dazu ProxyHypervisorTrafficThroughConnector in CustomProperties hinzu. Nachdem Sie die benutzerdefinierten Eigenschaften festgelegt haben, können Sie Azure-Richtlinien konfigurieren, um einen privaten Zugriff auf Azure Managed Disks einzurichten.

Wenn Sie die Azure-Richtlinie so konfigurieren, dass Datenträgerzugriffe für jeden neuen Datenträger zur Verwendung privater Endpunkte automatisch erstellt werden, können Sie maximal fünf Datenträger oder Snapshots gleichzeitig mit demselben Datenträgerzugriffsobjekt hoch- oder herunterladen (Azure-Einschränkung). Dieses Limit gilt für jeden Maschinenkatalog, wenn Sie die Azure-Richtlinie auf Ressourcengruppenebene konfigurieren, und für alle Maschinenkataloge, wenn Sie die Azure-Richtlinie auf Abonnementebene konfigurieren. Wenn Sie die Azure-Richtlinie nicht so konfigurieren, dass Datenträgerzugriffe für jeden neuen Datenträger zur Verwendung privater Endpunkte automatisch erstellt werden, wird das Limit von fünf gleichzeitigen Vorgängen nicht durchgesetzt.

Hinweis

Derzeit wird dieses Feature für die Connector Appliance nicht unterstützt. Informationen zu Azure-Einschränkungen im Zusammenhang mit diesem Feature finden Sie unter Import-/Exportzugriff für verwaltete Datenträger mit Azure Private Link einschränken.

Proxy aktivieren

Um den Proxy zu aktivieren, legen Sie die benutzerdefinierten Eigenschaften für die Hostverbindung wie folgt fest:

  1. Öffnen Sie ein PowerShell-Fenster mit dem Remote PowerShell SDK. Weitere Informationen finden Sie unter https://docs.citrix.com/en-us/citrix-daas/sdk-api.html#citrix-virtual-apps-and-desktops-remote-powershell-sdk/.
  2. Führen Sie die folgenden Befehle aus:

      Add-PSSnapin citrix*.
      cd XDHyp:\Connections\
      dir
    <!--NeedCopy-->
    
  3. Kopieren Sie die CustomProperties von der Verbindung in einen Notepad und hängen Sie die Eigenschaftseinstellung &lt;Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /&gt; an die CustomProperties an, um den Proxy zu aktivieren. Beispiel:

      <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
      <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" />
      <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="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" />
      <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />
      </CustomProperties>
    <!--NeedCopy-->
    
  4. Weisen Sie im PowerShell-Fenster den geänderten benutzerdefinierten Eigenschaften eine Variable zu. Beispiel:

      $customProperty = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
      <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" />
      <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="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" />
      <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />
      </CustomProperties>'
    <!--NeedCopy-->
    
  5. Führen Sie $cred = Get-Credential aus. Wenn Sie dazu aufgefordert werden, geben Sie die Anmeldeinformationen für die Verbindung ein. Die Anmeldeinformationen sind Azure-Anwendungs-ID und das Geheimnis.
  6. Führen Sie Set-Item -PSPath XDHyp:\Connections\&#060;Connection_Name&#062; -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password aus.

    Wichtig:

    Wenn Sie eine Meldung erhalten, dass subscriptionId fehlt, ersetzen Sie in der benutzerdefinierten Eigenschaft alle doppelten Anführungszeichen (“) durch Backtick gefolgt von doppelten Anführungszeichen (`“). Beispiel:

          <CustomProperties xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`" xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`">
          <Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx`" />
          <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=`"5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx`" />
          <Property xsi:type=`"StringProperty`" Name=`"ProxyHypervisorTrafficThroughConnector`" Value=`"True`" />
          </CustomProperties>
    <!--NeedCopy-->
    
  7. Führen Sie dir aus, um die aktualisierten CustomProperties-Einstellungen zu überprüfen.

Anwendungsgeheimnis und Ablaufdatum für Geheimnis verwalten

Sie müssen das Anwendungsgeheimnis für eine Verbindung vor Ablauf des Geheimnisses ändern. Sie erhalten eine Benachrichtigung in Studio, bevor der geheime Schlüssel abläuft.

Anwendungsgeheimnis in Azure erstellen

Sie können über das Azure-Portal ein Anwendungsgeheimnis für eine Verbindung erstellen.

  1. Wählen Sie Azure Active Directory.
  2. Wählen Sie in Azure AD unter App registrations Ihre Anwendung aus.
  3. Gehen Sie zu Zertifikate & Geheimnisse.
  4. Klicken Sie auf Clientgeheimnisse > Neues Clientgeheimnis.

    Anwendungsgeheimnis erstellen

  5. Geben Sie eine Beschreibung des geheimen Schlüssels ein und legen Sie eine Dauer fest. Wenn Sie fertig sind, wählen Sie Hinzufügen.

    Hinweis

    Speichern Sie den geheimen Clientschlüssel unbedingt, da Sie ihn später nicht abrufen können.

  6. Kopieren Sie das Clientgeheimnis und das Ablaufdatum.
  7. Bearbeiten Sie in Studio die entsprechende Verbindung und ersetzen Sie den Inhalt in den Feldern Anwendungsgeheimnis und Ablaufdatum des Geheimnisses durch die Werte, die Sie kopiert haben.

Ändern des Ablaufdatums des Geheimnisses

Sie können Studio verwenden, um das Ablaufdatum für das verwendete Anwendungsgeheimnis hinzuzufügen oder zu ändern.

  1. Klicken Sie im Assistenten Verbindung und Ressourcen hinzufügen mit der rechten Maustaste auf eine Verbindung und dann auf Verbindung bearbeiten.
  2. Klicken Sie auf der Seite Verbindungseigenschaften auf Ablaufdatum des Geheimnisses, um das Ablaufdatum für das verwendete Anwendungsgeheimnis hinzuzufügen oder zu ändern.

Ablaufdatum des Geheimnisses ändern

Verwenden Sie eine vorab erstellte Netzwerksicherheitsgruppe

Erstellen Sie eine Deny-All-Netzwerksicherheitsgruppe für die Imagevorbereitung, anstatt Citrix aufzufordern, NSG zu erstellen und zu ändern. Bearbeiten Sie die benutzerdefinierten Eigenschaften der Hostingeinheit mit mit dem PowerShell-Befehl Set-Item, um den Parameter NsgForPreparation einzuschließen, der die Deny-All-Netzwerksicherheitsgruppe bereitstellt.

Voraussetzungen

Konfigurieren Sie die folgenden Berechtigungen, die für einen Dienstprinzipal erforderlich sind:

  • Microsoft.Network/networkSecurityGroups/join/action: Ordnen Sie eine Netzwerksicherheitsgruppe einem Subnetz oder einer Netzwerkschnittstelle zu
  • Microsoft.Network/networkSecurityGroups/read: Ruft die Netzwerksicherheitsgruppe ab
  • Microsoft.Network/networkSecurityGroups/securityRules/read: Ruft die Regel ab

Fügen Sie die vorab erstellte Deny-All-Netzwerksicherheitsgruppe hinzu

Um die vorab erstellte Deny-All-Netzwerksicherheitsgruppe hinzuzufügen, legen Sie die benutzerdefinierten Eigenschaften auf der Hostingeinheit wie folgt fest:

  1. Öffnen Sie ein PowerShell-Fenster mit dem Remote PowerShell SDK.
  2. Führen Sie die folgenden Befehle aus:

      Add-PSSnapin citrix*.
      cd XDHyp:\HostingUnits\
      Dir
    <!--NeedCopy-->
    
  3. Wählen Sie eine Hostingeinheit aus, um die Details abzurufen:

      Get-Item "XDHyp:\HostingUnits\<hostingunitname>"
    <!--NeedCopy-->
    
  4. Kopieren Sie die CustomProperties in einen Editor und hängen Sie die Eigenschaftseinstellung &lt;Property xsi:type="StringProperty” Name="NsgForPreparation” Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/&gt; an. Beispiel:

      <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. Weisen Sie im PowerShell-Fenster den geänderten benutzerdefinierten Eigenschaften eine Variable zu. Beispiel:

      $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. Führen Sie $cred = Get-Credential aus. Wenn Sie dazu aufgefordert werden, geben Sie die Anmeldeinformationen für die Verbindung ein. Die Anmeldeinformationen sind Azure-Anwendungs-ID und das Geheimnis.
  7. Führen Sie den folgenden Befehl aus.

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

    Wichtig:

    Wenn Sie eine Meldung erhalten, dass SubscriptionId fehlt, ersetzen Sie in der benutzerdefinierten Eigenschaft alle doppelten Anführungszeichen (“) durch Backtick gefolgt von doppelten Anführungszeichen (`”).

  8. Führen Sie dir aus, um die aktualisierten CustomProperties-Einstellungen zu überprüfen.

Hinweis

Es dauert mehr als eine Minute, bis die Updates angezeigt werden.

Informationen zur Netzwerksicherheitsgruppe abrufen

Um die Details der Netzwerksicherheitsgruppe abzurufen, rufen Sie zuerst die Ressourcengruppen ab, die die Netzwerksicherheitsgruppe enthalten, und rufen Sie dann die Netzwerksicherheitsgruppe auf der Grundlage des Ressourcengruppennamens ab.

  1. Ruft die Ressourcengruppen ab, die die Netzwerksicherheitsgruppe enthalten. Beispiel:

      Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
    <!--NeedCopy-->
    
  2. Ruft die Netzwerksicherheitsgruppe auf der Grundlage des Ressourcengruppennamens ab. Beispiel:

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

Leere Ressourcengruppen filtern

Verwenden Sie den PowerShell-Befehl Get-HypInventoryItem, um leere Ressourcengruppen zu filtern, während Sie bei der Erstellung des Maschinenkatalogs ein Masterimage, ein Maschinenprofil oder ein vorbereitetes Image auswählen.

Beispiele:

  • Ruft die maximale Anzahl an Datensätzen auf einer Seite ab:

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
     <!--NeedCopy-->
    
  • Ruft die maximale Anzahl an Datensätzen auf einer Seite ab und filtert, um Ressourcencontainer mit bestimmten Ressourcen zu finden.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
     <!--NeedCopy-->
    
  • Rufen Sie mit Skip ab, um die Seite direkt anzuzeigen, und filtern Sie, um Ressourcencontainer zu finden, die bestimmte Ressourcen enthalten.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -skip 20 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
     <!--NeedCopy-->
    
  • Verwenden Sie einen Token, um die nächste Seite abzurufen, und filtern Sie, um Ressourcencontainer mit bestimmten Ressourcen zu finden.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' -ContinuationToken 'ew0KICAiJGlkIjogIjEiLA0KICAiTWF4Um93cyI6IDUsDQogICJSb3dzVG9Ta2lwIjogMjUsDQogICJLdXN0b0NsdXN0ZXJVcmwiOiAiaHR0cHM6Ly9hcmctbmV1LTEzLXNmLmFyZy5jb3JlLndpbmRvd3MubmV0Ig0KfQ=='
     <!--NeedCopy-->
    
  • Ruft alle Ressourcengruppen mit dem Tag “Citrix internal” ab und begrenzt die maximale Anzahl an Datensätzen mit MaxRecords.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
     <!--NeedCopy-->
    
  • Filtern Sie nach Maschinenprofil (Masterimage) mit dem Tag “Citrix internal” und begrenzen Sie die maximale Anzahl an Datensätzen mit MaxRecords.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
     <!--NeedCopy-->
    
  • Filtern Sie nach “Vorbereitetes Image” mit dem Tag “Citrix internal” und begrenzen Sie die maximale Anzahl an Datensätzen mit MaxRecords.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}'
     <!--NeedCopy-->
    
  • Filtern Sie nach dem Maschinenprofil (Vorbereitetes Image) mit dem Tag “Citrix internal” und begrenzen Sie die maximale Anzahl an Datensätzen mit MaxRecords.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
     <!--NeedCopy-->
    
  • Filtern Sie nach Image mit dem Tag “Citrix internal” und begrenzen Sie die maximale Anzahl an Datensätzen mit MaxRecords und Standort.

       Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}'
     <!--NeedCopy-->
    
  • Ruft alle Ressourcengruppen ohne Rücksicht auf die Tags CitrixResource ab.

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

Erforderliche Azure-Berechtigungen

Dieser Abschnitt enthält die für Azure erforderlichen Mindestberechtigungen und allgemeinen Berechtigungen.

Mindestberechtigungen

Mindestberechtigungen ermöglichen eine bessere Sicherheitskontrolle. Neue Features, die zusätzliche Berechtigungen erfordern, schlagen jedoch fehl, wenn nur Mindestberechtigungen erteilt sind. Dieser Abschnitt enthält die Mindestberechtigungen pro Aktion.

Hostverbindung erstellen

Fügen Sie eine Hostverbindung unter Verwendung der von Azure abgerufenen Informationen hinzu.

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

Energieverwaltung virtueller Maschinen

Schalten Sie die Maschineninstanzen ein oder aus.

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

Erstellen, Aktualisieren oder Löschen von VMs

Nach dem Erstellen eines Maschinenkatalogs können Sie Maschinen hinzufügen, löschen und aktualisieren und den Maschinenkatalog löschen.

Die folgende Liste umfasst notwendige Mindestberechtigungen, wenn Masterimages verwaltete Datenträger oder Snapshots sind, die sich in derselben Region wie die Hostverbindung befinden.

  "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",
  "Microsoft.Compute/capacityReservationGroups/deploy/action"
<!--NeedCopy-->

Für die folgenden Features benötigen Sie zusätzlich zu den Mindestberechtigungen die folgenden Berechtigungen:

  • Wenn das Masterimage eine virtuelle Festplatte (VHD) in einem Speicherkonto ist, das sich in derselben Region wie die Hostverbindung befindet:

       "Microsoft.Storage/storageAccounts/read",
       "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • Wenn das Masterimage eine ImageVersion aus Azure Compute Gallery (früher Shared Image Gallery) ist:

       "Microsoft.Compute/galleries/read",
       "Microsoft.Compute/galleries/images/read",
       "Microsoft.Compute/galleries/images/versions/read",
     <!--NeedCopy-->
    
  • Wenn das Masterimage ein verwalteter Datenträger, ein Snapshot oder ein virtueller Datenträger ist, die sich in einer anderen Region als die Hostverbindung befinden:

       "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-->
    
  • Wenn Sie eine von Citrix verwaltete Ressourcengruppe verwenden:

       "Microsoft.Resources/subscriptions/resourceGroups/write",
       "Microsoft.Resources/subscriptions/resourceGroups/delete",
     <!--NeedCopy-->
    
  • Wenn Sie das Masterimage in Azure Compute Gallery (früher Shared Image Gallery) in einem freigegebenen Mandanten oder Abonnement platzieren:

       "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-->
    
  • Wenn Sie dedizierte Azure-Hosts unterstützen:

       "Microsoft.Compute/hostGroups/read",
       "Microsoft.Compute/hostGroups/write",
       "Microsoft.Compute/hostGroups/hosts/read",
     <!--NeedCopy-->
    
  • Wenn Sie Server Side Encryption (SSE) mit kundenverwalteten Schlüsseln (CMK) verwenden:

       "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • Wenn Sie VMs mit ARM-Vorlagen (Maschinenprofil) bereitstellen:

       "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-->
    
  • Wenn Sie die Azure-Vorlagenspezifikation als Maschinenprofil verwenden:

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

Erstellen, Aktualisieren und Löschen von Maschinen mit nicht verwaltetem Datenträger

Die folgende Liste umfasst notwendige Mindestberechtigungen, wenn das Masterimage eine VHD ist und die vom Administrator bereitgestellte Ressourcengruppe verwendet wird:

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

Kostenmanagement

Im Folgenden finden Sie die Mindestberechtigungen, die zum Abrufen der VM-Preise erforderlich sind:

  "Microsoft.Consumption/pricesheets/read"
<!--NeedCopy-->

Allgemeine Berechtigungen

Die Rolle “Mitwirkender” erhält Vollzugriff zur Verwaltung aller Ressourcen. Dieser Satz von Berechtigungen hindert Sie nicht daran, Was ist neu zu erhalten.

Die folgenden Berechtigungen bieten die beste Kompatibilität für die zukünftige Verwendung, obwohl sie mehr Berechtigungen umfassen, als für aktuelle Features erforderlich sind:

  "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.Compute/capacityReservationGroups/capacityReservations/read",
  "Microsoft.Consumption/pricesheets/read",
  "Microsoft.Network/networkSecurityGroups/join/action",
  "Microsoft.Network/networkSecurityGroups/read",
  "Microsoft.Network/networkSecurityGroups/securityRules/read",
  "Microsoft.Compute/capacityReservationGroups/deploy/action"
<!--NeedCopy-->

Erforderliche Azure-Hostverbindungsberechtigungen konfigurieren

Sie können ganz einfach alle Mindestberechtigungen konfigurieren, die für einen Dienstprinzipal oder ein Benutzerkonto in Azure erforderlich sind, das an eine Hostverbindung gebunden ist, um alle MCS-Operationen mithilfe einer ARM-Vorlage auszuführen. Diese ARM-Vorlage automatisiert Folgendes:

  • Erstellung einer Azure-Rolle mit minimalen Berechtigungen, die für den Betrieb erforderlich sind.
  • Zuweisung dieser Rolle an einen vorhandenen Azure-Dienstprinzipal auf Abonnementebene.

Sie können diese ARM-Vorlage mithilfe der Azure Portal- oder PowerShell-Befehle bereitstellen. Weitere Informationen finden Sie unter ARM-Vorlage für Citrix Virtual Apps and Desktops Operations.

Berechtigungen für die Hostverbindung bestätigen

Sie können die Berechtigungen für eine Hostverbindung überprüfen, um Aufgaben im Zusammenhang mit der Erstellung und Verwaltung von MCS-Maschinenkatalogen auszuführen. Diese Implementierung hilft Ihnen, die fehlenden Berechtigungen, die für verschiedene Szenarien wie das Erstellen, Löschen und Aktualisieren von VMs oder die Energieverwaltung von VMs erforderlich sind, im Voraus zu ermitteln, sodass Sie vermeiden können, in kritischen Zeiten blockiert zu werden.

Sie können die Berechtigungen für eine Hostverbindung mit dem PowerShell-Befehl Test-HypHypervisorConnection überprüfen. Das Ergebnis des Befehls wird als Liste erfasst, in der jedes Element in der Liste in drei Abschnitte unterteilt ist.

  • Kategorie: Die Aktion oder Aufgabe, die ein Benutzer ausführen kann, um einen MCS-Maschinenkatalog zu erstellen und zu verwalten.
  • Korrekturmaßnahme: Der Schritt, den ein Administrator ausführen muss, um die Diskrepanz bei fehlenden Berechtigungen eines Benutzers zu beheben.
  • Fehlende Berechtigung: Die Liste der fehlenden Berechtigungen für eine Kategorie.

Gehen Sie wie folgt vor, um die Berechtigungen zu überprüfen:

  1. Erstellen Sie eine Hostverbindung zu Azure.
  2. Öffnen Sie ein PowerShell-Fenster vom Delivery Controller-Host aus.
  3. Führen Sie asnp citrix* aus, um die Citrix-spezifischen PowerShell-Module zu laden.
  4. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie über die erforderlichen Berechtigungen zum Testen einer Verbindung verfügen.

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

    Für den SPN sind Berechtigungen auf Rollenebene erforderlich:

    • Microsoft.Authorization/roleDefinitions/read (auf Abonnementebene oder auf Ressourcengruppenebene, falls eine Ressourcengruppe bereitgestellt wird)
    • Microsoft.Authorization/roleAssignments/read (auf Abonnementebene oder auf Ressourcengruppenebene, falls eine Ressourcengruppe bereitgestellt wird)

    Für den SPN sind Berechtigungen auf API-Ebene erforderlich:

    Microsoft.Graph:

    • Application.Read.All
    • Directory.Read.All
    • ServicePrincipalEndpoint.Read.All
  5. Nachdem Sie die fehlenden Berechtigungen hinzugefügt haben, die zum Nachschlagen Ihrer Berechtigungen erforderlich sind, führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie über Berechtigungen in den verschiedenen Kategorien verfügen.

    Beispiel:

    So testen Sie eine Verbindung auf Abonnementebene mit einer höheren erforderlichen Autorisierungsstufe:

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

    Beispiel:

    So testen Sie eine Verbindung auf Ressourcengruppenebene ohne hohe Autorisierungsstufe:

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

    Hinweis

    Der Parameter CustomProperties wird verwendet, um die Ressourcengruppenebene anzugeben, da es sich bei der Ressourcengruppe um eine verbindungsspezifische Information handelt.

    Beispiel:

    Um eine Verbindung mit der höheren Autorisierungsebene auf Ressourcengruppenebene zu testen:

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

Informationen zu Berechtigungen finden Sie unter Erforderliche Azure-Berechtigungen.

So geht es weiter

Weitere Informationen