Устранение неполадок внедренного приложения
В этой статье рассматриваются некоторые распространенные проблемы, которые могут возникнуть при внедрении содержимого из Power BI.
Средства устранения неполадок
Трассировка Fiddler
Fiddler — это бесплатный инструмент из Telerik, который отслеживает трафик HTTP. Трафик с помощью API Power BI можно просмотреть на клиентском компьютере. Это средство может отображать ошибки и другие связанные сведения.
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 и скопируйте его из обзор.
Идентификатор основного объекта
Идентификатор основного объекта, также известный как идентификатор объекта , является уникальным идентификатором объекта главной службы , связанного с приложением Microsoft Entra.
Чтобы получить идентификатор основного объекта, войдите в приложение Microsoft Entra, перейдите на страницу Обзори выберите ссылку приложения в разделе Управляемое приложение в локальном каталоге.
В разделе свойств , скопируйте идентификатор объекта .
Аутентификация
Сбой проверки подлинности с помощью AADSTS70002 или AADSTS50053
(AADSTS70002: ошибка проверки учетных данных. AADSTS50053. Вы пытались выполнить вход слишком много раз с неправильным идентификатором пользователя или паролем)
Если вы используете Прямую проверку подлинности Power BI Embedded и Microsoft Entra, при попытке входа может появиться сообщение, например предыдущее сообщение, так как прямая проверка подлинности не включена.
Вы можете повторно активировать прямую проверку подлинности, используя политику Microsoft Entra , которая распространяется на организацию, или учетную запись службы .
Мы рекомендуем включать эту политику только на уровне каждого приложения.
Чтобы создать эту политику, необходимо быть глобальным администратором каталога, в котором вы создаете и назначаете эту политику. Ниже приведён пример скрипта для создания политики и назначения её СП для этого приложения:
Установите Microsoft Graph PowerShell SDK.
Выполните следующие команды 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 перейдите к Microsoft Entra ID>Пользователи и группы>настройки пользователя.
- Включите пользователи могут предоставить приложениям доступ к данным компании от их имени и сохранить изменения.
- Администратор может предоставить приложениям разрешения — либо для всего клиента, либо для конкретного пользователя.
Ошибка 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
Сообщение | Подробное сообщение | Код ошибки | Возможные причины |
---|---|---|---|
Срок действия токена истёк | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа | 403 | Истек срок действия токена |
СущностьPowerBIНеНайдена | Сбой получения отчета | 404 | |
Недопустимые параметры | Параметр powerbiToken не указан | N/A | |
Не удалось загрузить отчет | Сбой инициализации - не удалось разрешить кластер. | Ошибка 403: доступ запрещён | |
PowerBINotAuthorizedException | Не удалось получить отчёт | 401 | |
Токен истек | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа. Не удалось отобразить визуальный элемент отчета: название визуального элемента | N/A | |
OpenConnectionError | Не удается отобразить изображение. Не удалось отобразить визуальный элемент отчета: название визуального элемента | N/A | Емкость была приостановлена или удалена, когда отчет, связанный с емкостью, был открыт в сеансе. |
КонтейнерИсследований_ОшибкаЗагрузкиМодели_ДеталиПоУмолчанию | Не удалось загрузить схему модели, связанную с этим отчетом. Убедитесь, что у вас есть подключение к серверу и повторите попытку. | N/A |
Типичные ошибки при внедрении для пользователей, не использующих Power BI (с использованием токена внедрения)
Сообщение | Подробное сообщение | Код ошибки | Возможные причины |
---|---|---|---|
Срок действия токена истек | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа | 403 | Истек срок действия токена |
Ошибка загрузки отчёта | Сбой получения отчета | 404 | |
Ошибка загрузки отчета | Сбой получения отчета | 403 | Идентификатор отчета не соответствует токену |
ЗагрузкаОтчетаНеудалась | Не удалось получить отчет | 500 | Предоставленный идентификатор отчета не является идентификатором GUID |
Недопустимые параметры | Параметр powerbiToken не указан | N/A | |
Ошибка загрузки отчета | Ошибка инициализации – не удалось разрешить кластер | 403 | Неправильный тип токена или недопустимый токен |
PowerBINotAuthorizedException | Сбой получения отчета | 401 | Неправильный или несанкционированный идентификатор группы |
Срок действия токена истек | Срок действия маркера доступа истек, повторная отправка с помощью нового маркера доступа. Не удалось отобразить визуализацию отчета с названием: название визуального элемента | N/A | |
OpenConnectionError | Не удается отобразить изображение. Не удалось отобразить визуальный элемент отчета: заголовок визуализации | N/A | Емкость приостановлена или удалена при открытии отчета, связанного с емкостью, в сеансе |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Не удалось загрузить схему модели, связанную с этим отчетом. Убедитесь, что у вас есть подключение к серверу и повторите попытку. | N/A |
Ошибка при получении отчета — ошибка 401 — может разрешиться самостоятельно.
В сценарии пользователь владеет данными, иногда пользователи получают ошибку 401, которая устраняется после того, как они заходят на портал Power BI. При возникновении ошибки 401 добавьте вызов RefreshUser Permissions в приложении, как описано в обновление разрешений пользователя.
Семантические модели
Управление частью данных, которые пользователи могут видеть
Любой пользователь с разрешениями на чтение для семантической модели может видеть всю схему (таблицы, столбцы и меры) и все данные. Нельзя управлять разрешениями просмотра необработанных и агрегированных данных отдельно в одной семантической модели.
Чтобы управлять частью данных, которые пользователи могут просматривать, используйте один из следующих методов:
Фильтрация на уровне строк с помощью Power BI защита на уровне строк (RLS).
OLSбезопасности на уровне объектов.
Разделение данных на разные семантические модели. Например, можно создать семантику модели, которая содержит только агрегированные данные и предоставить пользователям доступ только к этой семантической модели.
Рендеринг содержимого
Чтобы устранить проблемы с отрисовкой в внедренных элементах Power BI (например, отчетах и панелях мониторинга), ознакомьтесь с этим разделом.
Убедитесь, что элемент Power BI загружается в службе Power BI
Чтобы исключить проблемы с вашим приложением или встраиваниями API, убедитесь, что элемент можно просмотреть в службе Power BI (powerbi.com).
Проверьте, что элемент Power BI загружается на площадке для тестирования встроенной аналитики Power BI.
Чтобы исключить проблемы с приложением, убедитесь, что элемент Power BI можно просмотреть на игровой площадке Power BI embedded analytics.
Убедитесь, что срок действия токена доступа не истек
В целях безопасности токены доступа (токен Microsoft Entra или встроенный токен) имеют ограниченное время существования. При необходимости следует постоянно отслеживать маркер доступа и обновлять его. Дополнительные сведения см. в статье Обновление маркера доступа.
Производительность
Для получения наилучшего встраиваемого контента мы рекомендуем придерживаться лучших практик встроенной аналитики Power BI .
Связанное содержимое
часто задаваемые вопросы о Power BI Embedded
Дополнительные вопросы? обратитесь к сообществу Power BI