Usar a Identidade Gerenciada para autenticar o trabalho do Azure Stream Analytics para o Power BI

A autenticação de Identidade Gerenciada para saída para Power BI fornece aos trabalhos de Stream Analytics acesso direto a um espaço de trabalho dentro de sua conta de Power BI. Esse recurso permite que as implantações de trabalhos do Stream Analytics sejam totalmente automatizadas, já que não é mais necessário que um usuário faça logon interativamente no Power BI por meio do portal do Azure. Além disso, trabalhos de execução prolongada que gravam no Power BI agora têm melhor suporte, já que não será mais preciso reautorizar o trabalho periodicamente.

Este artigo mostra como habilitar a Identidade Gerenciada para as saídas do Power BI de um trabalho de Stream Analytics por meio do portal do Azure e por meio de uma implantação do Azure Resource Manager.

Observação

Somente identidades gerenciadas atribuídas pelo sistema têm suporte com a saída do Power BI. Atualmente, não há suporte para o uso de identidades gerenciadas atribuídas pelo usuário com a saída do Power BI.

Pré-requisitos

Você deve ter os seguintes pré-requisitos antes de usar esse recurso:

  • Uma conta de Power BI com uma licença pro.
  • Um espaço de trabalho atualizado dentro de sua conta de Power BI. Para obter mais informações, confira Anúncio do Power BI.

Criar um trabalho do Stream Analytics usando o portal do Azure

  1. Crie um novo trabalho de Stream Analytics ou abra um trabalho existente no portal do Azure.

  2. Na barra de menus localizada no lado esquerdo da tela, selecione Identidade gerenciada localizada em Configurações.

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

  3. Na página Selecionar identidade, selecione Identidade atribuída pelo sistema*. Se você selecionar a última opção, especifique a identidade gerenciada que deseja usar. Em seguida, selecione Salvar.

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

  4. Na página Identidade gerenciada, confirme se você vê a ID da entidade de segurança e o Nome da entidade de segurança atribuídos ao trabalho do Stream Analytics. O nome da entidade de segurança deve ser o mesmo que o nome do trabalho do Stream Analytics.

  5. Antes de configurar a saída, conceda ao trabalho de Stream Analytics acesso ao seu espaço de trabalho do Power BI seguindo as instruções na seção fornecer ao trabalho de Stream Analytics acesso ao seu espaço de trabalho do Power BI deste artigo.

  6. Navegue até a seção de saídas do trabalho do seu fluxo analítico, selecione + Adicionare, em seguida, escolha Power BI. Em seguida, selecione o botão Autorizar e faça logon com sua conta do Power BI.

    Authorize with Power BI account

  7. Depois de autorizada, uma lista suspensa será preenchida com todos os espaços de trabalho aos quais você tem acesso. Selecione o espaço de trabalho que você autorizou na etapa anterior. Em seguida, selecione identidade gerenciada como o "modo de autenticação". Selecione o botão Salvar.

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

Implantação do Azure Resource Manager

Azure Resource Manager permite automatizar totalmente a implantação de seu trabalho de Stream Analytics. Você também pode implantar recursos com modelos do Resource Manager usando o Azure PowerShell ou a CLI do Azure. Os exemplos a seguir usam o CLI do Azure.

  1. Você pode criar um recurso Microsoft.StreamAnalytics/streamingjobs com uma identidade gerenciada incluindo a propriedade a seguir na seção de recursos do seu modelo do Resource Manager:

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

    Essa propriedade instrui o Azure Resource Manager a criar e gerenciar a identidade para seu trabalho do Azure Stream Analytics. Veja abaixo um exemplo de modelo do Resource Manager que implanta um trabalho Stream Analytics com identidade gerenciada habilitada e um coletor de saída Power BI que usa identidade gerenciada:

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

    Implante o trabalho acima para o grupo de recursos de GrupoExemplo usando o comando do CLI do Azure a seguir:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Depois que o trabalho for criado, use Azure Resource Manager para recuperar a definição completa do trabalho.

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

    O comando acima retornará uma resposta como a seguinte:

    {
        "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 você planeja usar a API REST do Power BI para adicionar o trabalho do Stream Analytics ao seu workspace do Power BI, anote o principalId retornado.

  3. Agora que o trabalho foi criado, vá para a seção fornecer o acesso Stream Analytics trabalho ao espaço de trabalho do Power bi deste artigo.

Dê ao Stream Analytics o acesso ao seu espaço de trabalho Power BI

Agora que o trabalho de Stream Analytics foi criado, ele pode receber acesso a um espaço de trabalho Power BI. Depois de ter dado o acesso ao trabalho, aguarde alguns minutos para que a identidade se propague.

Usar a interface do usuário do Power BI

Observação

Para adicionar o trabalho de Stream Analytics ao seu espaço de trabalho do Power BI usando a interface do usuário, você também precisa habilitar o acesso à entidade de serviço nas configurações do desenvolvedor no portal de administração do Power bi. Para obter mais informações, consulte introdução a uma entidade de serviço.

  1. Navegue até as configurações de acesso do espaço de trabalho. Para obter mais informações, consulte Conceder acesso ao seu espaço de trabalho.

  2. Digite o nome do seu trabalho de Stream Analytics na caixa de texto e selecione colaborador como o nível de acesso.

  3. Selecione Adicionar e feche o painel.

    Add Stream Analytics job to Power BI workspace

Usar os cmdlets do PowerShell do Power BI

  1. Instalar os cmdlets do PowerShell do Power BI MicrosoftPowerBIMgmt.

    Importante

    Verifique se você está usando a versão 1.0.821 ou posterior dos cmdlets.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Entre no Power BI.

    Login-PowerBI
    
  3. Adicione seu trabalho de Stream Analytics como um colaborador ao espaço de trabalho.

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

Use a API REST do Power BI

O trabalho de Stream Analytics também pode ser adicionado como um colaborador ao espaço de trabalho usando a API REST "Adicionar usuário de grupo" diretamente. A documentação completa para essa API pode ser encontrada aqui: grupos-Adicionar usuário do grupo.

Solicitação de Exemplo

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

Corpo da solicitação

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

Usar uma Entidade de Serviço para conceder permissão para a Identidade Gerenciada de um trabalho do ASA

Para implantações automatizadas, não é possível usar um logon interativo para dar a um trabalho ASA acesso a um espaço de trabalho do Power BI. Isso pode ser feito usando uma entidade de serviço para conceder permissão para uma identidade gerenciada de um trabalho do ASA. Isso é possível usando o PowerShell:

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

Remover a identidade gerenciada

A identidade Gerenciada criada para um trabalho do Stream Analytics é excluída somente quando o trabalho é excluído. Não é possível excluir a Identidade Gerenciada sem excluir o trabalho. Se você não quiser mais usar a Identidade gerenciada, poderá alterar o método de autenticação para a saída. A Identidade gerenciada continuará existindo até que o trabalho seja excluído e será usada se você decidir usar a autenticação de identidade gerenciada novamente.

Limitações

Abaixo estão as limitações desse recurso:

  • Não há suporte para espaços de trabalho do Power BI clássico.

  • Contas do Azure sem o Microsoft Entra ID.

  • Não há suporte para acesso multilocatário. A entidade de serviço criada para um determinado trabalho de Stream Analytics residirá no mesmo locatário do Microsoft Entra no qual o trabalho foi criado e não poderá ser usada em um recurso que resida em um locatário diferente do Microsoft Entra.

  • não há suporte para Identidade atribuída ao usuário. Isso significa que você não pode inserir sua própria entidade de serviço para ser usada pelo trabalho do Stream Analytics. A entidade de serviço é gerada pelo Azure Stream Analytics.

Próximas etapas