Verbindung mit Microsoft Azure

Hinweis:

Seit Juli 2023 hat Microsoft Azure Active Directory (Azure AD) in Microsoft Entra ID umbenannt. In diesem Dokument beziehen sich alle Verweise auf 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 mit 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:

  • Einen Dienstprinzipal und eine 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. Bei zukünftigen 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 sie 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. Problemumgehung: 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 Clientgeheimnis oder Anwendungsgeheimnis bezeichnet) erstellt. Die registrierte Anwendung (in diesem Fall eine Verbindung) verwendet das Clientgeheimnis zur Authentifizierung bei Azure AD.

Bevor Sie beginnen, stellen Sie sicher, dass Sie diese 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. Beispiel: 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 nicht nur Leerzeichen oder die Zeichen \/;:#.*?=<>|[]{}"'()' enthalten.

  4. Wählen Sie Neu erstellen 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 es ihm ermöglicht, Azure-Ressourcen im Namen des angegebenen Benutzers zu verwalten.
  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, das die erfolgreiche Verbindung zu 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 folgende 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.
  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.

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 diese 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 der in Azure AD zu erstellenden Anwendung.

Die detaillierten Schritte sind wie folgt:

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

`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 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 zu erstellen, müssen Sie zuerst die Anwendungs-ID und das Geheimnis des Dienstprinzipals im Azure-Portal abrufen.

Detaillierte Schritte sind wie folgt:

  1. Rufen Sie die Anwendungs-ID aus dem Web Studio oder mithilfe von PowerShell ab.
  2. Melden Sie sich am Azure-Portal an.
  3. Wählen Sie in Azure Azure Active Directory aus.
  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 ihn verwenden, um eine Verbindung mithilfe von Web Studio zu erstellen.

Stellen Sie sicher, dass Sie diese Elemente bereithalten:

  • SubscriptionId
  • ActiveDirectoryID (Mandanten-ID)
  • Application 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 klicken Sie dann auf Weiter.

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

    Hinweis:

    Der Verbindungsname darf 1–64 Zeichen enthalten und darf nicht nur Leerzeichen oder 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-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. 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 Hosting-Knoten, 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 Zeitpunkt 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 Blob Storage-Import- und Exportvorgänge. 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.

    • Auf der Seite Region wählen Sie eine Region aus.
    • Auf der Seite Netzwerk führen Sie folgende 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 mehr als ein virtuelles Netzwerk 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 aus, die virtuelle Netzwerke enthält.
  7. Auf der Seite Zusammenfassung zeigen Sie eine Zusammenfassung der Einstellungen an und wählen 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 Grenzwerten weiter, die auf die spezifischen Anforderungen des Anbieters zugeschnitten sind. Weitere Informationen finden Sie unter Drosselung von Resource Manager-Anforderungen auf der Microsoft-Website. Für Abonnements und Mandanten gibt es Grenzwerte, bei denen die Verwaltung vieler Maschinen problematisch werden kann. Beispielsweise kann ein Abonnement, das viele Maschinen enthält, Leistungsprobleme im Zusammenhang mit Energieverwaltungsvorgängen 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 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 maximalen neuen Aktionen pro Minute sowie alle zusätzlichen 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 auswählen (die über die Azure Compute Gallery freigegeben wurden). Um die Bildfreigabe 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 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 beispielsweise ein Dienstprinzipal (SPN 1) vorhanden ist, 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 teilen Sie die Ressourcengruppe mit SPN1.

Das Image muss mit einem anderen SPN unter Verwendung der rollenbasierten Zugriffssteuerung (RBAC) von Azure geteilt 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 Teilen von Images mit einem 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.

Images 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. 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 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 Galerie-Image 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:

  1. Benutzerdefinierte Eigenschaften der Hostingverbindung mit freigegebenen Mandanten-IDs aktualisieren.
  2. Ein Image von einem anderen Mandanten auswählen.

Freigegebene Mandanten einer Verbindung über Web Studio 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 sind). Die 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 Imagefreigabe mandantenübergreifend zu ermöglichen. 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 Web 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 Folgendes aus:

    • Geben Sie die Anwendungs-ID und das Anwendungsgeheimnis an, 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 gemeinsam nutzen. 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.

Imagefreigabe mit PowerShell implementieren

Dieser Abschnitt führt Sie durch die Prozesse der Imagefreigabe mit PowerShell:

Ein Image aus einem anderen Abonnement auswählen

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 mithilfe von PowerShell-Befehlen zu erstellen und zu aktualisieren.

  1. Im Stammordner der Hosting-Einheit 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"
    <!--NeedCopy-->
    
  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"
    <!--NeedCopy-->
    
  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"
    <!--NeedCopy-->
    
  5. Wählen Sie eine Galerie aus, und listen Sie dann alle Imagedefinitionen dieser Galerie auf.

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

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
    <!--NeedCopy-->
    
  7. Erstellen und aktualisieren Sie einen MCS-Katalog mit den folgenden Elementen:

    • Ressourcengruppe
    • Galerie
    • Galerie-Imagedefinition
    • Galerie-Imageversion

    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"]}]
<!--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 mehr als einen Mandanten hinzufügen. Jeder Mandant kann mehr als ein Abonnement haben.

Image aus einem anderen Mandanten auswählen

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
    <!--NeedCopy-->
    
  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
    <!--NeedCopy-->
    
  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
    <!--NeedCopy-->
    
  5. Wählen Sie eine Galerie aus, und listen Sie dann alle Imagedefinitionen dieser Galerie auf.

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

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
    <!--NeedCopy-->
    
  7. Erstellen und aktualisieren Sie einen MCS-Katalog mithilfe der folgenden Elemente:

    • Ressourcengruppe
    • Galerie
    • Galerie-Image-Definition
    • Galerie-Image-Version

    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.

Ein 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 aus.
  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 an und legen Sie eine Dauer fest. Wenn Sie fertig sind, wählen Sie Hinzufügen.

    Hinweis:

    Stellen Sie sicher, dass Sie das Clientgeheimnis speichern, da Sie es später nicht mehr abrufen können.

  6. Kopieren Sie den Wert des Clientgeheimnisses und das Ablaufdatum.
  7. Bearbeiten Sie in 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 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 ab 14 Tage vor Ablauf des geheimen Schlüssels. Wenn der geheime Schlüssel jedoch abläuft, erhalten Sie Fehlermeldungen.

  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 zum Bereitstellen der Deny-All-Netzwerksicherheitsgruppe einzuschließen.

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 Netzwerksicherheitsgruppe ab
  • Microsoft.Network/networkSecurityGroups/securityRules/read: Ruft Regel ab

Hinzufügen der vorab erstellten Deny-All-Netzwerksicherheitsgruppe

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 fügen Sie die Eigenschaftseinstellung <Property xsi:type="StringProperty” Name="NsgForPreparation” Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/> an. Zum 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. 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>"
    <!--NeedCopy-->
    
  6. Führen Sie $cred = Get-Credential aus. Wenn Sie dazu aufgefordert werden, geben Sie 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
    <!--NeedCopy-->
    

    Wichtig:

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

  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 wirksam 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. Zum Beispiel:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
    <!--NeedCopy-->
    
  2. Rufen Sie die Netzwerksicherheitsgruppe basierend auf dem Namen der Ressourcengruppe ab. Zum 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 ein Masterimage, ein Maschinenprofil oder ein vorbereitetes Image während der Erstellung des Maschinenkatalogs auswählen.

Beispiele:

  • Maximale Datensätze auf einer Seite abrufen:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
     <!--NeedCopy-->
    
  • Maximale Datensätze 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"]}'
     <!--NeedCopy-->
    
  • Mit „Skip“ abrufen, 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"]}'
     <!--NeedCopy-->
    
  • Verwenden Sie ein 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-->
    
  • 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
     <!--NeedCopy-->
    
  • 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"]}'
     <!--NeedCopy-->
    
  • 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"]}'
     <!--NeedCopy-->
    
  • 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"]}'
     <!--NeedCopy-->
    
  • Nach Image mit dem Tag „Citrix internal tag“ filtern und die maximale Anzahl von Datensätzen mit MaxRecords und dem Speicherort begrenzen.

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}'
     <!--NeedCopy-->
    
  • Alle Ressourcengruppen ohne Berücksichtigung von Tags abrufen CitrixResource.

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

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" />
<!--NeedCopy-->

Siehe Create-HostingConnection.ps1 für weitere Informationen zum Erstellen einer Azure-Hostverbindung.

Erforderliche Azure-Berechtigungen

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

Minimale Berechtigungen

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 unter Verwendung der von Azure erhaltenen 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 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",
<!--NeedCopy-->

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

<!--NeedCopy-->

Sie benötigen die folgenden zusätzlichen Berechtigungen basierend auf minimalen Berechtigungen für die folgenden Funktionen:

  • Wenn das Masterimage eine VHD in einem Speicherkonto ist, das sich in derselben Region wie die Hosting-Verbindung befindet:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • 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",
     <!--NeedCopy-->
    
  • Wenn das Masterimage eine verwaltete Festplatte ist, befinden sich die Snapshots oder die VHD in einer anderen Region als die Region der Hosting-Verbindung:

     "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 einer 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",
     <!--NeedCopy-->
    
  • Wenn Sie die Unterstützung für dedizierte Azure-Hosts verwenden:

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

     "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • Wenn Sie VMs mithilfe von 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 eine Azure-Vorlagenspezifikation als Maschinenprofil verwenden:

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

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 eine 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",
<!--NeedCopy-->

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

Hostverbindung in einer nicht-geheimen Azure-Umgebung validieren

Sie können Berechtigungen für eine Hostverbindung validieren, 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 und die Energieverwaltung von VMs erforderlich sind, im Voraus zu ermitteln, damit Sie in kritischen Zeiten nicht blockiert werden.

Sie können die Berechtigungen für eine Hostverbindung mit dem PowerShell-Befehl Test-HypHypervisorConnection validieren. Das Ergebnis des Befehls wird als Liste erfasst, wobei jedes Element 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, gehen Sie wie folgt vor:

  1. Erstellen Sie eine Hostverbindung zu Azure.
  2. Öffnen Sie ein PowerShell-Fenster vom Delivery Controller™-Host.
  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"
    <!--NeedCopy-->
    

    Erforderliche Berechtigung auf Rollenebene für den SPN:

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

    Erforderliche Berechtigungen auf API-Ebene für den SPN:

    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 Berechtigungen in den verschiedenen Kategorien haben.

    Beispiel:

    Um eine Verbindung auf Abonnementebene mit erforderlicher höherer Autorisierungsstufe zu testen:

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

    Beispiel:

    Um eine Verbindung auf Ressourcengruppenebene ohne hohe Autorisierungsstufe zu testen:

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

    Hinweis:

    Der Parameter CustomProperties wird verwendet, um die Ressourcengruppenebene bereitzustellen, da die Ressourcengruppe eine verbindungsspezifische Information ist.

    Beispiel:

    Um eine Verbindung mit der höheren Autorisierungsstufe 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.

Hostverbindung in einer geheimen Azure-Umgebung validieren

Sie können mit einem PowerShell-Befehl Test-HypHypervisorConnection überprüfen, ob eine Hostverbindung die erforderlichen Berechtigungen in einer Azure Secret-Umgebung besitzt.

Um das Validierungsergebnis jedoch erfolgreich abzurufen, erstellen oder aktualisieren Sie eine vorhandene Hostverbindung, um eine benutzerdefinierte Eigenschaft AuthenticationObjectId zu erhalten. 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"/>
<!--NeedCopy-->

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
    <!--NeedCopy-->
    
  3. Kopieren Sie 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 CustomProperties an.
  4. Weisen Sie im PowerShell-Fenster den geänderten benutzerdefinierten Eigenschaften eine Variable 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
    <!--NeedCopy-->
    

Hostverbindung auf Berechtigungen überprüfen

Um die Hostverbindungen für 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>
     <!--NeedCopy-->
    
  • 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>'
     <!--NeedCopy-->
    

Nächste Schritte

Weitere Informationen