Troubleshoot your embedded application (Устранение неполадок с внедренным приложением)

В этой статье рассматриваются некоторые распространенные проблемы, которые могут возникнуть при внедрении содержимого из Power BI.

Средства диагностики

Трассировка Fiddler.

Fiddler — это бесплатный инструмент от компании Telerik, который отслеживает трафик HTTP. Вы можете увидеть трафик с API Power BI с клиентского компьютера. Это средство может отображать ошибки и другие связанные сведения.

Снимок экрана: окно вывода средства Fiddler, в котором отображается API Power BI HTTP-трафик.

F12 в браузере для отладки внешнего интерфейса

Ключ F12 запускает окно разработчика в браузере. Это средство позволяет просматривать сетевой трафик и просматривать другие ценные сведения.

Снимок экрана: вкладка

Извлечение сведений об ошибке из ответа Power BI

В этом фрагменте кода показано, как извлечь сведения об ошибке из исключения 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;
}

Мы рекомендуем ведения журнала идентификатора запроса (и сведения об ошибке для устранения неполадок). Укажите идентификатор запроса при приближении к поддержке Майкрософт.

Регистрация приложения

Сбой регистрации приложения

Сообщения об ошибках в портал Azure или на странице регистрации приложения Power BI уведомляют вас, если у вас нет достаточных привилегий для регистрации приложения. Чтобы зарегистрировать приложение, необходимо быть администратором в клиенте Microsoft Entra, или регистрация приложений должна быть включена для пользователей, не являющихся администраторами.

служба Power BI не отображается в портал Azure при регистрации нового приложения

Для Power BI необходимо зарегистрироваться по крайней мере один пользователь. Если вы не видите служба Power BI в списке API, пользователь не зарегистрировался для Power BI.

Какова разница между идентификатором объекта приложения и идентификатором основного объекта?

При регистрации приложения Microsoft Entra существует два параметра, которые называются идентификатором объекта. В этом разделе объясняется назначение каждого параметра и его получение.

Идентификатор объекта приложения

Идентификатор объекта приложения, также известный как идентификатор объекта, является уникальным идентификатором объекта приложения Microsoft Entra.

Чтобы получить идентификатор объекта приложения, перейдите к приложению Microsoft Entra и скопируйте его из обзора.

Снимок экрана: окно портал Azure, в котором показан идентификатор объекта в колонке

Идентификатор основного объекта

Идентификатор основного объекта, также известный как идентификатор объекта, является уникальным идентификатором объекта субъекта-службы, связанного с приложением Microsoft Entra.

Чтобы получить идентификатор основного объекта, перейдите к приложению Microsoft Entra и в разделе "Обзор" выберите ссылку приложения в управляемом приложении в локальном каталоге.

Снимок экрана: окно портал Azure, в котором отображается управляемое приложение в локальном каталоге в колонке

Скопируйте идентификатор объекта из раздела "Свойства".

Снимок экрана: окно портал Azure, в котором показан идентификатор основного объекта в разделе свойств в колонке

Проверка подлинности

Authentication failed with AADSTS70002 or AADSTS50053 (При аутентификации произошла ошибка AADSTS70002 или AADSTS50053)

(AADSTS70002. Ошибка проверки учетных данных. AADSTS50053. Вы пытались выполнить вход слишком много раз с неправильным идентификатором пользователя или паролем)

Если вы используете Прямую проверку подлинности Power BI Embedded и Microsoft Entra, при попытке входа может появиться сообщение, например предыдущее сообщение, так как прямая проверка подлинности не включена.

Вы можете включить прямую проверку подлинности с помощью политики Microsoft Entra, которая область в организации или субъекта-службы.

Мы рекомендуем включить эту политику только на основе каждого приложения.

Чтобы создать эту политику, необходимо быть глобальным Администратор istrator для каталога, в котором вы создаете политику и назначаете ее. Ниже приведен пример скрипта для создания политики и назначения его поставщику для этого приложения:

  1. Установите пакет SDK Для Microsoft Graph PowerShell.

  2. Выполните следующие команды PowerShell по строке (убедитесь, что переменная $sp не имеет более одного приложения в результате).

    Connect-MgGraph -Scopes "Directory.Read.All","Policy.ReadWrite.ApplicationConfiguration"
    
    $sp = Get-MgServicePrincipal -Filter "DisplayName eq 'Name_Of_Application'"
    
    $policy = New-MgBetaPolicyActivityBasedTimeoutPolicy -Definition @("{`"AllowCloudPasswordValidation`":true}") `
       -DisplayName EnableDirectAuth -IsOrganizationDefault:$false
    
    $params = @{
       "@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/$policy.Id"
    }
    New-MgBetaServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId $sp.Id `
       -BodyParameter $params
    

После назначения политики дождитесь примерно 15–20 секунд распространения перед тестированием.

Сбой создания маркера при предоставлении эффективного удостоверения

GenerateToken Может завершиться ошибкой с эффективным удостоверением, предоставленным по нескольким причинам:

  • Семантическая модель не поддерживает эффективное удостоверение.
  • Имя пользователя не было предоставлено.
  • Роль не была предоставлена.
  • DatasetId не было предоставлено.
  • У пользователя нет правильных разрешений.

Чтобы определить проблему, выполните следующие действия.

  • Запустите набор данных. Верно ли свойство IsEffectiveIdentityRequired ?
  • Для любого EffectiveIdentityпользователя требуется имя пользователя.
  • Если IsEffectiveIdentityRolesRequired задано значение true, требуется роль.
  • DatasetId требуется для любого EffectiveIdentity.
  • Для служб Analysis Services главный пользователь должен быть администратором шлюза.

AADSTS90094: предоставление требует разрешения администратора

Симптомы

Когда пользователь, отличный от администратора, впервые пытается войти в приложение при предоставлении согласия, то получает одну из следующих ошибок:

  •   ConsentTest needs permission to access resources in your organization that only an admin can grant. Ask an admin to grant permission to this app before you can use it.
    
  •   AADSTS90094: The grant requires admin permission.
    

    Снимок экрана: диалоговое окно входа портал Azure, в котором показана ошибка разрешения на проверку согласия.

Пользователь администратора может войти и предоставить согласие успешно.

Первопричина.

Согласие пользователя отключено для клиента.

Возможны несколько исправлений:

  • Включите согласие пользователя для всего клиента (все пользователи, все приложения):
  1. В портал Azure перейдите к параметрам пользователей и групп> пользователей идентификатора>Microsoft Entra.
  2. Включите пользователям согласие на доступ к корпоративным данным от имени приложений и сохраните изменения.

Снимок экрана портала Azure.

  • Администратор может предоставить приложениям разрешения — либо для всего клиента, либо для конкретного пользователя.

Ошибка CS1061

Скачайте Microsoft.IdentityModel.Clients.ActiveDirectory , если возникает следующая ошибка:

'AuthenticationContext' does not contain a definition for 'AcquireToken' and no accessible 'AcquireToken' accepting a first argument of type 'AuthenticationContext' could be found (are you missing a using directive or an assembly reference?)

Токен Microsoft Entra для другого клиента (гостевого пользователя)

При внедрении для организации, чтобы разрешить гостевым пользователям Microsoft Entra доступ к содержимому, необходимо указать идентификатор клиента в параметреauthorityUri.

  • URL-адрес проверки подлинности в клиенте вашей организации:

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

  • URL-адрес проверки подлинности гостевого пользователя Microsoft Entra:

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

Чтобы найти идентификатор клиента, можно использовать инструкции в разделе "Поиск идентификатора клиента Microsoft Entra" и основного доменного имени.

Дополнительные сведения см. в разделе "Создание мультитенантного приложения".

Источники данных

IsV хочет иметь разные учетные данные для одного источника данных

Источник данных может иметь один набор учетных данных для одного главного пользователя. Если вам нужно использовать разные учетные данные, создайте больше основных пользователей. Затем назначьте разные учетные данные каждому из контекстов основных пользователей и встраивайте их с помощью маркера Microsoft Entra этого пользователя.

Устранение неполадок внедренного приложения с помощью объекта IError

Используйте объект IError, возвращаемый событием ошибки из пакета SDK JavaScript, чтобы отладить приложение и лучше понять причину ошибок.

После получения объекта IError необходимо просмотреть соответствующую таблицу распространенных ошибок, которая соответствует используемому типу внедрения. Сравните свойства IError с теми из них в таблице и найдите возможные причины сбоя.

Типичные ошибки при внедрении для пользователей Power BI

Сообщение Подробное сообщение Код ошибки Возможные причины
TokenExpired Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа 403 Истек срок действия маркера
PowerBIEntityNotFound Сбой получения отчета 404
  • Неправильный идентификатор отчета
  • Отчет не существует
  • Недопустимые параметры Параметр powerbiToken не указан Н/П
  • Маркер доступа не указан
  • Идентификатор отчета не указан
  • LoadReportFailed Не удалось инициализировать кластер. Не удалось разрешить кластер 403
  • Недопустимый маркер доступа
  • Тип внедрения не соответствует типу токена
  • PowerBINotAuthorizedException Сбой получения отчета 401
  • Неправильный идентификатор группы
  • Несанкционированная группа
  • TokenExpired Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа. Не удалось отобразить визуальный элемент отчета: название визуального элемента Н/П
  • Запрос данных
  • Истек срок действия маркера
  • Open Подключение ionError Не удается отобразить визуальный элемент. Не удалось отобразить визуальный элемент отчета: название визуального элемента Н/П Емкость приостановлена или удалена при открытии отчета, связанного с емкостью, в сеансе
    ExplorationContainer_FailedToLoadModel_DefaultDetails Не удалось загрузить схему модели, связанную с этим отчетом. Убедитесь, что у вас есть подключение к серверу и повторите попытку. Н/П
  • Емкость приостановлена
  • Удалена емкость
  • Типичные ошибки при внедрении для пользователей, отличных от Power BI (с помощью маркера внедрения)

    Сообщение Подробное сообщение Код ошибки Причины
    TokenExpired Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа 403 Истек срок действия маркера
    LoadReportFailed Сбой получения отчета 404
  • Неправильный идентификатор отчета
  • Отчет не существует
  • LoadReportFailed Сбой получения отчета 403 Идентификатор отчета не соответствует маркеру
    LoadReportFailed Сбой получения отчета 500 Предоставленный идентификатор отчета не является идентификатором GUID
    Недопустимые параметры Параметр powerbiToken не указан Н/П
  • Маркер доступа не указан
  • Идентификатор отчета не указан
  • LoadReportFailed Не удалось инициализировать кластер. Не удалось разрешить кластер 403 Неправильный тип маркера или недопустимый маркер
    PowerBINotAuthorizedException Сбой получения отчета 401 Неправильный или несанкционированный идентификатор группы
    TokenExpired Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа. Не удалось отобразить визуальный элемент отчета: название визуального элемента Н/П
  • Запрос данных
  • Истек срок действия маркера
  • Open Подключение ionError Не удается отобразить визуальный элемент. Не удалось отобразить визуальный элемент отчета: название визуального элемента Н/П Емкость приостановлена или удалена при открытии отчета, связанного с емкостью, в сеансе
    ExplorationContainer_FailedToLoadModel_DefaultDetails Не удалось загрузить схему модели, связанную с этим отчетом. Убедитесь, что у вас есть подключение к серверу и повторите попытку. Н/П
  • Емкость приостановлена
  • Удалена емкость
  • Сбой получения отчета — ошибка 401 — разрешить себя

    В сценарии с данными пользователь может получить ошибку 401, которая устраняется после доступа к порталу Power BI. При возникновении ошибки 401 добавьте вызов "Разрешения UpdateUser" в приложении, как описано в разделе "Обновление разрешений пользователя".

    Семантические модели

    Управление частью данных, которые пользователи могут видеть

    Любой пользователь с разрешениями на чтение для семантической модели может видеть всю схему (таблицы, столбцы и меры) и все данные. Нельзя управлять разрешениями просмотра необработанных и агрегированных данных отдельно в одной семантической модели.

    Чтобы управлять частью данных, которые пользователи могут просматривать, используйте один из следующих методов:

    • Фильтрация на уровне строк с помощью безопасности уровня строк Power BI (RLS).

    • Безопасность на уровне объекта (OLS).

    • Разделение данных на разные семантические модели. Например, можно создать семантику модели, которая содержит только агрегированные данные и предоставить пользователям доступ только к этой семантической модели.

    Отрисовка содержимого

    Чтобы устранить проблемы с отрисовкой в внедренных элементах Power BI (например, отчетах и панелях мониторинга), ознакомьтесь с этим разделом.

    Убедитесь, что элемент Power BI загружается в служба Power BI

    Чтобы исключить проблемы с приложением или внедренными API, убедитесь, что элемент можно просмотреть в служба Power BI (powerbi.com).

    Убедитесь, что элемент Power BI загружается на игровой площадке встроенной аналитики Power BI

    Чтобы исключить проблемы с приложением, убедитесь, что элемент Power BI можно просмотреть на игровой площадке встроенной аналитики Power BI.

    Убедитесь, что срок действия маркера доступа не истекает

    В целях безопасности маркеры доступа (маркер Microsoft Entra или токен внедрения) имеют ограниченное время существования. При необходимости следует постоянно отслеживать маркер доступа и обновлять его. Дополнительные сведения см. в разделе "Обновление маркера доступа".

    Производительность

    Чтобы получить наиболее подходящее внедренное содержимое, рекомендуется следовать рекомендациям по встроенной аналитике Power BI.

    Средство установки внедрения

    Вы можете быстро скачать пример приложения с помощью средства установки внедрения. Затем можно сравнить приложение с примером.

    Необходимые компоненты

    Убедитесь, что у вас есть все необходимые предварительные требования перед использованием средства установки внедрения. Вам нужна учетная запись Power BI Pro и подписка Microsoft Azure .

    Распространенные проблемы

    Ниже приведены некоторые распространенные проблемы, которые могут возникнуть при тестировании с помощью средства установки внедрения:

    Использование примера приложения Для внедрения для клиентов

    Если вы работаете с интерфейсом внедрения для клиентов , сохраните и распакуйте файл PowerBI-Developer-Samples.zip . Затем откройте папку данных PowerBI-Developer-Samples-master\App Owns Data и запустите файл PowerBIEmbedded_AppOwnsData.sln .

    • При выборе разрешений grant (шаг "Предоставление разрешений ") возникает следующая ошибка:
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    Решение заключается в закрытии всплывающего окна, подождите несколько секунд и повторите попытку. Может потребоваться повторить это действие несколько раз. Интервал времени вызывает проблему от завершения процесса регистрации приложения до того, когда он доступен для внешних API.

    • При запуске примера приложения отображается следующее сообщение об ошибке:
    Password is empty. Please fill password of Power BI username in web.config.
    

    Эта ошибка возникает, так как единственное значение, которое не внедряется в пример приложения, является вашим паролем пользователя. Откройте файл web.config в решении и заполните pbiPassword поле паролем пользователя.

    • Если возникает ошибка:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Необходимо использовать учетную запись Microsoft Entra, которая не включает многофакторную проверку подлинности.

    Using the Embed for your organization sample application (Использование средства внедрения для примера приложения организации)

    Если вы работаете с интерфейсом внедрения для организации , сохраните и распакуйте файл PowerBI-Developer-Samples.zip . Затем откройте папку PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app и запустите файл pbi-saas-embed-report.sln .

    • При запуске примера приложения Внедрения для организации возникает следующая ошибка:
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    Эта ошибка связана с тем, что URL-адрес перенаправления, указанный для приложения веб-сервера, отличается от URL-адреса примера. Если вы хотите зарегистрировать пример приложения, используйте https://localhost:13526/ в качестве URL-адреса перенаправления.

    Если вы хотите изменить зарегистрированное приложение, обновите зарегистрированное приложение Microsoft Entra, чтобы оно предоставило доступ к веб-API.

    Если вы хотите изменить профиль пользователя или данные Power BI, узнайте, как изменить данные Power BI.

    • Если возникает ошибка:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Необходимо использовать учетную запись Microsoft Entra, которая не включает многофакторную проверку подлинности.

    Дополнительные сведения см. в статье "Вопросы и ответы о Power BI Embedded".

    Для получения дополнительной помощи обратитесь в службу поддержки или создайте запрос в службу поддержки через портал Azure и укажите сообщения об ошибках, которые вы столкнулись.

    Есть еще вопросы? Спросите Сообщество Power BI