Verwenden von verwalteten Identitäten zum Authentifizieren von Azure Stream Analytics-Aufträgen in Power BI

Das Authentifizieren über verwaltete Identitäten für die Ausgabe in Power BI ermöglicht Stream Analytics Aufträgen direkten Zugriff auf einen Arbeitsbereich in Ihrem Power BI-Konto. Mit diesem Feature können Bereitstellungen von Stream Analytics-Aufträgen vollständig automatisiert werden, da es nicht mehr erforderlich ist, dass sich Benutzer*innen interaktiv über das Azure-Portal bei Power BI anmelden. Darüber hinaus werden zeitintensive Aufträge, die in Power BI schreiben, jetzt besser unterstützt, da der Auftrag nicht mehr regelmäßig erneut autorisiert werden muss.

Dieser Artikel zeigt Ihnen, wie Sie verwaltete Identitäten für die Power BI-Ausgaben eines Stream Analytics-Auftrags über das Azure-Portal und mit einer Azure Resource Manager-Bereitstellung aktivieren.

Hinweis

Nur systemseitig zugewiesene verwaltete Identitäten werden bei der Power BI-Ausgabe unterstützt. Derzeit wird die Verwendung benutzerseitig zugewiesener verwalteter Identitäten bei der Power BI-Ausgabe nicht unterstützt.

Voraussetzungen

Sie müssen über die folgenden Voraussetzungen verfügen, bevor Sie dieses Feature verwenden:

Erstellen eines Stream Analytics-Auftrags über das Azure-Portal

  1. Erstellen Sie einen neuen Stream Analytics-Auftrag oder öffnen Sie einen vorhandenen im Azure-Portal.

  2. Wählen Sie in der Menüleiste auf der linken Bildschirmseite unter Einstellungen die Option Verwaltete Identität aus.

    Screenshot showing the Managed Identity page with Select identity button selected.

  3. Wählen Sie auf der Seite Identität auswählen die Option Systemseitig zugewiesene Identität* aus. Wenn Sie letztere Option auswählen, geben Sie die verwaltete Identität an, die Sie verwenden möchten. Wählen Sie anschließend Speichern aus.

    Screenshot showing the Select identity page with System assigned identity selected.

  4. Vergewissern Sie sich, dass auf der Seite Verwaltete Identität die Prinzipal-ID und der Prinzipalname angezeigt werden, die Ihrem Stream Analytics-Auftrag zugewiesen sind. Der Prinzipalname sollte mit dem Namen Ihres Stream Analytics-Auftrags übereinstimmen.

  5. Geben Sie vor dem Konfigurieren der Ausgabe dem Stream Analytics-Auftrag Zugriff auf Ihren Power BI Arbeitsbereich, indem Sie die Anweisungen im Abschnitt Erteilen des Zugriffs auf Ihren Power BI-Arbeitsbereich für den Stream Analytics-Auftrag in diesem Artikel befolgen.

  6. Navigieren Sie zum Abschnitt Ausgaben Ihres Stream Analytics-Auftrags, und wählen Sie + Hinzufügen und dann Power BI aus. Wählen Sie als Nächstes die Schaltfläche Autorisieren aus, und melden Sie sich mit Ihrem Power BI-Konto an.

    Authorize with Power BI account

  7. Nach der Autorisierung wird eine Dropdownliste mit allen Arbeitsbereichen aufgefüllt, auf die Sie Zugriff haben. Wählen Sie den Arbeitsbereich aus, den Sie im vorherigen Schritt autorisiert haben. Wählen Sie dann für „Authentifizierungsmodus“ den Eintrag Verwaltete Identität aus. Wählen Sie schließlich die Schaltfläche Speichern aus.

    Screenshot showing the Power BI output configuration with Managed identity authentication mode selected.

Azure Resource Manager-Bereitstellung

Mit Azure Resource Manager können Sie die Bereitstellung Ihres Stream Analytics-Auftrags vollständig automatisieren. Sie können Resource Manager-Vorlagen entweder mit Azure PowerShell oder der Azure-Befehlszeilenschnittstelle bereitstellen. In den folgenden Beispielen wird die Azure-Befehlszeilenschnittstelle verwendet.

  1. Sie können eine Microsoft.StreamAnalytics/streamingjobs-Ressource mit einer verwalteten Identität erstellen, indem Sie die folgende Eigenschaft in den Ressourcenabschnitt Ihrer Resource Manager-Vorlage einfügen:

    "identity": {
        "type": "SystemAssigned",
    }
    

    Diese Eigenschaft weist Azure Resource Manager an, die Identität für Ihren Stream Analytics-Auftrag zu erstellen und zu verwalten. Nachfolgend finden Sie ein Beispiel für eine Resource Manager-Vorlage, die einen Stream Analytics-Auftrag mit aktivierter verwalteter Identität und eine Power BI-Ausgabesenke mit verwalteter Identität bereitstellt:

    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
            {
                "apiVersion": "2017-04-01-preview",
                "name": "pbi_managed_id",
                "location": "[resourceGroup().location]",
                "type": "Microsoft.StreamAnalytics/StreamingJobs",
                "identity": {
                    "type": "systemAssigned"
                },
                "properties": {
                    "sku": {
                        "name": "standard"
                    },
                    "outputs":[
                        {
                            "name":"output",
                            "properties":{
                                "datasource":{
                                    "type":"PowerBI",
                                    "properties":{
                                        "dataset": "dataset_name",
                                        "table": "table_name",
                                        "groupId": "01234567-89ab-cdef-0123-456789abcdef",
                                        "authenticationMode": "Msi"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Stellen Sie den oben angegebenen Auftrag mit dem folgenden Azure CLI-Befehl in der Ressourcengruppe ExampleGroup bereit:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Nachdem der Auftrag erstellt wurde, rufen Sie mit Azure Resource Manager die vollständige Definition des Auftrags ab.

    az resource show --ids /subscriptions/<subsription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/StreamingJobs/<resource-name>
    

    Der obige Befehl gibt eine Antwort wie die folgende zurück:

    {
        "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/streamingjobs/<resource-name>",
        "identity": {
            "principalId": "<principal-id>",
            "tenantId": "<tenant-id>",
            "type": "SystemAssigned",
            "userAssignedIdentities": null
        },
        "kind": null,
        "location": "West US",
        "managedBy": null,
        "name": "<resource-name>",
        "plan": null,
        "properties": {
            "compatibilityLevel": "1.0",
            "createdDate": "2019-07-12T03:11:30.39Z",
            "dataLocale": "en-US",
            "eventsLateArrivalMaxDelayInSeconds": 5,
            "jobId": "<job-id>",
            "jobState": "Created",
            "jobStorageAccount": null,
            "jobType": "Cloud",
            "outputErrorPolicy": "Stop",
            "package": null,
            "provisioningState": "Succeeded",
            "sku": {
                "name": "Standard"
            }
        },
        "resourceGroup": "<resource-group>",
        "sku": null,
        "tags": null,
        "type": "Microsoft.StreamAnalytics/streamingjobs"
    }
    

    Wenn Sie die Power BI-REST-API zum Hinzufügen des Stream Analytics-Auftrags zu Ihrem Power BI-Arbeitsbereich verwenden möchten, notieren Sie sich die zurückgegebene principalId.

  3. Nachdem der Auftrag nun erstellt wurde, fahren Sie mit dem Abschnitt Erteilen des Zugriffs auf Ihren Power BI-Arbeitsbereich für den Stream Analytics-Auftrag in diesem Artikel fort.

Erteilen des Zugriffs auf Ihren Power BI-Arbeitsbereich für den Stream Analytics-Auftrag

Nachdem der Stream Analytics Auftrag nun erstellt wurde, kann ihm Zugriff auf einen Power BI-Arbeitsbereich gewährt werden. Sobald Sie Ihrem Auftrag Zugriff gewährt haben, lassen Sie der Identität einige Minuten Zeit, um sich zu verteilen.

Verwenden der Power BI-Benutzeroberfläche

Hinweis

Wenn Sie den Stream Analytics Auftrag Ihrem Power BI-Arbeitsbereich mithilfe der Benutzeroberfläche hinzufügen möchten, müssen Sie auch in den Entwicklereinstellungen im Power BI-Verwaltungsportal den Dienstprinzipalzugriff aktivieren. Weitere Informationen finden Sie unter Erste Schritte mit einem Dienstprinzipal.

  1. Navigieren Sie zu den Zugriffseinstellungen des Arbeitsbereichs. Weitere Informationen finden Sie unter Erteilen des Zugriffs auf Ihren Arbeitsbereich.

  2. Geben Sie den Namen Ihres Stream Analytics-Auftrags in das Textfeld ein, und wählen Sie als Zugriffsebene Mitwirkende aus.

  3. Wählen Sie Hinzufügen aus, und schließen Sie den Bereich.

    Add Stream Analytics job to Power BI workspace

Verwenden der Power BI-PowerShell-Cmdlets

  1. Installieren Sie die Power BI-MicrosoftPowerBIMgmt-Cmdlets für PowerShell.

    Wichtig

    Stellen Sie sicher, dass Sie mindestens Version 1.0.821 der Cmdlets verwenden.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Melden Sie sich bei Power BI an.

    Login-PowerBI
    
  3. Fügen Sie als Mitwirkender Ihren Stream Analytics-Auftrag zum Arbeitsbereich hinzu.

    Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
    

Verwenden der Power BI-REST-API

Der Stream Analytics-Auftrag kann dem Arbeitsbereich auch als Mitwirkender hinzugefügt werden, indem die REST-API „Gruppenbenutzer hinzufügen“ direkt verwendet wird. Die vollständige Dokumentation für diese API finden Sie hier: Gruppen – Gruppenbenutzer hinzufügen.

Beispiel für eine Anforderung

POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/users

Anforderungstext

{
    "groupUserAccessRight": "Contributor",
    "identifier": "<principal-id>",
    "principalType": "App"
}

Verwenden eines Dienstprinzipals zum Gewähren der Berechtigung für die verwaltete Identität eines ASA-Auftrags

Bei automatisierten Bereitstellungen ist die Verwendung einer interaktiven Anmeldung, um einem ASA-Auftrag Zugriff auf einen Power BI-Arbeitsbereich zu gewähren, nicht möglich. Verwenden Sie einen Dienstprinzipal zum Gewähren der Berechtigung für die verwaltete Identität eines ASA-Auftrags. Dies ist mithilfe von PowerShell möglich:

Connect-PowerBIServiceAccount -ServicePrincipal -TenantId "<tenant-id>" -CertificateThumbprint "<thumbprint>" -ApplicationId "<app-id>"
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor

Entfernen der verwalteten Identität

Die für einen Stream Analytics-Auftrag erstellte verwaltete Identität wird nur gelöscht, wenn der Auftrag gelöscht wird. Es gibt keine Möglichkeit, die verwaltete Identität zu löschen, ohne den Auftrag zu löschen. Wenn Sie die verwaltete Identität nicht mehr verwenden möchten, können Sie die Authentifizierungsmethode für die Ausgabe ändern. Die verwaltete Identität bleibt weiterhin bestehen, bis der Auftrag gelöscht wird, und wird verwendet, wenn Sie sich noch einmal mithilfe einer verwalteten Identität authentifizieren.

Einschränkungen

Im Folgenden finden Sie Einschränkungen für dieses Feature:

  • Klassische Power BI-Arbeitsbereiche werden nicht unterstützt.

  • Azure-Konten ohne Microsoft Entra ID.

  • Der Mehrinstanzenzugriff wird nicht unterstützt. Der für einen bestimmten Stream Analytics-Auftrag erstellte Dienstprinzipal muss in dem Microsoft Entra-Mandanten ausgeführt werden, in dem der Auftrag erstellt wurde, und kann nicht für eine Ressource in einem anderen Microsoft Entra-Mandanten verwendet werden.

  • Benutzerseitig zugewiesene Identität wird nicht unterstützt. Das bedeutet, dass Sie nicht Ihren eigenen Dienstprinzipal für Ihren Stream Analytics-Auftrag eingeben können. Der Dienstprinzipal muss von Azure Stream Analytics generiert werden.

Nächste Schritte