Verbindung mit Microsoft Azure

Last published : Nov 13, 2026
Hinweis:
Seit Juli 2023 hat Microsoft Azure Active Directory (Azure AD) in Microsoft Entra ID umbenannt. In diesem Dokument bezieht sich jede Erwähnung von Azure Active Directory, Azure AD oder AAD nun auf Microsoft Entra ID.
Verbindungen und Ressourcen erstellen und verwalten beschreibt die Assistenten, die eine Verbindung erstellen. Die folgenden Informationen behandeln Details, die spezifisch für Azure Resource Manager-Cloudumgebungen sind.
Hinweis:
Bevor Sie eine Verbindung zu Microsoft Azure herstellen, müssen Sie Ihr Azure-Konto als Ressourcenstandort einrichten. Siehe Microsoft Azure Resource Manager-Cloudumgebungen.

Dienstprinzipale und Verbindungen erstellen

Bevor Sie Verbindungen erstellen, müssen Sie Dienstprinzipale einrichten, die von den Verbindungen für den Zugriff auf Azure-Ressourcen verwendet werden. Sie können eine Verbindung auf zwei Arten erstellen:
  • Dienstprinzipal und Verbindung gemeinsam mit Web Studio erstellen
  • Eine Verbindung mit einem zuvor erstellten Dienstprinzipal erstellen
Dieser Abschnitt zeigt Ihnen, wie Sie diese Aufgaben erledigen:

Überlegungen

  • Citrix® empfiehlt die Verwendung eines Dienstprinzipals mit der Rolle „Mitwirkender“. Eine Liste der Mindestberechtigungen finden Sie jedoch im Abschnitt Mindestberechtigungen.
  • Beim Erstellen der ersten Verbindung fordert Azure Sie auf, die erforderlichen Berechtigungen zu erteilen. Für zukünftige Verbindungen müssen Sie sich weiterhin authentifizieren, aber Azure merkt sich Ihre vorherige Zustimmung und zeigt die Aufforderung nicht erneut an.
  • Konten, die zur Authentifizierung verwendet werden, müssen über Berechtigungen verfügen, um Rollen im Abonnement mithilfe von Azure RBAC zuzuweisen. Beispiele: Besitzer, Administrator für rollenbasierte Zugriffssteuerung oder Benutzerzugriffsadministrator des Abonnements.
  • Das zur Authentifizierung verwendete Konto muss Mitglied des Verzeichnisses des Abonnements sein. Es gibt zwei Arten von Konten, die zu beachten sind: „Geschäfts-, Schul- oder Unikonto“ und „persönliches Microsoft-Konto“. Weitere Informationen finden Sie unter CTX219211.
  • Obwohl Sie ein vorhandenes Microsoft-Konto verwenden können, indem Sie es als Mitglied des Verzeichnisses des Abonnements hinzufügen, kann es zu Komplikationen kommen, wenn dem Benutzer zuvor Gastzugriff auf eine der Ressourcen des Verzeichnisses gewährt wurde. In diesem Fall haben sie möglicherweise einen Platzhaltereintrag im Verzeichnis, der ihnen nicht die erforderlichen Berechtigungen gewährt, und es wird ein Fehler zurückgegeben.
    Beheben Sie dies, indem Sie die Ressourcen aus dem Verzeichnis entfernen und explizit wieder hinzufügen. Gehen Sie jedoch vorsichtig mit dieser Option um, da sie unbeabsichtigte Auswirkungen auf andere Ressourcen haben kann, auf die das Konto zugreifen kann.
  • Es gibt ein bekanntes Problem, bei dem bestimmte Konten als Verzeichnisgäste erkannt werden, obwohl sie tatsächlich Mitglieder sind. Solche Konfigurationen treten typischerweise bei älteren, etablierten Verzeichniskonten auf. Workaround: Fügen Sie dem Verzeichnis ein Konto hinzu, das den korrekten Mitgliedschaftswert annimmt.
  • Ressourcengruppen sind einfach Container für Ressourcen und können Ressourcen aus anderen Regionen als ihrer eigenen Region enthalten. Dies kann potenziell verwirrend sein, wenn Sie erwarten, dass Ressourcen, die in der Region einer Ressourcengruppe angezeigt werden, verfügbar sind.
  • Stellen Sie sicher, dass Ihr Netzwerk und Subnetz groß genug sind, um die benötigte Anzahl von Maschinen aufzunehmen. Dies erfordert etwas Weitsicht, aber Microsoft hilft Ihnen, die richtigen Werte anzugeben, mit Anleitungen zur Kapazität des Adressraums.

Dienstprinzipal und Verbindung mit Web Studio erstellen

Wichtig:
Diese Funktion ist noch nicht für Azure China-Abonnements verfügbar.
Mit Web 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 (als Client Secret oder Application Secret bezeichnet) erstellt. Die registrierte Anwendung (in diesem Fall eine Verbindung) verwendet das Client Secret zur Authentifizierung bei Azure AD.
Stellen Sie vor dem Start sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:
  • Sie haben ein Benutzerkonto im Azure Active Directory-Mandanten Ihres Abonnements.
  • Konten, die zur Authentifizierung verwendet werden, müssen über Berechtigungen verfügen, um Rollen im Abonnement mithilfe von Azure RBAC zuzuweisen. Beispiele: Besitzer, Administrator für rollenbasierte Zugriffssteuerung oder Benutzerzugriffsadministrator des Abonnements.
  • Sie verfügen über globale Administrator-, Anwendungsadministrator- oder Anwendungsentwicklerberechtigungen für die Authentifizierung. Diese Berechtigungen können nach dem Erstellen der Hostverbindung widerrufen werden. Weitere Informationen zu Rollen finden Sie unter Integrierte Azure AD-Rollen.
Verwenden Sie den Assistenten Verbindung und Ressourcen hinzufügen, um einen Dienstprinzipal und eine Verbindung gemeinsam zu erstellen:
  1. Wählen Sie auf der Seite Verbindung die Option Neue Verbindung erstellen, den Verbindungstyp Microsoft Azure und Ihre Azure-Umgebung aus.
  2. Wählen Sie die Tools aus, die zum Erstellen der virtuellen Maschinen verwendet werden sollen, und wählen Sie dann Weiter.
  3. Geben Sie auf der Seite Verbindungsdetails Ihre Azure-Abonnement-ID und einen Namen für die Verbindung ein. Nachdem Sie die Abonnement-ID eingegeben haben, wird die Schaltfläche Neu erstellen aktiviert.
    Hinweis:
    Der Verbindungsname darf 1–64 Zeichen enthalten und darf weder nur Leerzeichen noch die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.
  4. Wählen Sie Neu erstellen aus, und geben Sie dann den Benutzernamen und das Kennwort des Azure Active Directory-Kontos ein.
  5. Wählen Sie Anmelden.
  6. Wählen Sie Akzeptieren, um Citrix Virtual Apps and Desktops™ die aufgeführten Berechtigungen zu erteilen. Citrix Virtual Apps and Desktops erstellt einen Dienstprinzipal, der die Verwaltung von Azure-Ressourcen im Namen des angegebenen Benutzers ermöglicht.
  7. Nachdem Sie Akzeptieren ausgewählt haben, kehren Sie zur Seite Verbindung im Assistenten zurück.
    Hinweis:
    Nachdem Sie sich erfolgreich bei Azure authentifiziert haben, verschwinden die Schaltflächen Neu erstellen und Vorhandene verwenden. Der Text Verbindung erfolgreich wird mit einem grünen Häkchen angezeigt, was die erfolgreiche Verbindung mit Ihrem Azure-Abonnement anzeigt.
  8. Wählen Sie auf der Seite Verbindungsdetails die Option Weiter.
    Hinweis:
    Sie können erst zur nächsten Seite wechseln, wenn Sie sich erfolgreich bei Azure authentifiziert und der Erteilung der erforderlichen Berechtigungen zugestimmt haben.
  9. Konfigurieren Sie Ressourcen für die Verbindung. Ressourcen umfassen die Region und das Netzwerk.
    • Wählen Sie auf der Seite Region eine Region aus.
    • Führen Sie auf der Seite Netzwerk die folgenden Schritte aus:
      • Geben Sie einen Ressourcennamen mit 1 bis 64 Zeichen ein, um die Kombination aus Region und Netzwerk zu identifizieren. Ein Ressourcenname darf nicht nur Leerzeichen oder die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.
      • Wählen Sie ein Paar aus virtuellem Netzwerk und Ressourcengruppe aus. (Wenn Sie mehrere virtuelle Netzwerke mit demselben Namen haben, bietet die Kombination des Netzwerknamens mit der Ressourcengruppe eindeutige Kombinationen.) Wenn die auf der vorherigen Seite ausgewählte Region keine virtuellen Netzwerke enthält, kehren Sie zu dieser Seite zurück und wählen Sie eine Region mit virtuellen Netzwerken aus.
  10. Zeigen Sie auf der Seite Zusammenfassung eine Zusammenfassung der Einstellungen an und wählen Sie Fertig stellen, um die Einrichtung abzuschließen.

Anwendungs-ID anzeigen

Nachdem Sie eine Verbindung 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. Die Registerkarte Details zeigt die Anwendungs-ID an.

Dienstprinzipal mit PowerShell erstellen

Um einen Dienstprinzipal mit PowerShell zu erstellen, stellen Sie eine Verbindung mit Ihrem Azure Resource Manager-Abonnement her und verwenden Sie die in den folgenden Abschnitten bereitgestellten PowerShell-Cmdlets.
Stellen Sie sicher, dass Sie die folgenden Elemente bereithalten:
  • SubscriptionId: Azure Resource Manager SubscriptionID für das Abonnement, in dem Sie VDAs bereitstellen möchten.
  • ActiveDirectoryID: Mandanten-ID der Anwendung, die Sie bei Azure AD registriert haben.
  • ApplicationName: Name für die in Azure AD zu erstellende Anwendung.
Die detaillierten Schritte sind wie folgt:
Verbinden Sie sich mit Ihrem Azure Resource Manager-Abonnement.
`Connect-AzAccount`
  1. Wählen Sie das Azure Resource Manager-Abonnement aus, in dem Sie den Dienstprinzipal erstellen möchten.
    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription
  2. Erstellen Sie die Anwendung in Ihrem AD-Mandanten.
    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName
  3. Erstellen Sie einen Dienstprinzipal.
    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId
  4. Weisen Sie dem Dienstprinzipal eine Rolle zu.
    New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId
  5. Notieren Sie sich im Ausgabefenster der PowerShell-Konsole die ApplicationId. Diese ID geben Sie beim Erstellen der Hostverbindung an.

Abrufen des Anwendungsgeheimnisses in Azure

Um eine Verbindung mit einem vorhandenen Dienstprinzipal herzustellen, müssen Sie zuerst die Anwendungs-ID und das Geheimnis des Dienstprinzipals im Azure-Portal abrufen.
Die detaillierten Schritte sind wie folgt:
  1. Rufen Sie die Anwendungs-ID aus dem Web Studio oder mithilfe von PowerShell ab.
  2. Melden Sie sich beim Azure-Portal an.
  3. Wählen Sie in Azure Azure Active Directory.
  4. Wählen Sie unter App-Registrierungen in Azure AD Ihre Anwendung aus.
  5. Gehen Sie zu Zertifikate & Geheimnisse.
  6. Klicken Sie auf Clientgeheimnisse.

Verbindung mit einem vorhandenen Dienstprinzipal erstellen

Wenn Sie bereits einen Dienstprinzipal haben, können Sie diesen verwenden, um eine Verbindung mit Web Studio herzustellen.
Stellen Sie sicher, dass Sie die folgenden Elemente bereithalten:
  • SubscriptionId
  • ActiveDirectoryID (Mandanten-ID)
  • Anwendungs-ID
  • Anwendungsgeheimnis
    Weitere Informationen finden Sie unter Abrufen des Anwendungsgeheimnisses.
  • Ablaufdatum des Geheimnisses
Die detaillierten Schritte sind wie folgt:
Im Assistenten Verbindung und Ressourcen hinzufügen:
  1. Wählen Sie auf der Seite Verbindung die Option Neue Verbindung erstellen, den Verbindungstyp Microsoft Azure und Ihre Azure-Umgebung aus.
  2. Wählen Sie die Tools aus, die zum Erstellen der virtuellen Maschinen verwendet werden sollen, und wählen Sie dann Weiter.
  3. Geben Sie auf der Seite Verbindungsdetails Ihre Azure-Abonnement-ID und einen Namen für die Verbindung ein.
    Hinweis:
    Der Verbindungsname kann 1 bis 64 Zeichen enthalten und darf weder nur Leerzeichen noch die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.
  4. Wählen Sie Vorhandene verwenden. Geben Sie im Fenster Details des vorhandenen Dienstprinzipals die folgenden Einstellungen für den vorhandenen Dienstprinzipal ein. Nachdem Sie die Details eingegeben haben, wird die Schaltfläche Speichern aktiviert. Wählen Sie Speichern. Sie können diese Seite erst verlassen, wenn Sie gültige Details angegeben 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- (Mandanten-) ID der Anwendung ein, die Sie bei Azure AD registriert haben.
    • Anwendungs-ID. Geben Sie die Anwendungs- (Client-) ID der Anwendung ein, die Sie bei Azure AD registriert haben.
    • Anwendungsgeheimnis. Erstellen Sie einen geheimen Schlüssel (Clientgeheimnis). Die registrierte Anwendung verwendet den Schlüssel zur Authentifizierung bei Azure AD. Wir empfehlen, die Schlüssel aus Sicherheitsgründen regelmäßig zu ändern. Speichern Sie den Schlüssel unbedingt, da Sie ihn später nicht mehr abrufen können.
    • Ablaufdatum des Geheimnisses. Geben Sie das Datum ein, nach dem das Anwendungsgeheimnis abläuft. Sie sehen ein Warnsymbol bei der spezifischen Hostverbindung im Knoten Hosting, beginnend 14 Tage vor Ablauf des geheimen Schlüssels. Wenn der geheime Schlüssel jedoch abläuft, erhalten Sie Fehlermeldungen.
      Hinweis:
      Aus Sicherheitsgründen darf der Ablaufzeitraum nicht länger als zwei Jahre ab dem aktuellen Datum sein.
    • Authentifizierungs-URL. Dieses Feld wird automatisch ausgefüllt und ist nicht bearbeitbar.
    • Verwaltungs-URL. Dieses Feld wird automatisch ausgefüllt und ist nicht bearbeitbar.
    • Speichersuffix. Dieses Feld wird automatisch ausgefüllt und ist nicht bearbeitbar.
    • Azure Blob Storage-Endpunkt zum Hoch- oder Herunterladen von Datenträgern oder Snapshots. Dieses Feld wird automatisch ausgefüllt und ist nicht bearbeitbar.
    • Key Vault-Dienst. Dieses Feld wird automatisch ausgefüllt und ist nicht bearbeitbar.
    • Service Bus-Suffix. Dieses Feld wird automatisch ausgefüllt und ist nicht bearbeitbar.
      Für die Erstellung eines MCS-Katalogs in Azure ist der Zugriff auf die folgenden Endpunkte erforderlich. Der Zugriff auf diese Endpunkte optimiert die Konnektivität zwischen Ihrem Netzwerk und dem Azure-Portal sowie dessen Diensten.
      • 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 dies beispielsweise https://management.azure.com, und für Azure US Government ist es https://management.usgovcloudapi.net.
      • Speichersuffix: https://*.core.windows.net. Dies (*) 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. Dies (*) ist ein Platzhalterzeichen für Import- und Exportvorgänge von Blob Storage. Beispiel: https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net.
      • Key Vault-Dienst: https://*.vault.azure.net. Dies (*) ist ein Platzhalterzeichen für den Key Vault-Namen. Beispiel: https://<your-key-vault-name>.vault.azure.net.
      • Service Bus-Suffix: https://*.servicebus.windows.net. Dies (*) ist ein Platzhalterzeichen für Namespaces, die in der globalen Azure-Cloud erstellt wurden. Beispiel: https://{serviceNamespace}.servicebus.windows.net/{path}.
  5. Nachdem Sie Speichern ausgewählt haben, kehren Sie zur Seite Verbindungsdetails zurück. Wählen Sie Weiter, um zur nächsten Seite zu gelangen.
  6. Konfigurieren Sie Ressourcen für die Verbindung. Ressourcen umfassen die Region und das Netzwerk.
    • Wählen Sie auf der Seite Region eine Region aus.
    • Führen Sie auf der Seite Netzwerk die folgenden Schritte aus:
      • Geben Sie einen Ressourcennamen mit 1 bis 64 Zeichen ein, um die Kombination aus Region und Netzwerk zu identifizieren. Ein Ressourcenname darf weder nur Leerzeichen noch die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.
      • Wählen Sie ein Paar aus virtuellem Netzwerk und Ressourcengruppe aus. (Wenn Sie mehrere virtuelle Netzwerke mit demselben Namen haben, bietet die Kombination des Netzwerknamens mit der Ressourcengruppe eindeutige Kombinationen.) Wenn die auf der vorherigen Seite ausgewählte Region keine virtuellen Netzwerke enthält, kehren Sie zu dieser Seite zurück und wählen Sie eine Region mit virtuellen Netzwerken aus.
  7. Zeigen Sie auf der Seite Zusammenfassung eine Zusammenfassung der Einstellungen an und wählen Sie Fertig stellen, um die Einrichtung abzuschließen.

Dienstprinzipale und Verbindungen verwalten

Dieser Abschnitt beschreibt, wie Sie Dienstprinzipale und Verbindungen verwalten können:

Azure-Drosselungseinstellungen konfigurieren

Azure Resource Manager drosselt Anforderungen für Abonnements und Mandanten und leitet den Datenverkehr basierend auf definierten Limits, die auf die spezifischen Anforderungen des Anbieters zugeschnitten sind. Weitere Informationen finden Sie unter Drosselung von Resource Manager-Anforderungen auf der Microsoft-Website. Es gibt Limits für Abonnements und Mandanten, bei denen die Verwaltung vieler Maschinen problematisch werden kann. Beispielsweise kann ein Abonnement, das viele Maschinen enthält, Leistungsprobleme im Zusammenhang mit Energieoperationen aufweisen.
Tipp:
Weitere Informationen finden Sie unter Verbessern der Azure-Leistung mit Machine Creation Services.
Um diese Probleme zu mindern, können Sie die interne MCS-Drosselung entfernen, um mehr des verfügbaren Anforderungskontingents von Azure zu nutzen.
Wir empfehlen die folgenden optimalen Einstellungen beim Ein- oder Ausschalten von VMs in großen Abonnements, z. B. solchen mit 1.000 VMs:
  • Absolute gleichzeitige Vorgänge: 500
  • Maximale neue Vorgänge pro Minute: 2000
  • Maximale Parallelität von Vorgängen: 500
Verwenden Sie Web Studio, um Azure-Vorgänge für eine bestimmte Azure-Verbindung zu konfigurieren:
  1. Wählen Sie in Web Studio im linken Bereich die Option Hosting aus.
  2. Wählen Sie die Verbindung aus.
  3. Wählen Sie im Assistenten Verbindung bearbeiten die Option Erweitert aus.
  4. Verwenden Sie auf der Seite Erweitert die Konfigurationsoptionen, um die Anzahl der gleichzeitigen Aktionen und die maximale Anzahl neuer Aktionen pro Minute sowie weitere Verbindungsoptionen anzugeben.
Azure-Drosselung
MCS unterstützt standardmäßig maximal 500 gleichzeitige Vorgänge. Alternativ können Sie das Remote PowerShell SDK verwenden, um die maximale Anzahl gleichzeitiger Vorgänge festzulegen.
Verwenden Sie die PowerShell-Eigenschaft MaximumConcurrentProvisioningOperations, um die maximale Anzahl gleichzeitiger Azure-Bereitstellungsvorgänge anzugeben. Beachten Sie bei der Verwendung dieser Eigenschaft Folgendes:
  • Der Standardwert von MaximumConcurrentProvisioningOperations ist 500.
  • Konfigurieren Sie den Parameter MaximumConcurrentProvisioningOperations mit dem PowerShell-Befehl Set-item.

Bildfreigabe in Azure aktivieren

Beim Erstellen oder Aktualisieren von Maschinenkatalogen können Sie freigegebene Images aus verschiedenen Azure-Mandanten und -Abonnements (über die Azure Compute Gallery freigegeben) auswählen. Um die Bildfreigabe innerhalb oder zwischen Mandanten zu ermöglichen, müssen Sie die erforderlichen Einstellungen in Azure vornehmen:

Images innerhalb eines Mandanten (abonnementübergreifend) freigeben

Um ein Image in der Azure Compute Gallery auszuwählen, das zu einem anderen Abonnement gehört, muss das Image für den Dienstprinzipal (SPN) dieses Abonnements freigegeben werden.
Wenn es beispielsweise einen Dienstprinzipal (SPN 1) gibt, der in Studio wie folgt konfiguriert ist:
Dienstprinzipal: SPN 1
Abonnement: Abonnement 1
Mandant: Mandant 1
Das Image befindet sich in einem anderen Abonnement, das in Studio wie folgt konfiguriert ist:
Abonnement: Abonnement 2
Mandant: Mandant 1
Wenn Sie das Image in Abonnement 2 mit Abonnement 1 (SPN 1) teilen möchten, wechseln Sie zu Abonnement 2 und geben Sie die Ressourcengruppe für SPN1 frei.
Das Image muss mit einem anderen SPN über die rollenbasierte Zugriffssteuerung von Azure (RBAC) freigegeben werden. Azure RBAC ist das Autorisierungssystem, das zur Verwaltung des Zugriffs auf Azure-Ressourcen verwendet wird. Weitere Informationen zu Azure RBAC finden Sie im Microsoft-Dokument Was ist die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC). Um Zugriff zu gewähren, weisen Sie Dienstprinzipalen Rollen im Bereich der Ressourcengruppe mit der Rolle „Mitwirkender“ zu. Um Azure-Rollen zuzuweisen, müssen Sie über die Berechtigung Microsoft.Authorization/roleAssignments/write verfügen, z. B. Benutzerzugriffsadministrator oder Besitzer. Weitere Informationen zum Freigeben von Images für einen anderen SPN finden Sie im Microsoft-Dokument Zuweisen von Azure-Rollen über das Azure-Portal.
Informationen zum Auswählen eines Images aus einem anderen Abonnement mithilfe von PowerShell-Befehlen finden Sie unter Auswählen eines Images aus einem anderen Abonnement.

Bilder mandantenübergreifend freigeben

Um Images mandantenübergreifend mit der Azure Compute Gallery freizugeben, erstellen Sie eine Anwendungsregistrierung.
Wenn es beispielsweise zwei Mandanten (Mandant 1 und Mandant 2) gibt und Sie Ihre Image-Galerie 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 Erstellen der App-Registrierung.
  2. Gewähren Sie Mandant 2 Zugriff auf die Anwendung, indem Sie eine Anmeldung über einen Browser anfordern. Ersetzen Sie Tenant2 ID durch die Mandanten-ID von Mandant 1. Ersetzen Sie Application (client) ID durch die Anwendungs-ID der von Ihnen erstellten Anwendungsregistrierung. Wenn Sie die Ersetzungen vorgenommen haben, fügen Sie die URL in einen Browser ein und folgen Sie den Anmeldeaufforderungen, um sich bei Mandant 2 anzumelden. Zum 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
    Weitere Informationen finden Sie unter Mandant 2 Zugriff gewähren.
  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 Katalogimage enthält. Weitere Informationen finden Sie unter Anforderungen mandantenübergreifend authentifizieren.
So erstellen Sie einen Katalog mit einem Image von einem anderen Mandanten mithilfe von PowerShell-Befehlen:

Freigegebene Mandanten mithilfe von Web Studio zu einer Verbindung hinzufügen

Beim Erstellen oder Aktualisieren von Maschinenkatalogen in Web Studio können Sie freigegebene Images aus verschiedenen Azure-Mandanten und -Abonnements auswählen (die über die Azure Compute Gallery freigegeben wurden). Diese Funktion erfordert, dass Sie Informationen zu freigegebenen Mandanten und Abonnements für zugehörige Hostverbindungen angeben.
Hinweis:
Stellen Sie sicher, dass Sie die erforderlichen Einstellungen in Azure konfiguriert haben, um die Bildfreigabe über Mandanten hinweg zu ermöglichen. Weitere Informationen finden Sie unter Bilder mandantenübergreifend freigeben.
Führen Sie die folgenden Schritte für eine Verbindung aus:
  1. Wählen Sie in Web Studio im linken Bereich die Option 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 folgende Schritte aus:
    • Geben Sie die Anwendungs-ID und das Anwendungsgeheimnis ein, die dem Abonnement der Verbindung zugeordnet sind. Citrix Virtual Apps and Desktops verwendet diese Informationen zur Authentifizierung bei Azure AD.
    • Fügen Sie Mandanten und Abonnements hinzu, die die Azure Compute Gallery mit dem Abonnement der Verbindung teilen. Sie können bis zu 8 freigegebene Mandanten und 8 Abonnements pro Mandant hinzufügen.
  4. Wenn Sie fertig sind, wählen Sie Anwenden, um die vorgenommenen Änderungen zu übernehmen und das Fenster geöffnet zu lassen, oder wählen Sie OK, um die Änderungen zu übernehmen und das Fenster zu schließen.

Implementieren der Imagefreigabe mit PowerShell

Auswählen eines Images aus einem anderen Abonnement

Sie können ein Image in der Azure Compute Gallery 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. Im Stammordner der Hostingeinheit erstellt Citrix einen neuen Ordner für freigegebene Abonnements namens sharedsubscription.
  2. Alle freigegebenen Abonnements in einem Mandanten auflisten.
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
  3. Wählen Sie ein freigegebenes Abonnement aus, und listen Sie dann alle freigegebenen Ressourcengruppen dieses freigegebenen Abonnements auf.
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
  4. Wählen Sie eine Ressourcengruppe aus, und listen Sie dann alle Galerien dieser Ressourcengruppe auf.
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
  5. Wählen Sie eine Galerie aus, und listen Sie dann alle Bilddefinitionen dieser Galerie auf.
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
  6. Wählen Sie eine Bilddefinition aus, und listen Sie dann alle Bildversionen dieser Bilddefinition auf.
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
  7. Erstellen und aktualisieren Sie einen MCS-Katalog mithilfe der folgenden Elemente:
    • Ressourcengruppe
    • Galerie
    • Galerie-Bilddefinition
    • Galerie-Bildversion
    Informationen zum Erstellen eines Katalogs mit dem Remote PowerShell SDK finden Sie unter <https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/>.

Benutzerdefinierte Eigenschaften der Hostverbindung mit freigegebenen Mandanten-IDs aktualisieren

Verwenden Sie Set-Item, um die benutzerdefinierten Eigenschaften der Hostverbindung mit freigegebenen Mandanten-IDs und Abonnement-IDs zu aktualisieren. Fügen Sie eine Eigenschaft SharedTenants in CustomProperties hinzu. Das Format von Shared Tenants 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"]}]
Zum 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
Hinweis:
Sie können mehr als einen Mandanten hinzufügen. Jeder Mandant kann mehr als ein Abonnement haben.

Wählen Sie ein Image aus einem anderen Mandanten aus

Sie können ein Image in der Azure Compute Gallery auswählen, das zu einem anderen Azure-Mandanten gehört, um MCS-Kataloge mithilfe von PowerShell-Befehlen zu erstellen und zu aktualisieren.
  1. Im Stammordner der Hostingeinheit erstellt Citrix einen neuen Ordner für freigegebene Abonnements namens sharedsubscription.
  2. Alle freigegebenen Abonnements auflisten.
    Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
  3. Wählen Sie ein freigegebenes Abonnement aus, und listen Sie dann alle freigegebenen Ressourcengruppen dieses freigegebenen Abonnements auf.
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
  4. Wählen Sie eine Ressourcengruppe aus, und listen Sie dann alle Galerien dieser Ressourcengruppe auf.
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
  5. Wählen Sie eine Galerie aus, und listen Sie dann alle Bilddefinitionen dieser Galerie auf.
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
  6. Wählen Sie eine Bilddefinition aus, und listen Sie dann alle Bildversionen dieser Bilddefinition auf.
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
  7. Erstellen und aktualisieren Sie einen MCS-Katalog mithilfe der folgenden Elemente:
    • Ressourcengruppe
    • Galerie
    • Galerie-Bilddefinition
    • Galerie-Bildversion
    Informationen zum Erstellen eines Katalogs mit dem Remote PowerShell SDK finden Sie unter <https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/>.

Anwendungsgeheimnis und Ablaufdatum des Geheimnisses verwalten

Stellen Sie sicher, dass Sie das Anwendungsgeheimnis für eine Verbindung ändern, bevor das Geheimnis abläuft. Sie sehen ein Warnsymbol bei der spezifischen Hostverbindung im Knoten Hosting, beginnend 14 Tage vor Ablauf des geheimen Schlüssels. Wenn der geheime Schlüssel jedoch abläuft, erhalten Sie Fehlermeldungen.

Anwendungsgeheimnis in Azure erstellen

Sie können ein Anwendungsgeheimnis für eine Verbindung über das Azure-Portal erstellen.
  1. Wählen Sie Azure Active Directory.
  2. Wählen Sie unter App-Registrierungen in Azure AD Ihre Anwendung aus.
  3. Gehen Sie zu Zertifikate & Geheimnisse.
  4. Klicken Sie auf Clientgeheimnisse > Neues Clientgeheimnis.
  5. Geben Sie eine Beschreibung des Geheimnisses ein und legen Sie eine Dauer fest. Wenn Sie fertig sind, wählen Sie Hinzufügen.
    Hinweis:
    Speichern Sie das Clientgeheimnis unbedingt, da Sie es später nicht mehr abrufen können.
  6. Kopieren Sie den Wert des Clientgeheimnisses und das Ablaufdatum.
  7. Bearbeiten Sie im Web Studio die entsprechende Verbindung und ersetzen Sie den Inhalt in den Feldern Anwendungsgeheimnis und Ablaufdatum des Geheimnisses durch die kopierten Werte.

Ablaufdatum des Geheimnisses ändern

Sie können das Web Studio verwenden, um das Ablaufdatum für das verwendete Anwendungsgeheimnis hinzuzufügen oder zu ändern.
Hinweis:
Sie sehen ein Warnsymbol bei der spezifischen Hostverbindung im Knoten Hosting, beginnend 14 Tage vor Ablauf des geheimen Schlüssels.
  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.

Vorab erstellte Netzwerksicherheitsgruppe verwenden

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 einem PowerShell-Befehl Set-Item, um den Parameter NsgForPreparation aufzunehmen, um die Deny-All-Netzwerksicherheitsgruppe bereitzustellen.

Voraussetzungen

Konfigurieren Sie die folgenden Berechtigungen, die für einen Dienstprinzipal erforderlich sind:
  • Microsoft.Network/networkSecurityGroups/join/action: Eine Netzwerksicherheitsgruppe einem Subnetz oder einer Netzwerkschnittstelle zuordnen
  • Microsoft.Network/networkSecurityGroups/read: Ruft die Netzwerksicherheitsgruppe ab
  • Microsoft.Network/networkSecurityGroups/securityRules/read: Ruft die Regel ab

Vorab erstellte Deny-All-Netzwerksicherheitsgruppe hinzufügen

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
  3. Wählen Sie eine Hostingeinheit aus, um die Details abzurufen:
    Get-Item "XDHyp:\HostingUnits\<hostingunitname>"
  4. Kopieren Sie die CustomProperties in einen Editor und fügen Sie die Eigenschaftseinstellung <Property xsi:type="StringProperty" Name="NsgForPreparation" Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/> hinzu. 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>
  5. Weisen Sie im PowerShell-Fenster eine Variable den geänderten benutzerdefinierten Eigenschaften zu. Zum 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>"
  6. Führen Sie $cred = Get-Credential aus. Geben Sie bei Aufforderung die Verbindungsanmeldeinformationen an. Die Anmeldeinformationen sind Azure Application ID und Secret.
  7. Führen Sie den folgenden Befehl aus.
    Set-Item -PSPath XDHyp:\HostingUnits\<hostingunitname> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password
    Wichtig:
    Wenn Sie eine Meldung erhalten, dass die SubscriptionId fehlt, ersetzen Sie alle doppelten Anführungszeichen („) durch ein Backtick gefolgt von doppelten Anführungszeichen (`“) in der benutzerdefinierten Eigenschaft.
  8. Führen Sie dir aus, um die aktualisierten CustomProperties-Einstellungen zu überprüfen.
Hinweis:
Es dauert länger als eine Minute, bis die Aktualisierungen übernommen werden.

Details der Netzwerksicherheitsgruppe abrufen

Um die Details der Netzwerksicherheitsgruppe abzurufen, rufen Sie zuerst die Ressourcengruppen ab, die die Netzwerksicherheitsgruppe enthalten, und rufen Sie dann die Netzwerksicherheitsgruppe basierend auf dem Namen der Ressourcengruppe ab.
  1. Rufen Sie die Ressourcengruppen ab, die die Netzwerksicherheitsgruppe enthalten. Beispiel:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
  2. Rufen Sie die Netzwerksicherheitsgruppe basierend auf dem Namen der Ressourcengruppe ab. Beispiel:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType securitygroup -MaxRecords 5 -AdditionalDataFilter '{"location": ["eastus", "westus"], "resourcegroup":["resourcegroupname"]}'

Leere Ressourcengruppen filtern

Verwenden Sie den PowerShell-Befehl Get-HypInventoryItem, um leere Ressourcengruppen zu filtern, während Sie ein Masterimage, ein Maschinenprofil oder ein vorbereitetes Image während der Erstellung des Maschinenkatalogs auswählen.
Beispiele:
  • Maximale Anzahl von Datensätzen auf einer Seite abrufen:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
  • Maximale Anzahl von Datensätzen auf einer Seite abrufen und filtern, um Ressourcencontainer mit bestimmten Ressourcen zu finden.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
  • Abrufen mit Überspringen, um die Seite direkt anzugeben, und Filtern, um Ressourcencontainer mit bestimmten Ressourcen zu finden.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -skip 20 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
  • Ein Token verwenden, um die nächste Seite abzurufen, und filtern, 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=='
  • Alle Ressourcengruppen mit dem Tag „Citrix internal tag“ abrufen und die maximale Anzahl von Datensätzen mit MaxRecords begrenzen.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
  • Nach Maschinenprofil (Masterimage) mit dem Tag „Citrix internal tag“ filtern und die maximale Anzahl von Datensätzen mit MaxRecords begrenzen.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
  • Nach vorbereitetem Image mit dem Tag „Citrix internal tag“ filtern und die maximale Anzahl von Datensätzen mit MaxRecords begrenzen.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}'
  • Nach Maschinenprofil (vorbereitetes Image) mit dem Tag „Citrix internal tag“ filtern und die maximale Anzahl von Datensätzen mit MaxRecords begrenzen.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
  • Nach Image mit dem Tag „Citrix internal tag“ filtern und die maximale Anzahl von Datensätzen mit MaxRecords und Standort begrenzen.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}'
  • Alle Ressourcengruppen abrufen, ohne Tags zu berücksichtigen CitrixResource.
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 50 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"]}' -Force $true

Verbindung zur Azure Sovereign Airgap Cloud-Umgebung herstellen

Die Azure Sovereign Airgap Cloud-Umgebung eignet sich für streng geheime Workloads, die sich in getrennten Netzwerkdomänen befinden müssen. Sie können eine Verbindung zur Azure Sovereign Airgap Cloud-Umgebung herstellen, indem Sie beim Erstellen einer Hostverbindung eine benutzerdefinierte Eigenschaft DisableInstanceDiscovery verwenden.
<Property xsi:type="StringProperty" Name="DisableInstanceDiscovery" Value="true" />
Weitere Informationen zum Erstellen einer Azure-Hostverbindung finden Sie unter Create-HostingConnection.ps1.

Erforderliche Azure-Berechtigungen

Dieser Abschnitt enthält die minimalen und allgemeinen Berechtigungen, die für Azure erforderlich sind.

Mindestberechtigungen

Minimale Berechtigungen bieten eine bessere Sicherheitskontrolle. Neue Funktionen, die zusätzliche Berechtigungen erfordern, schlagen jedoch fehl, da nur minimale Berechtigungen verwendet werden.

Erstellen einer Hostverbindung

Fügen Sie eine neue Hostverbindung hinzu, indem Sie die aus Azure erhaltenen Informationen verwenden.
"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"

Energieverwaltung von VMs

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

Erstellen, Aktualisieren oder Löschen von VMs

Erstellen Sie einen Maschinenkatalog, fügen Sie dann Maschinen hinzu, löschen oder aktualisieren Sie sie, und löschen Sie den Maschinenkatalog.
Im Folgenden finden Sie die Liste der minimalen Berechtigungen, die erforderlich sind, wenn das Masterimage eine verwaltete Festplatte ist oder Snapshots 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"
Sie benötigen die folgenden zusätzlichen Berechtigungen, basierend auf den Mindestberechtigungen für die folgenden Funktionen:
  • Wenn das Masterimage eine VHD in einem Speicherkonto ist, das sich in derselben Region wie die Hostverbindung befindet:
    "Microsoft.Storage/storageAccounts/read",
    "Microsoft.Storage/storageAccounts/listKeys/action",
  • Wenn das Masterimage eine ImageVersion aus der Shared Image Gallery ist:
    "Microsoft.Compute/galleries/read",
    "Microsoft.Compute/galleries/images/read",
    "Microsoft.Compute/galleries/images/versions/read",
  • Wenn das Masterimage eine verwaltete Festplatte ist, dann befinden sich die Snapshots oder die VHD in einer anderen Region als die Region der Hostverbindung:
    "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",
  • Wenn Sie eine von Citrix verwaltete Ressourcengruppe verwenden:
    "Microsoft.Resources/subscriptions/resourceGroups/write",
    "Microsoft.Resources/subscriptions/resourceGroups/delete",
  • Wenn Sie das Masterimage in der Azure Compute Gallery (ehemals Shared Image Gallery) in einem freigegebenen Mandanten oder Abonnement ablegen:
    "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",
  • Wenn Sie die Unterstützung für dedizierte Azure-Hosts verwenden:
    "Microsoft.Compute/hostGroups/read",
    "Microsoft.Compute/hostGroups/write",
    "Microsoft.Compute/hostGroups/hosts/read",
  • Wenn Sie Server Side Encryption (SSE) mit Customer Managed Keys (CMK) verwenden:
    "Microsoft.Compute/diskEncryptionSets/read",
  • 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",
  • Wenn Sie eine Azure-Vorlagenspezifikation als Maschinenprofil verwenden:
    "Microsoft.Resources/templateSpecs/read",
    "Microsoft.Resources/templateSpecs/versions/read",

Erstellen, Aktualisieren und Löschen von Maschinen mit nicht verwalteter Festplatte

Im Folgenden finden Sie die Liste der Mindestberechtigungen, die erforderlich sind, wenn das Masterimage VHD ist und die Ressourcengruppe vom Administrator bereitgestellt 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",

Allgemeine Berechtigung

Die Rolle „Mitwirkender“ hat vollen Zugriff auf die Verwaltung aller Ressourcen. Dieser Satz von Berechtigungen hindert Sie nicht daran, neue Funktionen zu erhalten.
Der folgende Satz von Berechtigungen bietet die beste Kompatibilität für die Zukunft, obwohl er mehr Berechtigungen enthält, als für den aktuellen Funktionsumfang 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.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read"

Hostverbindung in einer nicht-geheimen Azure-Umgebung validieren

Sie können Berechtigungen für eine Hostverbindung validieren, um Aufgaben im Zusammenhang mit dem Erstellen und Verwalten von MCS-Maschinenkatalogen auszuführen. Diese Implementierung hilft Ihnen, die fehlenden Berechtigungen zu ermitteln, die für verschiedene Szenarien erforderlich sind, wie das Erstellen, Löschen und Aktualisieren von VMs, die Energieverwaltung von VMs, im Voraus, damit Sie zu kritischen Zeiten nicht blockiert werden.
Sie können die Berechtigungen für eine Hostverbindung mithilfe des PowerShell-Befehls Test-HypHypervisorConnection validieren. Das Ergebnis des Befehls wird als Liste erfasst, wobei 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 eine Diskrepanz bei fehlenden Benutzerberechtigungen zu beheben.
  • Fehlende Berechtigung: Die Liste der fehlenden Berechtigungen für eine Kategorie.
Um die Berechtigungen zu validieren, führen Sie die folgenden Schritte aus:
  1. Erstellen Sie eine Hostverbindung mit 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 die erforderlichen Berechtigungen zum Testen einer Verbindung haben.
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon"
    Erforderliche Berechtigung auf Rollenebene für den SPN:
    • Microsoft.Authorization/roleDefinitions/read (auf Abonnementebene oder auf Ressourcengruppenebene, wenn eine Ressourcengruppe angegeben ist)
    • Microsoft.Authorization/roleAssignments/read (auf Abonnementebene oder auf Ressourcengruppenebene, falls eine Ressourcengruppe angegeben ist)
    Erforderliche API-Berechtigungen für den SPN:
    Microsoft.Graph:
    • Application.Read.All
    • Directory.Read.All
    • ServicePrincipalEndpoint.Read.All
  5. Nachdem Sie die fehlenden Berechtigungen zum Nachschlagen Ihrer Berechtigungen hinzugefügt haben, führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie Berechtigungen in den verschiedenen Kategorien haben.
    Beispiel:
    So testen Sie eine Verbindung auf Abonnementebene, die eine höhere Autorisierungsstufe erfordert:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\ AzureCon -SecurePassword $password -UserName 922e65d5-38ae-4cf5-xxxx-xxxxxxxxx
    Beispiel:
    So testen Sie eine Verbindung auf Ressourcengruppenebene ohne hohe Autorisierungsstufe:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List
    Hinweis:
    Der Parameter CustomProperties wird verwendet, um die Ressourcengruppenebene anzugeben, da die Ressourcengruppe eine verbindungsspezifische Information ist.
    Beispiel:
    So testen Sie eine Verbindung mit der höheren Autorisierungsstufe auf Ressourcengruppenebene:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -SecurePassword $password -UserName 922e65d5-38ae-4cf5-832b-54122196b7dd -CustomProperties $customProperties
Informationen zu Berechtigungen finden Sie unter Erforderliche Azure-Berechtigungen.

Hostverbindung in einer geheimen Azure-Umgebung validieren

Sie können mithilfe eines PowerShell-Befehls Test-HypHypervisorConnection überprüfen, ob eine Hostverbindung die erforderlichen Berechtigungen in einer Azure-Geheimnisumgebung besitzt.
Um das Validierungsergebnis erfolgreich zu erhalten, erstellen oder aktualisieren Sie jedoch eine vorhandene Hostverbindung so, dass sie eine benutzerdefinierte Eigenschaft AuthenticationObjectId enthält. Diese Eigenschaft speichert die Objekt-ID des Dienstprinzipals, der mit der Hostverbindung verknüpft ist.
Hinweis:
Rufen Sie die Objekt-ID des Dienstprinzipals aus dem Azure-Portal ab. Verwenden Sie nicht die ID der Anwendung.

Hostverbindung erstellen oder aktualisieren, um AuthenticationObjectId einzuschließen

Verwenden Sie New-Item, um eine Hostverbindung zu erstellen und AuthenticationObjectId als benutzerdefinierte Eigenschaft hinzuzufügen. Beispiel:
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="Object ID of the service principal"/>
Verwenden Sie Set-Item, um eine vorhandene Hostverbindung zu aktualisieren und AuthenticationObjectId als benutzerdefinierte Eigenschaft hinzuzufügen. Die Schritte dazu sind:
  1. Öffnen Sie ein PowerShell-Fenster mit dem Remote PowerShell SDK.
  2. Führen Sie die folgenden Befehle aus:
    Add-PSSnapin citrix*.
    cd XDHyp:\Connections\
    dir
  3. Kopieren Sie die CustomProperties aus der Verbindung in einen Editor und fügen Sie die Eigenschaftseinstellung <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="Object ID of the service principal"/> an die CustomProperties an.
  4. Weisen Sie im PowerShell-Fenster eine Variable den geänderten benutzerdefinierten Eigenschaften zu.
  5. Führen Sie $cred = Get-Credential aus. Geben Sie bei Aufforderung die Verbindungsanmeldeinformationen an. Die Anmeldeinformationen sind Azure Application ID und Secret.
  6. Führen Sie Set-Item -PSPath XDHyp:\Connections\<Connection_Name> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password aus.
  7. Führen Sie dir aus, um die aktualisierten CustomProperties-Einstellungen zu überprüfen.
    Set-Item -PSPath XDHyp:\Connections\$connName -CustomProperties <Property xsi:type="StringProperty" Name="AuthenticationObjectId" Value="Object ID of the service principal"/> -username $cred.username -Securepassword $cred.password

Hostverbindung auf Berechtigungen überprüfen

Um die Hostverbindungen auf die erforderlichen Rollen und Berechtigungen zu überprüfen, führen Sie die folgenden Befehle aus:
  • Wenn Sie Rollen und Berechtigungen auf Abonnementebene zugewiesen haben:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\<Your-HostingConnection>
  • Wenn Sie Rollen und Berechtigungen auf Ressourcengruppenebene zugewiesen haben:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\<Your-HostingConnection>  -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>'

Nächste Schritte

Weitere Informationen