Solución de problemas de una aplicación insertada

En este artículo se examinan algunos problemas comunes que pueden encontrarse al insertar contenido desde Power BI.

Herramientas para la solución de problemas

Seguimiento de Fiddler

Fiddler es una herramienta gratuita de Telerik que supervisa el tráfico HTTP. Puede ver el tráfico con las API de Power BI desde la máquina cliente. Esta herramienta puede mostrar errores y otra información relacionada.

Seguimiento de Fiddler

F12 en el explorador para la depuración del servidor front-end.

F12 inicia la ventana del desarrollador en el explorador. Esta herramienta ofrece la posibilidad de ver el tráfico de red y otra información.

F12 Depuración del explorador

Extracción de detalles del error a partir de la respuesta de Power BI

Este fragmento de código muestra cómo extraer los detalles del error de la excepción de HTTP:

public static string GetExceptionText(this HttpOperationException exc)
{
    var errorText = string.Format("Request: {0}\r\nStatus: {1} ({2})\r\nResponse: {3}",
    exc.Request.Content, exc.Response.StatusCode, (int)exc.Response.StatusCode, exc.Response.Content);
    if (exc.Response.Headers.ContainsKey("RequestId"))
    {
        var requestId = exc.Response.Headers["RequestId"].FirstOrDefault();
        errorText += string.Format("\r\nRequestId: {0}", requestId);
    }

    return errorText;
}

Se recomienda registrar los identificadores de solicitud (y los detalles del error para solucionar el problema). Proporcione el identificador de solicitud cuando entre en contacto con el equipo de soporte técnico de Microsoft.

Registro de la aplicación

Error en el registro de la aplicación

Los mensajes de error de Azure Portal o de la página de registro de aplicaciones de Power BI indican que no hay privilegios suficientes. Para registrar una aplicación, debe ser administrador en el inquilino de Azure AD o los registros de aplicaciones deben estar habilitados para los usuarios que no son administradores.

El servicio Power BI no aparece en Azure Portal al registrar una nueva aplicación

Al menos un usuario debe estar registrado en Power BI. Si no ve Servicio Power BI en la lista de API, significa que no hay usuarios suscritos a Power BI.

¿Cuál es la diferencia entre el identificador de objeto de aplicación y el identificador de objeto de entidad de seguridad?

Al registrar una aplicación de Azure AD, hay dos parámetros denominados identificadores de objetos. En esta sección se explica el propósito de cada parámetro y cómo obtenerlo.

Identificador de objeto de aplicación

El identificador de objeto de aplicación, también conocido como identificador de objeto, es el identificador único del objeto de aplicación de Azure AD.

Para obtener el identificador de objeto de aplicación, vaya a la aplicación de Azure AD y cópielo desde Información general.

Captura de pantalla que muestra el identificador de objeto en la hoja Información general de una aplicación de Azure AD.

Identificador de objeto de entidad de seguridad

El identificador de objeto de entidad de seguridad, también conocido simplemente como identificador de objeto, es el identificador único del objeto de entidad de servicio asociado a la aplicación de Azure AD.

Para obtener el identificador de objeto de entidad de seguridad, vaya a la aplicación de Azure AD y, en Información general, seleccione el vínculo de aplicación en Aplicación administrada en directorio local.

Captura de pantalla que muestra la opción Aplicación administrada en directorio local en la hoja Información general de una aplicación de Azure AD.

En la sección Propiedades, copie el identificador de objeto.

Captura de pantalla que muestra el objeto de entidad de seguridad en la sección Propiedades de la hoja Información general de una aplicación de Azure AD.

API de REST

La llamada a la API devuelve 401

Es posible que se necesite una captura de Fiddler para poder investigar más. El ámbito de permisos requerido pueden faltar en la aplicación registrada en Azure AD. Compruebe que el ámbito necesario se encuentra en el registro de aplicaciones de Azure AD en Azure Portal.

La llamada a la API devuelve 403

Es posible que se necesite una captura de Fiddler para poder investigar más. El error 403 puede deberse a varios motivos.

  • El usuario ha superado la cantidad de tokens de inserción que se pueden generar en una capacidad compartida. Adquiera capacidades de Azure para generar tokens de inserción y asignar el área de trabajo a esa capacidad. Vea Creación de una capacidad de Power BI Embedded en Azure Portal.
  • El token de autenticación de Azure AD ha expirado.
  • El usuario autenticado no es miembro del grupo (área de trabajo).
  • El usuario autenticado no es administrador del grupo (área de trabajo).
  • El usuario autenticado no tiene permisos. Los permisos se pueden actualizar con la API refreshUserPermissions
  • Es posible que el encabezado de la autorización no aparezca correctamente. Asegúrese de que no hay errores tipográficos.

Es posible que el back-end de la aplicación tenga que actualizar el token de autenticación antes de llamar a GenerateToken. Para obtener más información, consulte Actualización del token de acceso.

GET https://wabi-us-north-central-redirect.analysis.windows.net/metadata/cluster HTTP/1.1
Host: wabi-us-north-central-redirect.analysis.windows.net
...
Authorization: Bearer eyJ0eXAiOi...
...

HTTP/1.1 403 Forbidden
...

{"error":{"code":"TokenExpired","message":"Access token has expired, resubmit with a new access token"}}

¿Cómo corregir las excepciones de tiempo de espera al usar las API de importación y exportación?

Cuando se envía una solicitud de API REST de Power BI, es posible que llegue a un clúster que no incluya los datos del inquilino. En tales casos, la redirección de la solicitud puede producir un error debido a un tiempo de espera.

Para corregir la excepción de tiempo de espera, puede volver a enviar la solicitud con el parámetro preferClientRouting establecido en true. Si la solicitud llega al clúster incorrecto, el servicio Power BI devuelve una respuesta HTTP de Redireccionamiento temporal (307) . En tales casos, debe redirigir la solicitud a la dirección nueva especificada en el encabezado de la ubicación HTTPS de respuesta.

Autenticación

Error de autenticación AADSTS90002: No se ha encontrado el inquilino "authorize"

Si recibe mensajes de registro como error: invalid_request, error_description: AADSTS90002: No se ha encontrado el inquilino "authorize", se debe a que ADAL 4.x no admite "https://login.microsoftonline.com/{Tenant}/oauth2/authorize/" como una dirección URL de autoridad.

Para resolver este problema, debe quitar "oauth2/authorize/" del final de la dirección URL de la autoridad, vea Power BI Developer Samples (Ejemplos para desarrolladores de Power BI) como referencia.

Consulte Better Authority validation (Validación de autoridades mejorada) en las notas de la versión de ADAL 4.x.

Error de autenticación AADSTS70002 o AADSTS50053

(AADSTS70002: Error al validar las credenciales. AADSTS50053: Ha intentado iniciar sesión demasiadas veces con un identificador de usuario o una o contraseña incorrectos)

Si usa Power BI Embedded y recurre a la autenticación directa de Azure AD, y recibe mensajes de registro como error:unauthorized_client, error_description:AADSTS70002: Error validating credentials. AADSTS50053: You've tried to sign in too many times with an incorrect User ID or password (error:unauthorized_client,error_description:AADSTS70002: Error al validar las credenciales. AADSTS50053: Ha intentado iniciar sesión demasiadas veces con un identificador de usuario o una o contraseña incorrectos), se debe a que la autenticación directa ha dejado de usarse.

Hay una manera de volver a activar esta opción por medio de una directiva de Azure AD, que se puede limitar al ámbito de la organización o a una entidad de servicio.

Se recomienda que habilite esta directiva solo por aplicación.

Para crear esta directiva, debe ser un administrador global en el directorio donde va a crear y asignar la directiva. Este es un script de ejemplo para crear la directiva y asignarla a la entidad de servicio en esta aplicación:

  1. Instale el módulo de versión preliminar de Azure AD PowerShell.

  2. Ejecute los comandos de PowerShell siguientes línea a línea (asegúrese que la variable $sp no tenga más de una aplicación como resultado).

Connect-AzureAD
$sp = Get-AzureADServicePrincipal -SearchString "Name_Of_Application"
$policy = New-AzureADPolicy -Definition @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}") -DisplayName EnableDirectAuth -Type HomeRealmDiscoveryPolicy -IsOrganizationDefault $false
Add-AzureADServicePrincipalPolicy -Id $sp.ObjectId -RefObjectId $policy.Id 

Después de asignar la directiva, espere aproximadamente 15-20 segundos a que se propague antes de probarla.

Error en la generación del token al proporcionar una identidad efectiva

GenerateToken puede generar un error, con la identidad efectiva proporcionada, por diversas razones.

  • El conjunto de datos no admite la identidad efectiva
  • No se proporcionó el nombre de usuario
  • No se proporcionó el rol
  • No se proporcionó DatasetId
  • El usuario no tiene los permisos correctos

Para comprobar cuál es, pruebe lo siguiente.

  • Ejecute get dataset. ¿Tiene la propiedad IsEffectiveIdentityRequired el valor true?
  • El nombre de usuario es obligatorio en todas las instancias de EffectiveIdentity.
  • Si el valor de IsEffectiveIdentityRolesRequired es true, se requiere el rol.
  • DatasetId es obligatorio en todas las instancias de EffectiveIdentity.
  • En Analysis Services, el maestro tiene que ser un administrador de puerta de enlace.

AADSTS90094: La concesión requiere permiso de administrador

Síntomas:
Cuando un usuario sin derechos administrativos intenta iniciar sesión en una aplicación por primera vez y da su consentimiento, obtiene uno de los errores siguientes:

  • La prueba de consentimiento necesita permiso para acceder a los recursos de la organización que solo un administrador puede conceder. Póngase en contacto con un administrador que conceda permisos en esta aplicación para poder usarla.

  • AADSTS90094: La concesión requiere permiso de administrador.

    Prueba de consentimiento

Un usuario administrador puede iniciar sesión y conceder el consentimiento correctamente.

:
El consentimiento de usuario está deshabilitado en este inquilino.

Existen varias correcciones viables:

Habilitar el consentimiento de usuario en todo el inquilino (todos los usuarios, todas las aplicaciones)

  1. En Azure Portal, vaya a "Azure Active Directory" = > "Usuarios y grupos" = > "Configuración de usuario".

  2. Habilite la opción "Los usuarios pueden permitir que las aplicaciones accedan a los datos de la compañía en su nombre" y guarde los cambios.

    Corrección de la prueba de consentimiento

Conceda permisos a la aplicación por un administrador, ya sea para todo el inquilino o para un usuario específico.

Error CS1061

Descargue Microsoft.IdentityModel.Clients.ActiveDirectory si aparece un error "AuthenticationContext no contiene una definición para AcquireToken y no se encontró ningún elemento AcquireToken accesible que acepte un primer argumento del tipo AuthenticationContext (¿falta una directiva de uso o una referencia de ensamblado?)".

Token de Azure AD para un inquilino diferente (usuario invitado)

Al realizar una inserción para la organización, a fin de permitir que los usuarios invitados de Azure AD accedan al contenido, debe especificar el id. de inquilino en el parámetro authorityUri.

  • Dirección URL para la autenticación en el inquilino de la organización:

    https://login.microsoftonline.com/common/v2.0

  • Dirección URL para la autenticación de un usuario invitado de Azure AD:

    https://login.microsoftonline.com/<tenant ID>

Para buscar el id. de inquilino, puede usar las instrucciones que se indican en Búsqueda del id. de inquilino y del nombre de dominio principal de Microsoft Azure AD.

Para obtener más información, vea Procedimiento: Inicio de sesión de cualquier usuario de Azure Active Directory mediante el patrón de aplicación multiinquilino.

Orígenes de datos

ISV desea contar con otras credenciales para el mismo origen de datos

Un origen de datos puede tener un único conjunto de credenciales para un usuario maestro. Si necesita utilizar otras credenciales, cree más maestros adicionales. A continuación, asigne las distintas credenciales en cada uno de los contextos de usuario maestros e insértelas mediante el token de Azure AD de ese usuario.

Solución de problemas de las aplicaciones insertadas con el objeto IError

Use el objeto IError que devuelve el evento error del SDK de JavaScript para depurar la aplicación y comprender mejor la causa de sus errores.

Después de adquirir el objeto IError, debe consultar la tabla adecuada de errores comunes que se ajusta al tipo de inserción usada. Compare las propiedades de IError con las de la tabla y busque los posibles motivos del error.

Errores habituales al insertar las aplicaciones para usuarios de Power BI

Mensaje Mensaje detallado Código de error Posible motivo:
TokenExpired Expiró el token de acceso, vuelva a realizar el envío con uno nuevo. 403 Token expirado
PowerBIEntityNotFound Error al obtener el informe 404
  • Identificador de informe incorrecto
  • Informe inexistente
  • Parámetros no válidos No se ha especificado el parámetro powerbiToken N/D
  • No se ha proporcionado ningún token de acceso
  • No se ha proporcionado ningún identificador de informe
  • LoadReportFailed No se pudo inicializar: no se pudo resolver el clúster 403
  • Token de acceso incorrecto
  • El tipo de inserción no coincide con el tipo de token.
  • PowerBINotAuthorizedException Error al obtener el informe 401
  • Identificador de grupo incorrecto
  • Grupo no autorizado
  • TokenExpired Expiró el token de acceso, vuelva a realizar el envío con uno nuevo. No se pudo representar un objeto visual de informe denominado: título de objeto visual N/D Token de datos de consulta expirado
    OpenConnectionError No se puede mostrar el objeto visual. No se pudo representar un objeto visual de informe denominado: título de objeto visual N/D Capacidad en pausa o eliminada mientras un informe relacionado con la capacidad estaba abierto en una sesión
    ExplorationContainer_FailedToLoadModel_DefaultDetails No se ha podido cargar el esquema de modelo asociado a este informe. Asegúrese de que tiene una conexión al servidor e inténtelo de nuevo. N/D
  • Capacidad en pausa
  • Capacidad eliminada
  • Errores habituales al insertar para usuarios que no usan Power BI (mediante un token de inserción)

    Mensaje Mensaje detallado Código de error Motivos
    TokenExpired Expiró el token de acceso, vuelva a realizar el envío con uno nuevo. 403 Token expirado
    LoadReportFailed Error al obtener el informe 404
  • Identificador de informe incorrecto
  • Informe inexistente
  • LoadReportFailed Error al obtener el informe 403 El identificador de informe no coincide con el token
    LoadReportFailed Error al obtener el informe 500 El identificador de informe proporcionado no es un GUID
    Parámetros no válidos No se ha especificado el parámetro powerbiToken N/D
  • No se ha proporcionado ningún token de acceso
  • No se ha proporcionado ningún identificador de informe
  • LoadReportFailed No se pudo inicializar: no se pudo resolver el clúster 403 Tipo de token incorrecto, Token incorrecto
    PowerBINotAuthorizedException Error al obtener el informe 401 Identificador de grupo incorrecto o no autorizado
    TokenExpired Expiró el token de acceso, vuelva a realizar el envío con uno nuevo. No se pudo representar un objeto visual de informe denominado: título de objeto visual N/D Token de datos de consulta expirado
    OpenConnectionError No se puede mostrar el objeto visual. No se pudo representar un objeto visual de informe denominado: título de objeto visual N/D Capacidad en pausa o eliminada mientras un informe relacionado con la capacidad estaba abierto en una sesión
    ExplorationContainer_FailedToLoadModel_DefaultDetails No se ha podido cargar el esquema de modelo asociado a este informe. Asegúrese de que tiene una conexión al servidor e inténtelo de nuevo. N/D
  • Capacidad en pausa
  • Capacidad eliminada
  • Conjuntos de datos

    Administración de la parte de los datos que pueden ver los usuarios

    Cualquier usuario con permisos de lectura en un conjunto de datos puede ver todo el esquema (tablas, columnas y medidas) y todos los datos. No es posible controlar por separado los permisos de visualización de los datos sin procesar y agregados del mismo conjunto de datos.

    Para administrar qué parte de los datos pueden ver los usuarios, use uno de estos métodos:

    Representación de contenido

    Para resolver problemas de representación en elementos de Power BI insertados (como informes y paneles), revise esta sección.

    Comprobar que el elemento Power BI se carga en el servicio Power BI

    Para descartar problemas con la aplicación o las API de inserción, compruebe que el elemento se puede ver en el servicio Power BI (powerbi.com).

    Comprobar que el elemento Power BI se carga en el área de análisis insertados de Power BI

    Para descartar problemas con la aplicación, compruebe que el elemento Power BI se puede ver en el área de análisis insertados de Power BI.

    Comprobar que el token de acceso no ha expirado

    Por motivos de seguridad, los tokens de acceso (un token de Azure AD o un token de inserción) tienen una duración limitada. Debe supervisar constantemente el token de acceso y actualizarlo si es necesario. Para obtener más información, consulte Actualización del token de acceso.

    Rendimiento

    Para obtener el mejor rendimiento del contenido insertado, se recomienda seguir los procedimientos recomendados de análisis insertados de Power BI.

    Herramienta de configuración de inserción

    Puede ver la herramienta de configuración de inserción para descargar rápidamente una aplicación de ejemplo. Después, puede comparar su aplicación con la aplicación de ejemplo.

    Requisitos previos

    Compruebe que cumple todos los requisitos previos antes de usar la herramienta de configuración de inserción. Necesita una cuenta de Power BI Pro y una suscripción de Microsoft Azure.

    Problemas comunes

    Estos son algunos de los problemas comunes que pueden surgir al hacer pruebas con la herramienta de configuración de inserción:

    Usar la aplicación de ejemplo de inserción para clientes

    Si está trabajando con la experiencia de inserción para los clientes, guarde el archivo PowerBI-Developer-Samples.zip y descomprímalo. Después, abra la carpeta PowerBI-Developer-Samples-master\App Owns Data y ejecute el archivo PowerBIEmbedded_AppOwnsData.sln.

    Al seleccionar Conceder permisos (el paso Conceder permisos), obtendrá este error:

    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    Para solucionarlo, cierre la ventana emergente, espere unos segundos e inténtelo de nuevo. Es posible que tenga que repetir esta acción varias veces. Un intervalo de tiempo provoca el problema de completar el proceso de registro de la aplicación cuando esta esté disponible para las API externas.

    Aparece este mensaje de error cuando se ejecuta la aplicación de ejemplo:

    Password is empty. Please fill password of Power BI username in web.config.
    

    Este error se produce porque el único valor que no se está insertado en la aplicación de ejemplo es la contraseña de usuario. Abra el archivo Web.config de la solución y rellene el campo pbiPassword con la contraseña del usuario.

    Si recibe el error AADSTS50079: El usuario debe usar autenticación multifactor.

    Debe usar una cuenta de AAD que no tenga MFA habilitado.

    Usar la aplicación de ejemplo de inserción para clientes

    Si está trabajando con la experiencia de inserción para la organización, guarde el archivo PowerBI-Developer-Samples.zip y descomprímalo. Después, abra la carpeta PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app y ejecute el archivo pbi-saas-embed-report.sln.

    Al ejecutar la aplicación de ejemplo de inserción para la organización, obtendrá este error:

    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    Este error se debe a que la dirección URL de redireccionamiento especificada para la aplicación del servidor web es diferente de la dirección URL de la aplicación de ejemplo. Si quiere registrar la aplicación de ejemplo, use https://localhost:13526/ como dirección URL de redireccionamiento.

    Si quiere editar la aplicación registrada, deberá aprender a actualizarla en Azure AD, para que la aplicación pueda proporcionar acceso a las API web.

    Si quiere editar los datos o el perfil de usuario de Power BI, deberá aprender a editar los datos de Power BI.

    Si recibe el error: AADSTS50079: El usuario debe usar autenticación multifactor.

    Debe usar una cuenta de AAD que no tenga MFA habilitado.

    Para más información, consulte Preguntas más frecuentes acerca de Power BI Embedded.

    ¿Tiene más preguntas? Pruebe la comunidad de Power BI

    Si necesita más ayuda, póngase en contacto con el soporte técnico o cree una incidencia de soporte técnico mediante Azure Portal y proporcione los mensajes de error que haya encontrado.

    Pasos siguientes

    Para obtener más información, vea Preguntas frecuentes.

    ¿Tiene más preguntas? Pruebe la comunidad de Power BI