Freigeben über


Mandantenübergreifende Datenverbindung

Wenn Sie eine Datenverbindung für einen Azure Event Hubs- oder Azure Event Grid-Dienst in einem anderen Mandanten erstellen müssen, verwenden Sie die Create Data Connections API, um die Verbindung zu erstellen.

In diesem Artikel erfahren Sie, wie Sie Mithilfe von PowerShell eine mandantenübergreifende Event Hubs-Datenverbindung erstellen und Hilfstoken authentifizieren können.

Voraussetzungen

Erlaubnisse

Das Entra-Konto oder der Dienstprinzipal mit mehreren Mandanten muss mindestens über die folgenden Berechtigungen verfügen:

Hinweis

Das Konto kann lokal oder Gast in Mandant1 oder Mandant2 sein, sofern es über die erforderlichen Berechtigungen verfügt. Berechtigungen müssen auf Namespaceebene und nicht auf der Event Hubs-Ebene vorhanden sein.

Zuweisen einer Rolle zum Entra-Konto oder Dienstprinzipal in Event Hubs für Mandant1

  1. Navigieren Sie im Azure-Portal zu Ihrem Event Hubs-Namespace.

  2. Wählen Sie im linken Menü Access Control (IAM)>Rollenzuweisungen hinzufügenaus.

  3. Geben Sie im Fenster Rollenzuweisung hinzufügen die Einstellungen in die Tabelle ein, und wählen Sie dann Speichernaus.

    Einstellung Empfohlener Wert
    Role Azure Event Hubs-Datenbesitzer
    Zugriff zuweisen zu Benutzer, Gruppe oder Dienstprinzipal
    Auswählen Die E-Mail-Adresse des Entra-Benutzers oder der Dienstprinzipal-ID

Zuweisen einer Rolle zum Entra-Konto oder Dienstprinzipal im Cluster für Mandant2

  1. Navigieren Sie im Azure-Portal zu Ihrem Daten-Explorer-Cluster.

  2. Wählen Sie im linken Menü Access Control (IAM)>Rollenzuweisungen hinzufügenaus.

  3. Geben Sie im Fenster Rollenzuweisung hinzufügen die Einstellungen in der Tabelle ein, und wählen Sie dann Speichernaus.

    Einstellung Empfohlener Wert
    Role Mitwirkender
    Zugriff zuweisen zu Benutzer, Gruppe oder Dienstprinzipal
    Auswählen Die E-Mail-Adresse des Entra-Benutzers oder der Dienstprinzipal-ID

Einrichten der mandantenübergreifenden Datenverbindung

Richten Sie eine mandantenübergreifende Datenverbindung zwischen dem Cluster und Event Hubs mithilfe von PowerShell ein.

Bevor Sie mit der beginnen

Erstellen Sie die Get-AzCachedAccessToken-Funktion, um das Zugriffstoken für Tenant1abzurufen. Der Quellcode für die Funktion findet sich im PowerShell-Katalog. Sie können diesen Code in Ihr persönliches PowerShell-Profil einschließen, um den Aufruf zu vereinfachen, oder Sie können ihn ausführen und dann in diesen Schritten verwenden.

  1. Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Event Hubs-Abonnement in Tenant1herzustellen:

    Connect-AzAccount -TenantId <Tenant ID> -Subscription "<SubscriptionName>"
    
  2. Fügen Sie eine Variable hinzu, um das Zugriffstoken für Tenant1zu speichern:

    $tokenfromtenant1 = Get-AzCachedAccessToken
    
  3. Fügen Sie eine Zusatztokenvariable für Tenant1 hinzu:

    $auxpat="Bearer $tokenfromtenant1"
    
  4. Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Clusterabonnement in Tenant2herzustellen:

    Connect-AzAccount -TenantId <Tenant ID> -SubscriptionId "<SubscriptionName>"
    
  5. Fügen Sie eine Variable mit dem Token für Tenant2 hinzu:

    $tokenfromtenant2 = Get-AzCachedAccessToken
    
  6. Fügen Sie eine pat-Variable hinzu, die als primäres Token verwendet werden soll:

    $pat="Bearer $tokenfromtenant2"
    
  7. Fügen Sie eine HTTP-Body-Anforderungsvariable hinzu, die als Event Hub-Ressource verwendet werden soll, wenn Sie die Webanforderung aufrufen:

    $requestbody ='{"location": "Australia East","kind": "EventHub","properties": { "eventHubResourceId": "/subscriptions/<subscription ID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.EventHub/namespaces/<EventHubNamespaceName>/eventhubs/<EventHubName>","consumerGroup": "$Default","dataFormat": "JSON", "tableName": "<ADXTableName>", "mappingRuleName": "<ADXTableMappingName>"}}'
    
  8. Fügen Sie eine URI-Variable hinzu, die als Clusterressource verwendet werden soll, wenn Sie die Webanforderung aufrufen:

    $adxdcuri="https://management.azure.com/subscriptions/<subscriptionID>/resourceGroups/<resource group name>/providers/Microsoft.Kusto/clusters/<ADXClusterName>/databases/<ADXdbName>/dataconnections/<ADXDataConnectionName>?api-version=2020-02-15"
    
  9. Rufen Sie die folgende Webanforderung auf, die die zuvor definierten Variablen verwendet, um die Datenverbindung zu erstellen:

    Invoke-WebRequest -Headers @{Authorization = $pat; 'x-ms-authorization-auxiliary' = $auxpat} -Uri $adxdcuri -Body $requestbody -Method PUT -ContentType 'application/json'
    

Nach Abschluss der

  1. Stellen Sie sicher, dass die neu erstellte Datenverbindung nun im Azure-Portal angezeigt wird.

  2. Optionaler: Nach dem Herstellen der Datenverbindung können Sie die zuvor erteilten Berechtigungen für das Entra-Konto oder den Dienstprinzipal widerrufen oder löschen. Da die Clusteraufnahme die Event Hubs-Schlüssel verwendet, sind diese Berechtigungen nicht mehr erforderlich.

Wichtig

Wenn die primären oder sekundären Event Hubs-Schlüssel gedreht werden, funktioniert die Datenaufnahme möglicherweise nicht mehr. In diesem Fall müssen Sie die Datenverbindung ablegen und neu erstellen.