Share via


Använda hanterad identitet för att autentisera ditt Azure Stream Analytics-jobb till Power BI

Hanterad identitetsautentisering för utdata till Power BI ger Stream Analytics-jobb direkt åtkomst till en arbetsyta i ditt Power BI-konto. Med den här funktionen kan distributioner av Stream Analytics-jobb automatiseras helt, eftersom det inte längre krävs för att en användare ska kunna logga in interaktivt på Power BI via Azure-portalen. Dessutom stöds långvariga jobb som skriver till Power BI bättre, eftersom du inte behöver auktorisera jobbet regelbundet.

Den här artikeln visar hur du aktiverar hanterad identitet för Power BI-utdata från ett Stream Analytics-jobb via Azure-portalen och via en Azure Resource Manager-distribution.

Kommentar

Endast systemtilldelade hanterade identiteter stöds med Power BI-utdata. För närvarande stöds inte användning av användartilldelade hanterade identiteter med Power BI-utdata.

Förutsättningar

Du måste ha följande förutsättningar innan du använder den här funktionen:

Skapa ett Stream Analytics-jobb med hjälp av Azure-portalen

  1. Skapa ett nytt Stream Analytics-jobb eller öppna ett befintligt jobb i Azure-portalen.

  2. På menyraden till vänster på skärmen väljer du Hanterad identitet under Inställningar.

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

  3. På sidan Välj identitet väljer du Systemtilldelad identitet*. Om du väljer det senare alternativet anger du den hanterade identitet som du vill använda. Välj sedan Spara.

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

  4. På sidan Hanterad identitet bekräftar du att huvud-ID och huvudnamn har tilldelats streamanalysjobbet. Huvudnamnet ska vara samma som ditt Stream Analytics-jobbnamn.

  5. Innan du konfigurerar utdata ger du Stream Analytics-jobbet åtkomst till din Power BI-arbetsyta genom att följa anvisningarna i avsnittet Ge Stream Analytics-jobbet åtkomst till din Power BI-arbetsyta i den här artikeln.

  6. Gå till avsnittet Utdata i Stream Analytics jobb, välj + Lägg till och välj sedan Power BI. Välj sedan knappen Auktorisera och logga in med ditt Power BI-konto.

    Authorize with Power BI account

  7. När en listruta har godkänts fylls den med alla arbetsytor som du har åtkomst till. Välj den arbetsyta som du godkände i föregående steg. Välj sedan Hanterad identitet som "Autentiseringsläge". Välj slutligen knappen Spara.

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

Azure Resource Manager-distribution

Med Azure Resource Manager kan du automatisera distributionen av ditt Stream Analytics-jobb fullt ut. Du kan distribuera Resource Manager-mallar med antingen Azure PowerShell eller Azure CLI. I exemplen nedan används Azure CLI.

  1. Du kan skapa en Microsoft.StreamAnalytics/streamingjobs-resurs med en hanterad identitet genom att inkludera följande egenskap i resursavsnittet i Resource Manager-mallen:

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

    Den här egenskapen instruerar Azure Resource Manager att skapa och hantera identiteten för ditt Stream Analytics-jobb. Nedan visas ett exempel på en Resource Manager-mall som distribuerar ett Stream Analytics-jobb med hanterad identitet aktiverad och en Power BI-utdatamottagare som använder hanterad identitet:

    {
        "$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"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Distribuera jobbet ovan till resursgruppen ExampleGroup med hjälp av azure CLI-kommandot nedan:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. När jobbet har skapats använder du Azure Resource Manager för att hämta jobbets fullständiga definition.

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

    Kommandot ovan returnerar ett svar som liknar nedanstående:

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

    Om du planerar att använda Power BI REST API för att lägga till Stream Analytics-jobbet på din Power BI-arbetsyta bör du anteckna den returnerade principalId.

  3. Nu när jobbet har skapats fortsätter du till avsnittet Ge Stream Analytics-jobbet åtkomst till din Power BI-arbetsyta i den här artikeln.

Ge Stream Analytics-jobbet åtkomst till din Power BI-arbetsyta

Nu när Stream Analytics-jobbet har skapats kan det ges åtkomst till en Power BI-arbetsyta. När du har gett ditt jobb åtkomst kan du tillåta några minuter för identiteten att spridas.

Använda Power BI-användargränssnittet

Kommentar

För att kunna lägga till Stream Analytics-jobbet på din Power BI-arbetsyta med hjälp av användargränssnittet måste du också aktivera åtkomst till tjänstens huvudnamn i inställningarna för utvecklare i Power BI-administratörsportalen. Mer information finns i Kom igång med tjänstens huvudnamn.

  1. Gå till arbetsytans åtkomstinställningar. Mer information finns i Ge åtkomst till din arbetsyta.

  2. Skriv namnet på ditt Stream Analytics-jobb i textrutan och välj Deltagare som åtkomstnivå.

  3. Välj Lägg till och stäng fönstret.

    Add Stream Analytics job to Power BI workspace

Använda Power BI PowerShell-cmdletar

  1. Installera Power BI MicrosoftPowerBIMgmt PowerShell-cmdletarna.

    Viktigt!

    Kontrollera att du använder version 1.0.821 eller senare av cmdletarna.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Logga in på Power BI.

    Login-PowerBI
    
  3. Lägg till ditt Stream Analytics-jobb som deltagare på arbetsytan.

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

Använda Power BI REST API

Stream Analytics-jobbet kan också läggas till som deltagare på arbetsytan med rest-API:et "Lägg till gruppanvändare". Fullständig dokumentation för det här API:et finns här: Grupper – Lägg till gruppanvändare.

Exempelbegäran

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

Begärandetext

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

Använda tjänstens huvudnamn för att bevilja behörighet för ett ASA-jobbs hanterade identitet

För automatiserade distributioner är det inte möjligt att använda en interaktiv inloggning för att ge ett ASA-jobb åtkomst till en Power BI-arbetsyta. Det kan göras med tjänstens huvudnamn för att bevilja behörighet för ett ASA-jobbs hanterade identitet. Detta är möjligt med hjälp av PowerShell:

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

Ta bort hanterad identitet

Den hanterade identitet som skapats för ett Stream Analytics-jobb tas bara bort när jobbet tas bort. Det går inte att ta bort den hanterade identiteten utan att ta bort jobbet. Om du inte längre vill använda den hanterade identiteten kan du ändra autentiseringsmetoden för utdata. Den hanterade identiteten fortsätter att finnas tills jobbet har tagits bort och används om du bestämmer dig för att använda hanterad identitetsautentisering igen.

Begränsningar

Nedan visas begränsningarna för den här funktionen:

  • Klassiska Power BI-arbetsytor stöds inte.

  • Azure-konton utan Microsoft Entra-ID.

  • Åtkomst för flera klientorganisationer stöds inte. Tjänstens huvudnamn som skapats för ett visst Stream Analytics-jobb måste finnas i samma Microsoft Entra-klientorganisation där jobbet skapades och kan inte användas med en resurs som finns i en annan Microsoft Entra-klientorganisation.

  • Användartilldelad identitet stöds inte. Det innebär att du inte kan ange ditt eget huvudnamn för tjänsten som ska användas av deras Stream Analytics-jobb. Tjänstens huvudnamn måste genereras av Azure Stream Analytics.

Nästa steg