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 Azure AD tenga acceso a las API y el contenido del servicio Power BI.

Al crear una aplicación de Azure Active Directory (Azure AD), se crea un objeto de entidad de servicio. El objeto de entidad de servicio, también conocido como entidad de servicio, permite que Azure AD autentique su aplicación. Una vez autenticada, la aplicación puede acceder a los recursos del inquilino de Azure AD.

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

  • Certificado
  • 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 el secreto de aplicación.

Nota

Azure AD 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 con análisis insertados, siga estos pasos:

  1. Cree una aplicación de Azure AD.

    1. Cree el secreto de la aplicación de Azure AD.

    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 la creación de una aplicación de Azure AD, consulte el artículo Creación de una aplicación de Azure AD.

  2. Cree de un grupo de seguridad de Azure AD.

  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

Después de habilitar la entidad de servicio para usarla con Power BI, los permisos de AD de la aplicación ya no tendrán efecto. Los permisos de la aplicación se administrarán desde el portal de administración de Power BI.

Paso 1: Creación de una aplicación de Azure AD

Cree una aplicación de Azure AD con uno de estos métodos:

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

  1. Inicie sesión en Microsoft Azure.

  2. Busque Registros de aplicaciones y haga clic en el vínculo Registros de aplicaciones.

    registro de aplicaciones de Azure

  3. Haga clic en Nuevo registro.

    nuevo registro

  4. Rellene la información necesaria:

    • Nombre: escriba un nombre para la aplicación.
    • Tipos de cuenta admitidos: seleccione tipos de cuenta admitidos.
    • (Opcional) URI de redireccionamiento: escriba un URI si es necesario.
  5. Haga clic en Registrar.

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

    Captura de pantalla en la que se muestra dónde obtener un identificador de aplicación en la pestaña Información general.

  7. Haga clic en la pestaña Certificados y secretos.

    Captura de pantalla que muestra el panel Certificados y secretos para una aplicación en Azure Portal.

  8. Haga clic en Nuevo secreto de cliente.

    Captura de pantalla que muestra el botón Nuevo secreto de cliente en el panel Certificados y secretos.

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

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

    Captura de pantalla que muestra un valor de secreto desenfocado en el panel Certificados y secretos.

    Nota

    Después de salir de esta ventana, se ocultará el valor de secreto de cliente y no podrá verlo ni copiarlo de nuevo.

Creación de una aplicación de Azure AD con PowerShell

En esta sección se incluye un script de ejemplo para crear una nueva aplicación de Azure AD con PowerShell.

# The app ID - $app.appid
# The service principal object ID - $sp.objectId
# The app key - $key.value

# Sign in as a user that's allowed to create an app
Connect-AzureAD

# Create a new Azure AD web application
$app = New-AzureADApplication -DisplayName "testApp1" -Homepage "https://localhost:44322" -ReplyUrls "https://localhost:44322"

# Creates a service principal
$sp = New-AzureADServicePrincipal -AppId $app.AppId

# Get the service principal key
$key = New-AzureADServicePrincipalPasswordCredential -ObjectId $sp.ObjectId

Paso 2: Creación de un grupo de seguridad de Azure AD

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 Azure AD y agregue la entidad de servicio que creó a ese grupo de seguridad.

Hay dos maneras de crear un grupo de seguridad de Azure AD:

Creación de un grupo de seguridad manualmente

Para crear un grupo de seguridad de Azure manualmente, siga las instrucciones del artículo Creación de un grupo básico e incorporación de miembros con Azure Active Directory.

Creación de un grupo de seguridad mediante PowerShell

A continuación se muestra un script de ejemplo para crear un nuevo grupo de seguridad y agregar una aplicación a ese grupo de seguridad.

Nota

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

# Required to sign in as admin
Connect-AzureAD

# Create an Azure AD security group
$group = New-AzureADGroup -DisplayName <Group display name> -SecurityEnabled $true -MailEnabled $false -MailNickName notSet

# Add the service principal to the group
Add-AzureADGroupMember -ObjectId $($group.ObjectId) -RefObjectId $($sp.ObjectId)

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

Para que una aplicación de Azure AD pueda acceder al contenido y las API de Power BI, un administrador de Power BI debe habilitar el acceso de entidad de servicio en el portal de administración de Power BI.

Agregue el grupo de seguridad que ha creado en Azure AD a la sección de grupos de seguridad específicos en la Configuración del desarrollador.

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.

Captura de pantalla que muestra la configuración del desarrollador en las opciones de administración del servicio Power BI

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

Para permitir que la aplicación de Azure AD acceda a artefactos como informes, paneles y conjuntos de datos en el servicio Power BI, agregue la instancia de la entidad de servicio, o bien el grupo de seguridad en el que se incluya, como miembro o administrador al área de trabajo.

Nota

En esta sección se proporcionan instrucciones para la interfaz de usuario. También puede agregar una entidad de servicio o un grupo de seguridad a un área de trabajo mediante la API Grupos: agregar usuario de grupo.

  1. Desplácese hasta el área de trabajo para el que desea habilitar el acceso y, en el menú Más, seleccione Acceso al área de trabajo.

    Captura de pantalla que muestra el botón de acceso al área de trabajo en el menú Más de un área de trabajo de Power BI.

  2. En el panel Acceso, agregue uno de los elementos siguientes:

    • La entidad de servicio. El nombre de la entidad de servicio es el Nombre para mostrar de la aplicación de Azure AD, 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.

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

En esta sección se incluye un script de ejemplo para agregar una entidad de servicio como miembro de un área de trabajo mediante PowerShell.

Login-PowerBI

# Service Principal Object ID for the created Service Principal
$SPObjectId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

$pbiWorkspace = Get-PowerBIWorkspace -Name "YourWorkspaceName"

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

En esta sección se incluye un script de ejemplo para agregar un grupo de seguridad como miembro de un área de trabajo mediante PowerShell.

Login-PowerBI

# Security Group Object ID for the created Security Group
$SGObjectId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'

$pbiWorkspace = Get-PowerBIWorkspace -Name "YourWorkspaceName"

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 la solución 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

  • La entidad de servicio solo funciona con áreas de trabajo nuevas.
  • 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 una instancia de Azure Analysis Services. El uso de un grupo de seguridad que contiene la entidad de servicio para este propósito no funciona.

Pasos siguientes