Beheerde identiteit gebruiken om uw Azure Stream Analytics-taak te verifiëren bij Power BI

Verificatie van beheerde identiteit voor uitvoer naar Power BI geeft Stream Analytics-taken directe toegang tot een werkruimte in uw Power BI-account. Met deze functie kunnen implementaties van Stream Analytics-taken volledig worden geautomatiseerd, omdat een gebruiker zich niet langer interactief hoeft aan te melden bij Power BI via de Azure Portal. Daarnaast worden langlopende taken die naar Power BI schrijven nu beter ondersteund, omdat u de taak niet periodiek opnieuw hoeft te autoriseren.

In dit artikel wordt beschreven hoe u beheerde identiteit inschakelt voor de Power BI-uitvoer(en) van een Stream Analytics-taak via de Azure Portal en via een Azure Resource Manager-implementatie.

Notitie

Alleen door het systeem toegewezen beheerde identiteiten worden ondersteund met de Power BI-uitvoer . Momenteel wordt het gebruik van door de gebruiker toegewezen beheerde identiteiten met de Power BI-uitvoer niet ondersteund.

Vereisten

U moet aan de volgende vereisten voldoen voordat u deze functie kunt gebruiken:

Een Stream Analytics-taak maken met behulp van de Azure Portal

  1. Maak een nieuwe Stream Analytics-taak of open een bestaande taak in de Azure Portal.

  2. Selecteer in de menubalk aan de linkerkant van het scherm beheerde identiteit onder Instellingen.

    Schermopname van de pagina Beheerde identiteit met de knop Identiteit selecteren geselecteerd.

  3. Selecteer op de pagina Identiteit selecteren de optie Door het systeem toegewezen identiteit*. Als u de laatste optie selecteert, geeft u de beheerde identiteit op die u wilt gebruiken. Selecteer vervolgens Opslaan.

    Schermopname van de pagina Identiteit selecteren met Door het systeem toegewezen identiteit geselecteerd.

  4. Controleer op de pagina Beheerde identiteit of de principal-id en principalnaam zijn toegewezen aan uw Stream Analytics-taak. De principal-naam moet hetzelfde zijn als de naam van uw Stream Analytics-taak.

  5. Voordat u de uitvoer configureert, geeft u de Stream Analytics-taak toegang tot uw Power BI-werkruimte door de instructies te volgen in de sectie De Stream Analytics-taak toegang geven tot uw Power BI-werkruimte van dit artikel.

  6. Navigeer naar de sectie Uitvoer van uw Stream Analytics-taak, selecteer + Toevoegen en kies vervolgens Power BI. Selecteer vervolgens de knop Autoriseren en meld u aan met uw Power BI-account.

    Autoriseren met Power BI-account

  7. Zodra dit is geautoriseerd, wordt een vervolgkeuzelijst ingevuld met alle werkruimten waar u toegang toe hebt. Selecteer de werkruimte die u in de vorige stap hebt geautoriseerd. Selecteer vervolgens Beheerde identiteit als verificatiemodus. Selecteer ten slotte de knop Opslaan .

    Schermopname van de Power BI-uitvoerconfiguratie met de verificatiemodus voor beheerde identiteit geselecteerd.

Implementatie van Azure Resource Manager

Met Azure Resource Manager kunt u de implementatie van uw Stream Analytics-taak volledig automatiseren. U kunt Resource Manager sjablonen implementeren met behulp van Azure PowerShell of de Azure CLI. In de onderstaande voorbeelden wordt de Azure CLI gebruikt.

  1. U kunt een Microsoft.StreamAnalytics/streamingjobs-resource maken met een beheerde identiteit door de volgende eigenschap op te slaan in de resourcesectie van uw Resource Manager sjabloon:

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

    Deze eigenschap vertelt Azure Resource Manager om de identiteit voor uw Stream Analytics-taak te maken en te beheren. Hieronder ziet u een voorbeeld Resource Manager sjabloon waarmee een Stream Analytics-taak wordt geïmplementeerd waarvoor beheerde identiteit is ingeschakeld en een Power BI-uitvoersink die gebruikmaakt van beheerde identiteit:

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

    Implementeer de bovenstaande taak in de resourcegroep ExampleGroup met behulp van de onderstaande Azure CLI-opdracht:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Nadat de taak is gemaakt, gebruikt u Azure Resource Manager om de volledige definitie van de taak op te halen.

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

    De bovenstaande opdracht retourneert een antwoord zoals hieronder:

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

    Als u van plan bent om de Power BI REST API te gebruiken om de Stream Analytics-taak toe te voegen aan uw Power BI-werkruimte, noteert u de geretourneerde principalId.

  3. Nu de taak is gemaakt, gaat u verder met de sectie De Stream Analytics-taak toegang geven tot uw Power BI-werkruimte van dit artikel.

De Stream Analytics-taak toegang geven tot uw Power BI-werkruimte

Nu de Stream Analytics-taak is gemaakt, kan deze toegang krijgen tot een Power BI-werkruimte. Nadat u uw taak toegang hebt gegeven, wacht u enkele minuten voordat de identiteit is doorgegeven.

De gebruikersinterface van Power BI gebruiken

Notitie

Als u de Stream Analytics-taak wilt toevoegen aan uw Power BI-werkruimte met behulp van de gebruikersinterface, moet u ook toegang tot de service-principal inschakelen in de instellingen voor ontwikkelaars in de Power BI-beheerportal. Zie Aan de slag met een service-principal voor meer informatie.

  1. Navigeer naar de toegangsinstellingen van de werkruimte. Zie Toegang geven tot uw werkruimte voor meer informatie.

  2. Typ de naam van uw Stream Analytics-taak in het tekstvak en selecteer Inzender als toegangsniveau.

  3. Selecteer Toevoegen en sluit het deelvenster.

    Stream Analytics-taak toevoegen aan Power BI-werkruimte

De Power BI PowerShell-cmdlets gebruiken

  1. Installeer de Power BI MicrosoftPowerBIMgmt PowerShell-cmdlets.

    Belangrijk

    Zorg ervoor dat u versie 1.0.821 of hoger van de cmdlets gebruikt.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Meld u aan bij Power BI.

    Login-PowerBI
    
  3. Voeg uw Stream Analytics-taak toe als inzender aan de werkruimte.

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

De Power BI REST API gebruiken

De Stream Analytics-taak kan ook rechtstreeks worden toegevoegd als inzender aan de werkruimte met behulp van de REST API 'Groepsgebruiker toevoegen'. Volledige documentatie voor deze API vindt u hier: Groepen - Groepsgebruiker toevoegen.

Voorbeeldaanvraag

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

Aanvraagbody

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

Een service-principal gebruiken om machtigingen te verlenen voor de beheerde identiteit van een ASA-taak

Voor geautomatiseerde implementaties is het gebruik van een interactieve aanmelding om een ASA-taak toegang te geven tot een Power BI-werkruimte niet mogelijk. Dit kan worden gedaan met behulp van de service-principal om machtigingen te verlenen voor de beheerde identiteit van een ASA-taak. Dit is mogelijk met Behulp van PowerShell:

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

Beheerde identiteit verwijderen

De beheerde identiteit die voor een Stream Analytics-taak is gemaakt, wordt alleen verwijderd wanneer de taak wordt verwijderd. Het is niet mogelijk om de beheerde identiteit te verwijderen zonder de taak te verwijderen. Als u de beheerde identiteit niet meer wilt gebruiken, kunt u de verificatiemethode voor de uitvoer wijzigen. De beheerde identiteit blijft bestaan totdat de taak wordt verwijderd en wordt gebruikt als u besluit om verificatie van beheerde identiteit opnieuw te gebruiken.

Beperkingen

Hieronder ziet u de beperkingen van deze functie:

  • Klassieke Power BI-werkruimten worden niet ondersteund.

  • Azure-accounts zonder Azure Active Directory.

  • Toegang tot meerdere tenants wordt niet ondersteund. De service-principal die voor een bepaalde Stream Analytics-taak is gemaakt, moet zich bevinden in dezelfde Azure Active Directory-tenant waarin de taak is gemaakt en kan niet worden gebruikt met een resource die zich in een andere Azure Active Directory-tenant bevindt.

  • Door de gebruiker toegewezen identiteit wordt niet ondersteund. Dit betekent dat u uw eigen service-principal niet kunt invoeren voor gebruik door hun Stream Analytics-taak. De service-principal moet worden gegenereerd door Azure Stream Analytics.

Volgende stappen