Condividi tramite


Usare l'identità gestita per autenticare il processo di Analisi di flusso di Azure in Power BI

L'autenticazione dell'identità gestita per l'output in Power BI offre ai processi di Analisi di flusso l'accesso diretto a un'area di lavoro all'interno dell'account Power BI. Questa funzionalità consente di automatizzare completamente le distribuzioni dei processi di Analisi di flusso, perché non è più necessario per un utente accedere in modo interattivo a Power BI tramite il portale di Azure. Inoltre, i processi a esecuzione prolungata che scrivono in Power BI sono ora più supportati, poiché non è necessario riautorizzare periodicamente il processo.

Questo articolo illustra come abilitare l'identità gestita per gli output di Power BI di un processo di Analisi di flusso tramite il portale di Azure e tramite una distribuzione di Azure Resource Manager.

Nota

Con l'output di Power BI sono supportate solo le identità gestite assegnate dal sistema. Attualmente, l'uso di identità gestite assegnate dall'utente con l'output di Power BI non è supportato.

Prerequisiti

Prima di usare questa funzionalità, è necessario disporre dei prerequisiti seguenti:

  • Un account Power BI con una licenza Pro.
  • Un'area di lavoro aggiornata all'interno dell'account Power BI. Per altre informazioni, vedere l'annuncio di Power BI.

Creare un processo di Analisi di flusso usando il portale di Azure

  1. Creare un nuovo processo di Analisi di flusso o aprire un processo esistente nel portale di Azure.

  2. Nella barra dei menu a sinistra della schermata selezionare Identità gestita in Impostazioni.

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

  3. Nella pagina Seleziona identità selezionare Identità assegnata dal sistema*. Se si seleziona l'ultima opzione, specificare l'identità gestita da usare. Selezionare quindi Salva.

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

  4. Nella pagina Identità gestita verificare di visualizzare l'ID entità e il nome dell'entità assegnati al processo di Analisi di flusso. Il nome dell'entità deve corrispondere al nome del processo di Analisi di flusso.

  5. Prima di configurare l'output, concedere al processo di Analisi di flusso l'accesso all'area di lavoro di Power BI seguendo le istruzioni riportate nella sezione Concedere all'area di lavoro di Analisi di flusso l'accesso all'area di lavoro di Power BI di questo articolo.

  6. Passare alla sezione Output del processo di Analisi di flusso, selezionare + Aggiungi e quindi scegliere Power BI. Selezionare quindi il pulsante Autorizza e accedere con l'account di Power BI.

    Authorize with Power BI account

  7. Dopo l'autorizzazione, verrà popolato un elenco a discesa con tutte le aree di lavoro a cui si ha accesso. Selezionare l'area di lavoro autorizzata nel passaggio precedente. Selezionare quindi Identità gestita come "Modalità di autenticazione". Infine, selezionare il pulsante Salva .

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

Distribuzione Azure Resource Manager

Azure Resource Manager consente di automatizzare completamente la distribuzione del processo di Analisi di flusso. È possibile distribuire modelli di Resource Manager usando Azure PowerShell o l'interfaccia della riga di comando di Azure. Gli esempi seguenti usano l'interfaccia della riga di comando di Azure.

  1. È possibile creare una risorsa Microsoft.StreamAnalytics/streamingjobs con un'identità gestita includendo la proprietà seguente nella sezione della risorsa del modello di Resource Manager:

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

    Questa proprietà indica ad Azure Resource Manager di creare e gestire l'identità per il processo di Analisi di flusso. Di seguito è riportato un modello di Resource Manager di esempio che distribuisce un processo di Analisi di flusso con identità gestita abilitata e un sink di output di Power BI che usa l'identità gestita:

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

    Distribuire il processo precedente nel gruppo di risorse ExampleGroup usando il comando seguente dell'interfaccia della riga di comando di Azure:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Dopo aver creato il processo, usare Azure Resource Manager per recuperare la definizione completa del processo.

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

    Il comando precedente restituirà una risposta simile alla seguente:

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

    Se si prevede di usare l'API REST di Power BI per aggiungere il processo di Analisi di flusso all'area di lavoro di Power BI, prendere nota dell'oggetto restituito principalId.

  3. Dopo aver creato il processo, continuare con la sezione Concedere all'area di lavoro di Analisi di flusso l'accesso all'area di lavoro di Power BI di questo articolo.

Concedere al processo di Analisi di flusso l'accesso all'area di lavoro di Power BI

Ora che il processo di Analisi di flusso è stato creato, può essere concesso l'accesso a un'area di lavoro di Power BI. Dopo aver concesso l'accesso al processo, attendere alcuni minuti per propagare l'identità.

Usare l'interfaccia utente di Power BI

Nota

Per aggiungere il processo di Analisi di flusso all'area di lavoro di Power BI usando l'interfaccia utente, è anche necessario abilitare l'accesso all'entità servizio nelle impostazioni sviluppatore nel portale di amministrazione di Power BI. Per altre informazioni, vedere Introduzione a un'entità servizio.

  1. Passare alle impostazioni di accesso dell'area di lavoro. Per altre informazioni, vedere Concedere l'accesso all'area di lavoro.

  2. Digitare il nome del processo di Analisi di flusso nella casella di testo e selezionare Collaboratore come livello di accesso.

  3. Selezionare Aggiungi e chiudere il riquadro.

    Add Stream Analytics job to Power BI workspace

Usare i cmdlet di PowerShell di Power BI

  1. Installare i cmdlet di PowerShell di Power BI MicrosoftPowerBIMgmt .

    Importante

    Assicurarsi di usare la versione 1.0.821 o successiva dei cmdlet.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Accedere a Power BI.

    Login-PowerBI
    
  3. Aggiungere il processo di Analisi di flusso come Collaboratore all'area di lavoro.

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

Usare l'API REST di Power BI

Il processo di Analisi di flusso può anche essere aggiunto come Collaboratore all'area di lavoro usando direttamente l'API REST "Aggiungi utente gruppo". La documentazione completa per questa API è disponibile qui: Gruppi - Aggiungi utente gruppo.

Richiesta di esempio

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

Corpo della richiesta

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

Usare un'entità servizio per concedere l'autorizzazione per l'identità gestita di un processo del servizio app

Per le distribuzioni automatizzate, l'uso di un accesso interattivo per concedere a un processo del servizio app l'accesso a un'area di lavoro di Power BI non è possibile. È possibile usare l'entità servizio per concedere l'autorizzazione per l'identità gestita di un processo asa. È possibile usare PowerShell:

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

Rimuovere l'identità gestita

L'identità gestita creata per un processo di Analisi di flusso viene eliminata solo quando il processo viene eliminato. Non è possibile eliminare l'identità gestita senza eliminare il processo. Se non si vuole più usare l'identità gestita, è possibile modificare il metodo di autenticazione per l'output. L'identità gestita continuerà a esistere fino all'eliminazione del processo e verrà usata se si decide di usare nuovamente l'autenticazione dell'identità gestita.

Limiti

Di seguito sono riportate le limitazioni di questa funzionalità:

  • Le aree di lavoro classiche di Power BI non sono supportate.

  • Account Azure senza MICROSOFT Entra ID.

  • L'accesso multi-tenant non è supportato. L'entità servizio creata per un determinato processo di Analisi di flusso deve risiedere nello stesso tenant di Microsoft Entra in cui è stato creato il processo e non può essere usato con una risorsa che risiede in un tenant Microsoft Entra diverso.

  • L'identità assegnata dall'utente non è supportata. Ciò significa che non è possibile immettere un'entità servizio personalizzata da usare dal processo di Analisi di flusso. L'entità servizio deve essere generata da Analisi di flusso di Azure.

Passaggi successivi