Uso de la identidad administrada para autenticar el trabajo de Azure Stream Analytics en Power BIUse Managed Identity to authenticate your Azure Stream Analytics job to 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.Managed Identity authentication for output to Power BI gives Stream Analytics jobs direct access to a workspace within your Power BI account. 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.This feature allows for deployments of Stream Analytics jobs to be fully automated, since it is no longer required for a user to interactively log in to Power BI via the 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.Additionally, long running jobs that write to Power BI are now better supported, since you will not need to periodically reauthorize the job.

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.This article shows you how to enable Managed Identity for the Power BI output(s) of a Stream Analytics job through the Azure portal and through an Azure Resource Manager deployment.

PrerrequisitosPrerequisites

Para usar esta característica se requiere lo siguiente:The following are required for using this feature:

  • Una cuenta de Power BI con una licencia Pro.A Power BI account with a Pro license.

  • Un área de trabajo actualizada dentro de la cuenta de Power BI.An upgraded workspace within your Power BI account. Para más información, vea el anuncio de Power BI de esta característica.See Power BI's announcement of this feature for more details.

Creación de un trabajo de Stream Analytics mediante Azure PortalCreate a Stream Analytics job using the Azure portal

  1. Cree un nuevo trabajo de Stream Analytics o abra un trabajo existente en Azure Portal.Create a new Stream Analytics job or open an existing job in the Azure portal. En la barra de menús situada a la izquierda de la pantalla, seleccione Identidad administrada, que se encuentra en Configurar.From the menu bar located on the left side of the screen, select Managed Identity located under Configure. Asegúrese de que está seleccionada la opción "Usar la identidad administrada asignada por el sistema" y, después, seleccione el botón Guardar en la parte inferior de la pantalla.Ensure that "Use System-assigned Managed Identity" is selected and then select the Save button on the bottom of the screen.

    Configuración de la Identidad administrada de Stream Analytics

  2. 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.Before configuring the output, give the Stream Analytics job access to your Power BI workspace by following the directions in the Give the Stream Analytics job access to your Power BI workspace section of this article.

  3. Vaya a la sección Salidas del trabajo de Stream Analytics, seleccione + Agregar y luego Power BI.Navigate to the Outputs section of your Stream Analytic's job, select + Add, and then choose Power BI. Después, seleccione el botón Autorizar e inicie sesión con la cuenta de Power BI.Then, select the Authorize button and log in with your Power BI account.

    Autorización con la cuenta de Power BI

  4. Una vez que esté autorizado, se rellenará una lista desplegable con todas las áreas de trabajo a las que tenga acceso.Once authorized, a dropdown list will be populated with all of the workspaces you have access to. Seleccione el área de trabajo que haya autorizado en el paso anterior.Select the workspace that you authorized in the previous step. Después, seleccione Identidad administrada en la lista "Autenticación".Then select Managed Identity as the "Authentication mode". Por último, seleccione el botón Guardar.Finally, select the Save button.

    Configuración de la salida de Power BI con la identidad administrada

Implementación de Azure Resource ManagerAzure Resource Manager deployment

Azure Resource Manager permite automatizar completamente la implementación del trabajo de Stream Analytics.Azure Resource Manager allows you to fully automate the deployment of your Stream Analytics job. Puede implementar las plantillas de Resource Manager mediante Azure PowerShell o la CLI de Azure.You can deploy Resource Manager templates using either Azure PowerShell or the Azure CLI. Los ejemplos siguientes usan la CLI de Azure.The below examples use the Azure CLI.

  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:You can create a Microsoft.StreamAnalytics/streamingjobs resource with a Managed Identity by including the following property in the resource section of your Resource Manager template:

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

    Esta propiedad indica a Azure Resource Manager que cree y administre la identidad del trabajo de Stream Analytics.This property tells Azure Resource Manager to create and manage the identity for your Stream Analytics job. 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:Below is an example Resource Manager template that deploys a Stream Analytics job with Managed Identity enabled and a Power BI output sink that uses Managed Identity:

    {
        "$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:Deploy the job above to the Resource group ExampleGroup using the below Azure CLI command:

    az group deployment 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.After the job is created, use Azure Resource Manager to retrieve the job's full definition.

    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:The above command will return a response like the below:

    {
        "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.If you plan to use Power BI's REST API to add the Stream Analytics job to your Power BI workspace, make note of the returned "principalId".

  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.Now that the job is created, continue to the Give the Stream Analytics job access to your Power BI workspace section of this article.

Concesión de acceso al trabajo de Stream Analytics al área de trabajo de Power BIGive the Stream Analytics job access to your Power BI workspace

Ahora que se ha creado el trabajo de Stream Analytics, se le puede conceder acceso a un área de trabajo de Power BI.Now that the Stream Analytics job has been created, it can be given access to a Power BI workspace.

Uso de la interfaz de usuario de Power BIUse the Power BI UI

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.In order to add the Stream Analytics job to your Power BI workspace using the UI, you also have to enable service principal access in the Developer settings in the Power BI admin portal. Vea Introducción a una entidad de servicio para obtener más detalles.See Get started with a service principal for more details.

  1. Vaya a la configuración de acceso del área de trabajo.Navigate to the workspace's access settings. Vea este artículo para obtener más información: Concesión de acceso al área de trabajo.See this article for more details: Give access to your workspace.

  2. Escriba el nombre del trabajo de Stream Analytics en el cuadro de texto y seleccione Colaborador como nivel de acceso.Type the name of your Stream Analytics job in the text box and select Contributor as the access level.

  3. Seleccione Agregar y cierre el panel.Select Add and close the pane.

    Adición del trabajo de Stream Analytics al área de trabajo de Power BI

Uso de los cmdlets de PowerShell de Power BIUse the Power BI PowerShell cmdlets

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

    Importante

    Asegúrese de que usa la versión 1.0.821 o posterior de los cmdlets.Please ensure you are using version 1.0.821 or later of the cmdlets.

Install-Module -Name MicrosoftPowerBIMgmt
  1. Inicie sesión en Power BI.Log in to Power BI.
Login-PowerBI
  1. Agregue el trabajo de Stream Analytics como colaborador en el área de trabajo.Add your Stream Analytics job as a Contributor to the workspace.
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor

Uso de la API REST de Power BIUse the Power BI REST API

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".The Stream Analytics job can also be added as a Contributor to the workspace by using the "Add Group User" REST API directly. La documentación completa para esta API se puede encontrar aquí: Grupos: agregar usuario de grupo.Full documentation for this API can be found here: Groups - Add Group User.

Solicitud de ejemploSample Request

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

Cuerpo de la solicitudRequest Body

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

LimitacionesLimitations

A continuación se muestran las limitaciones de esta característica:Below are the limitations of this feature:

  • No se admiten las áreas de trabajo clásicas de Power BI.Classic Power BI workspaces are not supported.

  • Cuentas de Azure sin Azure Active Directory.Azure accounts without Azure Active Directory.

  • No se admite el acceso multiinquilino.Multi-tenant access is not supported. La entidad de servicio creada para un trabajo determinado de Stream Analytics debe residir en el mismo inquilino de Azure Active Directory en el que se creó el trabajo, y no se puede usar en un recurso que resida en un inquilino de Azure Active Directory diferente.The Service principal created for a given Stream Analytics job must reside in the same Azure Active Directory tenant in which the job was created, and cannot be used with a resource that resides in a different Azure Active Directory tenant.

  • La identidad asignada por el usuario no se admite.User Assigned Identity is not supported. Esto significa que no puede especificar una entidad de servicio propia para que la use el trabajo de Stream Analytics.This means you are not able to enter your own service principal to be used by their Stream Analytics job. Azure Stream Analytics debe generar la entidad de servicio.The service principal must be generated by Azure Stream Analytics.

Pasos siguientesNext steps