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
Cree un nuevo trabajo de Stream Analytics o abra un trabajo existente en Azure Portal.
En la barra de menús situada a la izquierda de la pantalla, seleccione Identidad administrada, que se encuentra en Configuración.
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.
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.
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.
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.
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.
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.
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
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.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.
Vaya a la configuración de acceso del área de trabajo. Para más información, consulte Proporcionar acceso al área de trabajo.
Escriba el nombre del trabajo de Stream Analytics en el cuadro de texto y seleccione Colaborador como nivel de acceso.
Seleccione Agregar y cierre el panel.
Uso de los cmdlets de PowerShell de Power BI
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
Inicie sesión en Power BI.
Login-PowerBI
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.