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 más información sobre cómo crear una aplicación de Azure AD, consulte 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.

    azure app registration

  3. Haga clic en Nuevo registro.

    new registration

  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.

    Screenshot shows where to obtain an Application I D in the Overview tab.

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

    A screenshot that shows the certificates and secrets pane for an app in the Azure portal.

  8. Haga clic en Nuevo secreto de cliente.

    A screenshot that shows the new client secret button in the certificates and secrets pane.

  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.

    A screenshots that shows a blurred out secret value in the certificates and secrets pane.

    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 manualmente un grupo de seguridad de Azure, siga las instrucciones de creación de un grupo básico y adición de miembros.

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 la siguiente configuración:

  • Insertar contenido en aplicaciones
  • Permitir que las entidades de servicio usen las API de Power BI.

Vaya a Configuración del inquilino en el portal de administración y desplácese hacia abajo hasta Configuración del desarrollador.

  • Habilite para insertar contenido en aplicaciones para toda la organización o para el grupo de seguridad específico que creó en Azure AD.

    Screenshot showing the developer settings in the admin options embedding content in apps.

  • Habilite permitir que las entidades de servicio usen el modificador DE API de Power BI para toda la organización o para el grupo de seguridad específico que creó en Azure AD.

    Screenshot showing the developer settings in the admin options in Power B I service.

    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

Para permitir que la aplicación de Azure AD acceda a elementos como informes, paneles y conjuntos de datos en el servicio Power BI, agregue la entidad de entidad de servicio o el grupo de seguridad que incluya la entidad de servicio, 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.

    Screenshot showing the workspace access button in the more menu of a Power BI workspace.

  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