Share via


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

A autenticação de Identidade Gerenciada para saída para o Power BI dá aos trabalhos do Stream Analytics acesso direto a um espaço de trabalho em sua conta do 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 entre interativamente no Power BI por meio do portal do Azure. Além disso, trabalhos de longa execução que gravam no Power BI agora são mais bem suportados, já que você não precisará reautorizar periodicamente o trabalho.

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

Nota

Somente identidades gerenciadas atribuídas pelo sistema são suportadas 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 do Power BI com uma licença Pro.
  • Um espaço de trabalho atualizado na sua conta do Power BI. Para obter mais informações, consulte Anúncio do Power BI.

Criar um trabalho do Stream Analytics usando o portal do Azure

  1. Crie um novo trabalho do 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 ao sistema*. Se você selecionar a última opção, especifique a identidade gerenciada que deseja usar. Em seguida, selecione Guardar.

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

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

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

  6. Navegue até a seção Saídas do trabalho do Stream Analytic, selecione + Adicionar e escolha Power BI. Em seguida, selecione o botão Autorizar e entre com sua conta do Power BI.

    Authorize with Power BI account

  7. Uma vez 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". Por fim, selecione o botão Salvar .

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

Implementação do Azure Resource Manager

O Azure Resource Manager permite automatizar totalmente a implantação do seu trabalho do Stream Analytics. Você pode implantar modelos do Gerenciador de Recursos usando o Azure PowerShell ou a CLI do Azure. Os exemplos abaixo usam a CLI do Azure.

  1. Você pode criar um recurso Microsoft.StreamAnalytics/streamingjobs com uma Identidade Gerenciada incluindo a seguinte propriedade na seção de recursos do seu modelo do Gerenciador de Recursos:

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

    Esta propriedade informa ao Azure Resource Manager para criar e gerenciar a identidade para seu trabalho do Stream Analytics. Abaixo está um exemplo de modelo do Gerenciador de Recursos que implanta um trabalho do Stream Analytics com a Identidade Gerenciada habilitada e um coletor de saída do Power BI que usa a 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 no Grupo de Recursos ExampleGroup usando o comando abaixo da CLI do Azure:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Depois que o trabalho for criado, use o 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 abaixo:

    {
        "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 espaço de trabalho do Power BI, anote o retorno principalId.

  3. Agora que o trabalho foi criado, continue para a seção Conceder ao trabalho do Stream Analytics acesso ao seu espaço de trabalho do Power BI deste artigo.

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

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

Usar a interface do usuário do Power BI

Nota

Para adicionar o trabalho do Stream Analytics ao seu espaço de trabalho do Power BI usando a interface do usuário, você também precisa habilitar o acesso da 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 do 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. Instale os cmdlets do Power BI MicrosoftPowerBIMgmt PowerShell.

    Importante

    Certifique-se de estar usando a versão 1.0.821 ou posterior dos cmdlets.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Inicie sessão no Power BI.

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

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

Usar a API REST do Power BI

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

Pedido de amostra

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

Corpo do Pedido

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

Usar uma entidade de serviço para conceder permissão para a identidade gerenciada de um trabalho ASA

Para implantações automatizadas, não é possível usar uma entrada interativa para dar a um trabalho ASA acesso a um espaço de trabalho do Power BI. Isso pode ser feito usando a entidade de serviço para conceder permissão para a identidade gerenciada de um trabalho 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 identidade gerenciada

A Identidade Gerenciada criada para um trabalho do Stream Analytics é excluída somente quando o trabalho é excluído. Não há como 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á a existir 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 clássicos do Power BI.

  • Contas do Azure sem ID do Microsoft Entra.

  • O acesso multilocatário não é suportado. A entidade de serviço criada para um determinado trabalho do Stream Analytics deve residir no mesmo locatário do Microsoft Entra no qual o trabalho foi criado e não pode ser usada com um recurso que reside em um locatário diferente do Microsoft Entra.

  • A Identidade Atribuída ao Usuário não é suportada. 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 deve ser gerada pelo Azure Stream Analytics.

Próximos passos