วิธีการ: เปิดใช้งานการรักษาความปลอดภัยระดับแถวใน 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 Embedded
- สิทธิ์ของผู้ดูแลระบบส่วนกลางของผู้เช่า
- ผู้ดูแลระบบส่วนกลางของผู้เช่า ที่มีบทบาทผู้ดูแลระบบในพื้นที่ทำงานบริการของ 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) เราจำเป็นต้องสร้างบทบาทของเรา ใน Ribbon หน้าแรก ให้เลือก จัดการบทบาท
ใต้ บทบาท เลือก สร้าง ตั้งชื่อบทบาท สถานการณ์ตัวอย่างที่ใช้ pagesuser
จากคอลัมน์ ตาราง ให้เลือก ผู้ติดต่อ
เติมกล่องข้อความทางด้านขวาด้วยนิพจน์ DAX:
[User Name] = username()
หมายเหตุ
ฟิลด์
[Username]
อยู่ในตารางผู้ติดต่อและไม่ใช่ชื่อผู้ใช้จริง ซึ่งอ้างอิงตาราง adx_externalidentity ที่ใช้โดย Power Pages มี GUID ที่ส่งไปยัง Power BI ในฟังก์ชัน username()เลือก บันทึก จากนั้นบันทึกไฟล์ของคุณ
จาก Ribbon หน้าแรก ให้เลือก เผยแพร่
เลือกพื้นที่ทำงานขององค์กรที่คุณเป็นเจ้าของและจะใช้โดยการรวม 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 ทางด้านซ้าย ภายใต้ Power Pages (พื้นที่ทำงาน) ชื่อของเว็บไซต์ Power Pages มีดรอปดาวน์ไปที่เว็บเพจ ภายในส่วนนั้น คุณจะเห็นไฟล์ .css, ไฟล์ .js และสำเนา HTML ตรวจสอบให้แน่ใจว่าคุณอยู่ในไฟล์สำเนา HTML
เลือก CTRL + F แล้วค้นหา
{%
เพื่อให้เราสามารถระบุโค้ดที่มีการอ้างอิงไปยังแดชบอร์ดหรือรายงาน Power BI ได้อย่างรวดเร็ว{%
ระบุการเปิดแท็ก ซึ่งสร้างตรรกะสำหรับภาษา Liquid Liquid เป็นตัวเชื่อมระหว่าง Dataverse กับสิ่งที่ผู้ใช้โต้ตอบกับเว็บไซต์ เมื่อเราใช้โปรแกรมแก้ไขสตูดิโอเพื่อฝังส่วนประกอบ ส่วนของโค้ด Liquid จะถูกสร้างขึ้นโดยอัตโนมัติในโค้ดต้นฉบับของเว็บเพจ ข้อมูลเพิ่มเติมในแท็ก Liquid ของ 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 ไปยังเว็บเพจในพอร์ทัล