Uso de la identidad administrada para autenticar el trabajo de Azure Stream Analytics en Power BI

Autenticación de identidad administrada para la salida a Power BI proporciona a los trabajos de Stream Analytics acceso directo a un área de trabajo dentro de la cuenta de Power BI. Esta característica permite que las implementaciones de los trabajos de Stream Analytics se automaticen de manera completa, dado que ya no es necesario que un usuario inicie sesión de forma interactiva en Power BI a través de Azure Portal. Además, los trabajos de larga duración que escriben en Power BI ahora se admiten mejor, ya que no será necesario volver a autorizar el trabajo de forma periódica.

En este artículo se muestra cómo habilitar la identidad administrada para las salidas a Power BI de un trabajo de Stream Analytics a través de Azure Portal y de una implementación de Azure Resource Manager.

Nota:

Solo se admiten identidades administradas asignadas por el sistema con la salida de Power BI. Actualmente, no se admite el uso de identidades administradas asignadas por el usuario con la salida de Power BI.

Requisitos previos

Debe tener los siguientes requisitos previos antes de usar esta característica:

  • Una cuenta de Power BI con una licencia Pro.
  • Un área de trabajo actualizada dentro de la cuenta de Power BI. Para obtener más información, consulte el anuncio de Power BI.

Creación de un trabajo de Stream Analytics mediante Azure Portal

  1. Cree un nuevo trabajo de Stream Analytics o abra un trabajo existente en Azure Portal.

  2. En la barra de menús situada a la izquierda de la pantalla, seleccione Identidad administrada, que se encuentra en Configuración.

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

  3. En la página Seleccionar identidad, seleccione Identidad asignada por el sistema*. Si selecciona la última opción, especifique la identidad administrada que desea usar. Después, seleccione Guardar.

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

  4. En la página Identidad administrada, confirme que ve el Identificador de entidad de seguridad y el Nombre de entidad de seguridad asignados al trabajo de Stream Analytics. El nombre de entidad de seguridad debe ser el mismo que el nombre del trabajo de Stream Analytics.

  5. Antes de configurar la salida, debe asignar al trabajo de Stream Analytics acceso al área de trabajo de Power BI; para ello, siga las instrucciones de la sección Concesión de acceso al trabajo de Stream Analytics al área de trabajo de Power BI de este artículo.

  6. Vaya a la sección Salidas del trabajo de Stream Analytics, seleccione + Agregar y luego Power BI. Después, seleccione el botón Autorizar e inicie sesión con la cuenta de Power BI.

    Authorize with Power BI account

  7. Una vez que esté autorizado, se rellenará una lista desplegable con todas las áreas de trabajo a las que tenga acceso. Seleccione el área de trabajo que haya autorizado en el paso anterior. Después, seleccione Identidad administrada en la lista "Autenticación". Por último, seleccione el botón Guardar.

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

Implementación de Azure Resource Manager

Azure Resource Manager permite automatizar completamente la implementación del trabajo de Stream Analytics. Puede implementar las plantillas de Resource Manager mediante Azure PowerShell o la CLI de Azure. Los ejemplos siguientes usan la CLI de Azure.

  1. Para crear un recurso Microsoft.StreamAnalytics/streamingjobs con una identidad administrada, puede incluir la siguiente propiedad en la sección de recursos de la plantilla de Resource Manager:

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

    Esta propiedad indica a Azure Resource Manager que cree y administre la identidad del trabajo de Stream Analytics. A continuación, se muestra un ejemplo de una plantilla de Resource Manager que implementa un trabajo de Stream Analytics con la identidad administrada habilitada y un receptor de salida de Power BI que usa la identidad administrada:

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

    Implemente el trabajo anterior en el grupo de recursos ExampleGroup mediante el siguiente comando de la CLI de Azure:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Una vez creado el trabajo, use Azure Resource Manager para recuperar la definición completa del trabajo.

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

    El comando anterior devolverá una respuesta como la siguiente:

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

    Si tiene previsto usar la API REST de Power BI para agregar el trabajo de Stream Analytics al área de trabajo de Power BI, anote el valor principalId devuelto.

  3. Ahora que se ha creado el trabajo, continúe a la sección Concesión de acceso al trabajo de Stream Analytics al área de trabajo de Power BI de este artículo.

Concesión de acceso al trabajo de Stream Analytics al área de trabajo de Power BI

Ahora que se ha creado el trabajo de Stream Analytics, se le puede conceder acceso a un área de trabajo de Power BI. Una vez que haya dado acceso a su trabajo, espere unos minutos a que se propague la identidad.

Uso de la interfaz de usuario de Power BI

Nota

Para agregar el trabajo de Stream Analytics al área de trabajo de Power BI mediante la interfaz de usuario, también debe habilitar el acceso de la entidad de servicio en Configuración de desarrollador en el portal de administración de Power BI. Para obtener más información, consulte Introducción a una entidad de servicio.

  1. Vaya a la configuración de acceso del área de trabajo. Para más información, consulte Proporcionar acceso al área de trabajo.

  2. Escriba el nombre del trabajo de Stream Analytics en el cuadro de texto y seleccione Colaborador como nivel de acceso.

  3. Seleccione Agregar y cierre el panel.

    Add Stream Analytics job to Power BI workspace

Uso de los cmdlets de PowerShell de Power BI

  1. Instale los cmdlets de PowerShell MicrosoftPowerBIMgmt de Power BI.

    Importante

    Asegúrese de que usa la versión 1.0.821 o posterior de los cmdlets.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Inicie sesión en Power BI.

    Login-PowerBI
    
  3. Agregue el trabajo de Stream Analytics como colaborador en el área de trabajo.

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

Uso de la API REST de Power BI

El trabajo de Stream Analytics también se puede agregar como Colaborador al área de trabajo si se usa directamente la API REST "Agregar usuario de grupo". La documentación completa para esta API se puede encontrar aquí: Grupos: agregar usuario de grupo.

Solicitud de ejemplo

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

Cuerpo de la solicitud

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

Uso de una entidad de servicio para conceder permiso para la identidad administrada de un trabajo de ASA

En el caso de las implementaciones automatizadas, no es posible usar un inicio de sesión interactivo para proporcionar a un trabajo de ASA acceso a un área de trabajo de Power BI. Se puede hacer mediante una entidad de servicio para conceder permiso para la identidad administrada de un trabajo de ASA. Esto es posible mediante PowerShell:

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

Eliminación de una identidad administrada

La identidad administrada creada para un trabajo de Stream Analytics se elimina solo cuando se elimina el trabajo. No hay ninguna manera de eliminar la identidad administrada sin eliminar el trabajo. Si ya no va a usar la identidad administrada, puede cambiar el método de autenticación de la salida. La identidad administrada seguirá existiendo hasta que se elimine el trabajo y se utilizará si decide usar de nuevo la autenticación de identidad administrada.

Limitaciones

A continuación se muestran las limitaciones de esta característica:

  • No se admiten las áreas de trabajo clásicas de Power BI.

  • Cuentas de Azure sin Microsoft Entra ID.

  • No se admite el acceso multiinquilino. La entidad de servicio creada para un trabajo determinado de Stream Analytics debe residir en el mismo inquilino de Microsoft Entra en el que se creó el trabajo, y no se puede usar en un recurso que resida en un inquilino de Microsoft Entra diferente.

  • No se admite la identidad asignada por el usuario. Esto significa que no puede especificar una entidad de servicio propia para que la use el trabajo de Stream Analytics. Azure Stream Analytics debe generar la entidad de servicio.

Pasos siguientes