Inserción de contenido de Power BI con entidades de servicio y un secreto de aplicación

La entidad de servicio es un método de autenticación que se puede usar para permitir que una aplicación de Microsoft Entra tenga acceso a las API y el contenido del servicio Power BI.

Al crear una aplicación Microsoft Entra, se crea un objeto de entidad de servicio. El objeto de entidad de servicio, también conocido como entidad de servicio, permite que Microsoft Entra ID autentique su aplicación. Una vez autenticada, la aplicación puede acceder a los recursos del inquilino de Microsoft Entra.

Para realizar la autenticación, la entidad de servicio usa el identificador de aplicación de la aplicación de Microsoft Entra y uno de los siguientes:

  • Un certificado
  • Un secreto de aplicación

En este artículo se describe la autenticación de la entidad de servicio mediante el identificador de aplicación y un secreto de aplicación.

Nota:

Se recomienda proteger los servicios de back-end mediante certificados, en lugar de claves secretas.

Método

Para usar la entidad de servicio y un identificador de aplicación para el análisis insertado, siga estos pasos. En las secciones subsiguientes se describen estos pasos con detalle.

  1. Cree una aplicación de Microsoft Entra.

    1. Cree un secreto para la aplicación de Microsoft Entra.
    2. Obtenga el identificador de aplicación y el secreto de aplicación de la aplicación.

    Nota

    Estos pasos se describen en el paso 1. Para obtener más información sobre cómo crear una aplicación de Microsoft Entra, consulte Creación de una aplicación de Microsoft Entra.

  2. Cree un grupo de seguridad Microsoft Entra.

  3. Habilite la configuración de administración del servicio Power BI.

  4. Agregue la entidad de servicio a su área de trabajo.

  5. Inserte el contenido.

Importante

Una aplicación de Microsoft Entra no requiere que configure ningún permiso delegado ni permisos de aplicación en Azure Portal cuando se haya creado para una entidad de servicio. Al crear una aplicación de Microsoft Entra para que una entidad de servicio acceda a la API de REST de Power BI, se recomienda evitar agregar permisos. Nunca se usan y pueden provocar errores difíciles de solucionar.

Paso 1: creación de una aplicación de Microsoft Entra

Cree una aplicación de Microsoft Entra mediante uno de estos métodos:

Creación de una aplicación de Microsoft Entra en Azure Portal

  1. Inicie sesión en Azure Portal.

  2. Busque y seleccione Registros de aplicaciones.

    Screenshot of the Azure portal, with app registration in the search box. That box and the App registrations icon are highlighted.

  3. Seleccione Nuevo registro.

    Screenshot of the App registrations page in the Azure portal. New registration is highlighted.

  4. Rellene la información necesaria:

    • Nombre: escriba un nombre para la aplicación.
    • Tipos de cuenta admitidos: seleccione los tipos de cuenta admitidos.
    • (Opcional) URI de redirección: escriba un URI si es necesario.
  5. Seleccione Registrar.

  6. Después del registro de la aplicación, el identificador de la aplicación está disponible en la pestaña Información general. Copie y guarde el identificador de aplicación para usarlo más adelante.

    Screenshot of the Overview page of the new app. The Application ID is indecipherable and is highlighted.

  7. Seleccione Certificados y secretos.

    Screenshot of the Overview page of the new app. On the navigation pane, Certificates & secrets is highlighted.

  8. Seleccione Nuevo secreto de cliente.

    Screenshot that shows part of the Certificates & secrets page for the app. Under Client secrets, the New client secret button is highlighted.

  9. En la ventana Agregar un secreto de cliente, escriba una descripción, especifique cuándo desea que expire el secreto de cliente y elija Agregar.

  10. Copie y guarde el valor del secreto de cliente.

    Screenshot of the Certificates & secrets page for the app. Under Client secrets, a new secret is visible. Its indecipherable value is highlighted.

    Nota:

    Después de salir de esta ventana, se oculta el valor del secreto de cliente y no se puede ver ni copiar de nuevo.

Cree una aplicación de Microsoft Entra con PowerShell

El siguiente script de PowerShell de ejemplo crea una nueva aplicación de Microsoft Entra y una entidad de servicio. Antes de ejecutar este script:

Una vez que se ejecute el script, anote la siguiente información de la salida del script:

  • Identificador de cliente de la nueva aplicación
  • Identificador de objeto de la nueva entidad de servicio
  • Valor del secreto de la entidad de servicio
# Sign in as a user who's allowed to create an app.
Connect-MgGraph -Scopes "Application.ReadWrite.All" 

# Create a new Azure AD web application.
$web = @{
    RedirectUris = "https://localhost:44322"
    HomePageUrl = "https://localhost:44322"
}
$params = @{
    DisplayName = "myAzureADApp"
    Web = $($web)
}
$app = New-MgApplication @params
Write-Host "Client ID of new app: " $($app.AppId)

# Create a service principal.
$ServicePrincipalID=@{
  "AppId" = $($app.AppId)
  }
$sp = New-MgServicePrincipal -BodyParameter $($ServicePrincipalId)
Write-Host "Object ID of new service principal: " $($sp.Id)

# Create a key for the service principal.
$credential = Add-MgServicePrincipalPassword -ServicePrincipalId $($sp.Id)
Write-Host "Credential of new service principal: " $($credential.SecretText)

Paso 2: creación de un grupo de seguridad de Microsoft Entra

La entidad de servicio no tiene acceso al contenido ni a las API de Power BI. Para conceder acceso a la entidad de servicio, cree un grupo de seguridad en Microsoft Entra ID. A continuación, agregue a ese grupo de seguridad la entidad de servicio que creó.

Nota

Si desea habilitar el acceso de la entidad de servicio para toda la organización, omita este paso.

Hay dos maneras de crear un grupo de seguridad de Microsoft Entra:

Creación de un grupo de seguridad manualmente

Para crear un grupo de seguridad de Azure manualmente, siga las instrucciones que se proporcionan en Creación de un grupo básico y adición de miembros.

Creación de un grupo de seguridad mediante PowerShell

El siguiente script de ejemplo crea un nuevo grupo de seguridad. También agrega al nuevo grupo de seguridad la entidad de servicio que creó anteriormente.

  • Antes de ejecutar el script, reemplace <app-client-ID> por el identificador de cliente que registró anteriormente para la nueva aplicación.
  • Después de ejecutar el script, anote el identificador de objeto del nuevo grupo de seguridad, que puede encontrar en la salida del script.
# Sign in as an admin.
Connect-MgGraph -Scopes "Application.ReadWrite.All"

# Get the service principal that you created earlier.
$servicePrincipal = Get-MgServicePrincipal -Filter "AppId eq '<app-client-ID>'"

# Create an Azure AD security group.
$group = New-MgGroup -DisplayName "securitygroup1" -SecurityEnabled -MailEnabled:$False -MailNickName "notSet"
Write-Host "Object ID of new security group: " $($group.Id)

# Add the service principal to the group.
New-MgGroupMember -GroupId $($group.Id) -DirectoryObjectId $($servicePrincipal.Id)

Paso 3: Habilitación de la configuración de administración del servicio Power BI

Para que una aplicación de Microsoft Entra pueda acceder al contenido y a las API de Power BI, un administrador de Power BI debe habilitar la siguiente configuración:

  • Insertar contenido en aplicaciones
  • Concesión de permisos a las entidades de servicio para utilizar las API de Power BI

En el portal de administración de Power BI, vaya a Configuración del inquilino y desplácese hacia abajo hasta Configuración de desarrollador.

  • Habilite Insertar contenido en aplicaciones para toda la organización o para el grupo de seguridad específico que creó en Microsoft Entra ID.

    Screenshot of the Developer settings in the Tenant settings section of the Admin portal. The option for embedding content in apps is turned on.

  • Habilite Concesión de permisos a las entidades de servicio para utilizar las API de Power BI para toda la organización o para el grupo de seguridad específico que creó en Microsoft Entra ID.

    Screenshot of the Developer settings section. The option for allowing service principals to use Power BI APIs is turned on for one security group.

    Importante

    Las entidades de servicio tienen acceso a cualquier configuración de inquilino para la que estén habilitadas. En función de la configuración de administración, esto incluye grupos de seguridad específicos o toda la organización.

    Para restringir el acceso de la entidad de servicio a una configuración de inquilino específica, permita el acceso únicamente a grupos de seguridad específicos. También puede crear un grupo de seguridad dedicado para entidades de servicio y excluirlo de la configuración de inquilino que desee.

Paso 4: Adición de la entidad de servicio al área de trabajo

La aplicación de Microsoft Entra puede acceder a los informes, paneles y modelos semánticos de Power BI cuando tiene acceso al área de trabajo de Power BI. Para proporcionar ese acceso, agregue la entidad de servicio de la aplicación o su grupo de seguridad al área de trabajo como miembro o administrador.

Hay tres maneras de agregar una entidad de servicio o su grupo de seguridad al área de trabajo:

Adición manual de una entidad de servicio o un grupo de seguridad

  1. En el servicio Power BI, desplácese hasta el área de trabajo para la que quiere habilitar el acceso. En su menú Más, seleccione Acceso al área de trabajo.

    Screenshot that shows the expanded More menu for a workspace. On that menu, Workspace access is highlighted.

  2. En el panel Acceso, en Agregar administradores, miembros o colaboradores, agregue uno de los siguientes datos:

    • La entidad de servicio. El nombre de la entidad de servicio es el Nombre para mostrar de la aplicación de Microsoft Entra, tal y como aparece en la pestaña Información general de la aplicación.
    • El grupo de seguridad en el que se incluye la entidad de servicio.
  3. En el menú desplegable, seleccione Miembro o Administrador.

  4. Seleccione Agregar.

Adición de una entidad de servicio o un grupo de seguridad mediante PowerShell

En las secciones siguientes se proporcionan scripts de PowerShell de ejemplo para agregar una entidad de servicio y un grupo de seguridad a un área de trabajo de Power BI como miembro.

Incorporación de una entidad de servicio como miembro de un área de trabajo mediante PowerShell

El siguiente script agrega una entidad de servicio como miembro del área de trabajo. Antes de ejecutar el script:

  • Reemplace <service-principal-object-ID> por el identificador de objeto que registró anteriormente para la nueva entidad de servicio.
  • Reemplace <workspace-name> por el nombre del área de trabajo a la que quiere conceder acceso a la entidad de servicio.
# Sign in to Power BI.
Login-PowerBI

# Set up the service principal ID.
$SPObjectID = "<service-principal-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the service principal to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType App -Identifier $($SPObjectID)

Incorporación de un grupo de seguridad como miembro de un área de trabajo mediante PowerShell

El siguiente script agrega un grupo de seguridad como miembro del área de trabajo. Antes de ejecutar el script:

  • Reemplace <security-group-object-ID> por el identificador de objeto que registró anteriormente para el nuevo grupo de seguridad.
  • Reemplace <workspace-name> por el nombre del área de trabajo a la que quiere conceder acceso al grupo de seguridad.
# Sign in to Power BI.
Login-PowerBI

# Set up the security group object ID.
$SGObjectID = "<security-group-object-ID>"

# Get the workspace.
$pbiWorkspace = Get-PowerBIWorkspace -Filter "name eq '<workspace-name>'"

# Add the security group to the workspace.
Add-PowerBIWorkspaceUser -Id $($pbiWorkspace.Id) -AccessRight Member -PrincipalType Group -Identifier $($SGObjectID)

Paso 5: Inserción del contenido

Puede insertar el contenido en una aplicación de ejemplo o en una propia.

Una vez insertado el contenido, está listo para pasar a producción.

Nota

Para proteger el contenido mediante un certificado, siga los pasos descritos en Inserción de contenido de Power BI con entidades de servicio y un certificado.

Consideraciones y limitaciones

  • Cuando se usa la entidad de servicio, no se admite Mi área de trabajo.
  • Para pasar a producción, se necesita una capacidad.
  • No se puede iniciar sesión en el portal de Power BI con la entidad de servicio.
  • Se necesitan derechos de administrador de Power BI para habilitar la entidad de servicio en la configuración de desarrollador en el portal de administración de Power BI.
  • Las aplicaciones de inserción para la organización no pueden usar la entidad de servicio.
  • No se admite la administración de flujos de datos.
  • La entidad de servicio solo admite algunas API de administración de solo lectura. Para habilitar la compatibilidad de la entidad de servicio con las API de administración de solo lectura, debe habilitar la configuración de administración del servicio Power BI en su inquilino. Para más información, vea Habilitación de la autenticación de entidad de servicio para las API de administración de solo lectura.
  • Al usar una entidad de servicio con un origen de datos de Azure Analysis Services, la propia entidad de servicio debe tener permisos de instancia de Azure Analysis Services. El uso de un grupo de seguridad que contiene la entidad de servicio para este propósito no funciona.