Інструкція: увімкнення захисту на рівні рядка в Power BI для Power Pages
Так само, як Power Pages є зручним інструментом для швидкого розгортання Microsoft Dataverse для широкого загалу у формі вебсайту, Power BI є зручним інструментом для відтворення витончених графічних відображень на основі даних. Привабливість Power Platform полягає в можливості поєднання цих двох інструментів. Раніше, щоб відтворити звіт Power BI на вебсторінці, адміністратори повинні були опублікувати звіт в Інтернеті та вбудувати його в iFrame. Навіть у разі застосування Дозволів щодо сторінок для блокування сторінки зі звітом, якщо особа мала посилання, яке використовувалося для вбудовування звіту, будь-хто досі міг отримати доступ до звіту за межами вебсайту.
Функцію Публікація в мережі призначено для того, щоб будь-який користувач в Інтернеті міг використовувати дані та навіть повторно надавати спільний доступ до звіту.
Попередження
У разі використання функції Публікація в мережі будь-який користувач в Інтернеті може переглядати опублікований вами звіт або візуалізацію. Для перегляду не потрібна автентифікація. Це передбачає перегляд даних на рівні докладної інформації, зібраної у звіті. Перш ніж опублікувати звіт, переконайтеся, що для вас немає проблеми в тому, щоб надати загальний доступ до даних і візуалізацій. Не публікуйте персональні дані або конфіденційну інформацію. У разі сумнівів перед публікацією перевірте політику організації.
Завдяки Power BI Embedded можна контекстно надавати компоненти Power BI користувачам, передавати автоматичні фільтри за допомогою параметра фільтра та вмикати функції безпеки на рівні рядка, щоб організація могла по-справжньому захищати дані, видимі для користувачів, і відображати тільки ті дані, які вони мають право бачити.
Нотатка
Безпека на рівня рядка підтримується лише для Power BI Embedded.
вимоги
- Клієнт із розгорнутими середовищем Microsoft Dataverse і вебсайтом Power Pages.
- Веб-сторінка для вбудовування звіту Power BI або приладної дошки.
- Відповідні бізнес-дані, збережені в Dataverse.
- Power BI Desktop.
- Ємність для публікації Power BI вбудованого контенту.
- Права глобального адміністратора клієнта.
- Глобальний адміністратор клієнта з роллю адміністратора в робочій області служби Power BI.
- Організація, а не особиста робоча область Power BI.
- Реєстрація/аутентифікація включена на сайті.
Сценарій
Ви працюєте в студії фітнесу та використовуєте Dataverse, щоб відстежувати групові заняття і фітнесу та їх відвідування. Інструктори з фітнесу відсутні у вашому клієнта, оскільки вважаються підрядниками. Ці інструктори з фітнесу повинні використовувати ваш вебсайт, щоб увійти в систему й переглянути журнал проведених тренувань, майбутній розклад і відвідування учасників. Вони повинні бачити лише тренування, які провели вони самі. а не заняття інших тренерів.
Інструктори представлено записами типу Контактна особа в Dataverse. Вони отримують доступ до вебсайту Power Pages відповідно до свого запису типу Контактна особа. Джерелом даних, які вони мають переглядати на вебсайті, є настроювана таблиця Заняття. Таблиця «Заняття» має зв’язок N*:1 з контактною особою, оскільки у формі «Заняття» є поле підстановки з іменем Інструктор, призначене для таблиці «Контактні особи».
Щоб захист на рівні рядка працював для користувачів (контактних осіб) Power Pages, має існувати прямий зв’язок між Контактною особою та таблицею, за якою складається звіт. Нижче наведено приклад моделі даних цього сценарію.
Налаштування звіту або приладної дошки Power BI
Відкрийте звіт або приладну дошку Power BI у Power BI Desktop.
Щоб використовувати двонаправлене фільтрування, потрібно змінити зв’язок між Контактною особою та таблицею (Заняття в цьому сценарії). Для цього виберіть вкладку Модель з лівого краю.
Виберіть рядок, який пов’язує таблицю Контактні особи з таблицею, яка містить дані звіту – у цьому прикладі це vbd_class, оскільки ми складаємо звіт щодо занять.
У вікні Редагувати зв’язок існує два розкривні списки. У верхній частині виберіть таблицю, за якою створюється звіт (vbd_class) і виберіть стовпець з унікальним ідентифікатором запису.
У нижньому розкривному списку виберіть таблицю Контактні особи та стовпець Контактна особа.
Кратність указує: багато до одного (*:1). Установіть для параметра Напрямок перехресного фільтрування значення Обидва.
Виберіть ОК.
Оскільки ми впроваджуємо захист на рівні рядка (RLS), нам потрібно створити свою роль. У верхній частині стрічки Основне виберіть Керувати ролями.
В розділі Ролі виберіть Створити. Введіть ім’я ролі. У прикладі сценарію використовується pagesuser.
У стовпці Таблиці виберіть Контактна особа.
Заповніть текстове поле праворуч за допомогою виразу DAX.
[User Name] = username()
Нотатка
Поле
[Username]
міститься в таблиці контактних осіб і не є фактичним ім’ям користувача. Воно посилається на таблицю adx_externalidentity, яку використовує Power Pages. Воно містить GUID, надісланий до Power BI у функції username().Виберіть Зберегти і збережіть файл.
У стрічці «Основне» виберіть Публікувати.
Виберіть робочу область організації, за яку ви відповідаєте, і яку використовуватиме інтеграція Power Pages . Натисніть Вибрати.
Налаштування інтеграції Power BI
Див. Налаштування інтеграції Power BI, щоб увімкнути ваш вебсайт для інтеграції Power BI.
Вбудовування звіту Power BI
Перейдіть до Power Pages. Знайдіть вебсайт Power Pages, у який необхідно вбудувати звіт, а потім натисніть Редагувати, щоб відкрити студію дизайну Power Pages .
У робочій області Сторінки виберіть вебсторінку, куди потрібно вбудувати звіт.
Додайте розділ до основного тексту вебсторінки.
Виберіть піктограму Power BI, коли з’явиться запит на вибір компонента, який необхідно додати до розділу.
Після того, як компонент заповнить розділ, виберіть у верхньому лівому куті Редагувати Power BI.
Виберіть Тип доступу. Можливі значення:
Вбудовування для ваших клієнтів: Дозволяє ділитися інформацією Power BI із зовнішніми користувачами без Power BI ліцензії чи ідентичності Microsoft Entra .
Вбудувати для своєї організації: використовується Microsoft Entra автентифікація для надання спільного доступу до звіту Power BI , щоб внутрішні користувачі могли його бачити.
Публікувати в мережі: дає змогу будь-кому в Інтернеті мати доступ до звіту та даних.
Увага!
Переконайтеся, що це не конфіденційна інформація!
Додаткові відомості: Публікація в мережі
Виберіть Вбудувати для користувачів.
Виберіть робочу область, що містить звіт або приладну дошку, укажіть тип «Звіт» або «Приладна дошка», а потім виберіть звіт або приладну дошку в останньому розкривному списку. Якщо це звіт, необхідно вказати, яку сторінку потрібно вбудувати.
Щоб переглянути код, вбудований у звіт або приладну дошку, виберіть Редагувати код у верхньому правому куті студії.
Коли з'явиться запит, натисніть Відкрити Visual Studio Code. Ліворуч у розділі PowerPages (Робоча область) ім’я вебсайту Power Pages має розкривне меню для вебсторінки. У цьому розділі відображається CSS-файл, JS-файл і HTML-копія. Переконайтеся, що ви знаходитесь у файлі HTML-копії.
Виберіть CTRL + F і знайдіть
{%
, щоб ми могли швидко визначити код, який містить посилання на звіт або приладну дошку Power BI.{%
вказує на відкриття тега, що створює логіку для мови Liquid. Liquid – це взаємодія між Dataverse і тим, з чим користувачі взаємодіють на вебсайті. Коли ми використовуємо редактор студії для вбудовування компонентів, фрагмент коду liquid автоматично створюється у вихідному коді вебсторінки. Додаткові відомості про тег iquid Power BI див. тут: Тег Liquid Dataverse та Додати звіт Power BI.Повний рядок коду liquid матиме такий вигляд:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000000/ReportSection" %}
Закрийте вкладку Visual Studio Code для вебсайту.
У студії дизайну Power Pages виберіть вбудований компонент Power BI і натисніть Редагувати Power BI.
Прокрутіть униз, щоб установити для параметра Застосувати ролі значення істина/так.
У текстовому полі Ролі введіть ім’я ролі, створеної в Power BI Desktop.
Щоб переглянути зміни, внесені в код, використаний для вбудовування звіту або приладної дошки, знову виберіть Редагувати код у верхньому правому куті студії.
Повний рядок коду liquid тепер матиме такий вигляд:
{% powerbi authentication_type:"powerbiembedded" path:"https://app.powerbi.com/groups/00000000-0000-0000-0000-000000000000/reports/00000000-0000-0000-0000-000000000001/ReportSection" roles:"pagesuser" %}
Закрийте вкладку Visual Studio Code, щоб повернутися до студії дизайну.
Щоб переглянути отриманий вбудований звіт або приладну дошку в браузері, виберіть Синхронізувати у верхньому правому куті, а потім виберіть Попередній перегляд>Робочий стіл.
Щоб протестувати звіт без входу користувача в систему, можна побачити, що застосовано RLS, оскільки під час переходу на вебсайт Power Pages жодні записи не повертаються.
Цей звіт містить початкові дані, оскільки під час його перегляду в Power BI Desktop без застосування RLS, можна побачити, що існує кілька зведених записів, але вони пов’язані із записом контактної особи.
Щоб додатково протестувати звіт, якщо ввійти на вебсайт як користувач із відповідним контактом, який має пов’язані дані, на вебсторінці можна побачити тільки записи, пов’язані з користувачем, який увійшов до системи.
Підсумок
Ви вбудували звіт або приладну дошку Power BI, для яких на вашому вебсайті Power Pages використовується захист на рівні рядка!
Область фільтрів відображається за замовчуванням. Для приховування області фільтрів потрібний JavaScript. Необхідні кроки для описано тут: Додавання звіту або приладної дошки Power BI до вебсторінки на порталі.