Автоматический вход в Power BI с помощью кода, чтобы отчет отображался в «Безопасном встроенном коде» - PullRequest
1 голос
/ 10 июня 2019

Проблема:

На нескольких устройствах ios, после нажатия на кнопку «Вход» в iframe (с src в качестве отчета Power BI «Безопасный код для встраивания»), новыйоткрывается окно для входа в Power BI, и после успешного входа окно закрывается. Однако iframe не перезагружается.Ручное вмешательство для перезагрузки страницы требуется для просмотра отчета.Это существует на нескольких устройствах ios (независимо от браузера Chrome или Safari).

Реализация:

У нас есть веб-приложение, использующее аутентификацию Azure AD, вВ этом веб-приложении мы встраиваем отчеты Power BI с помощью «Безопасного встроенного кода» в iframe.

Текущий рабочий процесс:

1) Вход пользователяв веб-приложение ->

2) Iframe (имеющий защищенный код для встраивания) отображается с помощью кнопки Вход ->

3) Пользователь нажимает на кнопку «Вход» в пределах iframe ->

4) На несколько секунд открывается новое окно для входа в Power BI Services ->

5) Это новое окно автоматически закрывается после успешного входа в Power BI Service ->

6) Iframe перезагружается и отображается отчет

Этот процесс работает нормально для устройств Windows и Android.Однако для нескольких устройств ios шаг № 6 (перезагрузка Iframe) не работает.

Мне известно об ограничении «Безопасного встраивания кода» как

Некоторые браузеры требуют обновления страницы после входа, особенно при использовании режимов InPrivate или InCognito.

Подробнее см. Раздел «Ограничения» ссылка .

Требуемая функциональность:

После входа в приложениеперед рендерингом любого iframe должна быть предоставлена ​​ссылка, которая генерирует новое окно и предлагает пользователю войти в Power BI Services.После успешного входа в новом окне сообщение должно быть передано предыдущему окну, что «вход выполнен успешно», и новое окно должно быть закрыто.Как только наше приложение получит это сообщение «вход выполнен успешно», тогда должен быть выполнен iframe.Это поможет нам решить проблему, которая существует в устройствах ios.

Примечание. Мы не хотим использовать подход «Данные, принадлежащие приложению / Данные, принадлежащие пользователю», поскольку эти подходы требуют приобретения выделенной емкости для производства..

Пожалуйста, предложите, если это возможно, и дайте некоторую ссылку на то, как мы могли бы достичь этого.Или предложите, если есть какой-либо другой способ решить эту проблему.

Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 10 июня 2019

Примечание. Мы не хотим использовать подход «Данные, принадлежащие приложению / Данные, принадлежащие пользователю», поскольку эти подходы требуют приобретения выделенной емкости для производства.

Нет, это не правда. Вам понадобятся специальные возможности, если вы используете встроенные токены (например, сгенерированные с GenerateTokenInGroup ). Вы можете встраивать отчеты с токенами AAD и использовать общие ресурсы (см. Свойство tokenType ).

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

...