在安全的入口網站或網站內嵌報表
使用 Power BI 報告的 [內嵌] 選項,您可以輕鬆且安全地在內部 Web 入口網站中內嵌報告。 這些入口網站可以是雲端式或託管內部部署,例如 SharePoint 2019。 內嵌的報告會透過資料列層級安全性 (RLS) 和 Analysis Services 表格式模型物件層級安全性 (OLS) 來遵守所有項目權限和資料安全性。 其會提供無程式碼內嵌至任何接受 URL 或 iframe 的入口網站。
[內嵌] 選項支援 URL 篩選及 URL 設定。 其可讓您使用幾乎不需要任何程式碼的方式 (只需要基本 HTML 和 JavaScript 知識) 來與入口網站整合。
重要
因為進行中的 Chromium 安全性更新,所以 [內嵌] 選項不再像過去一樣運作,而且可能會要求使用者進行多次驗證。 若要解決此問題,請考慮建立您自己的 Power BI 內嵌解決方案。
如何將 Power BI 報告內嵌到入口網站
在 Power BI 服務中開啟報表。
在 [檔案] 功能表上,選取 [內嵌報告] > [網站或入口網站]。
在出現的 [安全內嵌程式碼] 對話方塊中,選取 [您可以使用此連結來內嵌此內容] 下方的值。 或者,如果您想要在部落格或網站中使用 iframe,則請選取 [可在網站貼上的 HTML] 下方的值。
不論使用者是直接開啟報告 URL,還是開啟入口網站中的內嵌項目,報告存取都需要進行驗證。 如果使用者尚未在其瀏覽器工作階段中登入 Power BI,則會出現下列畫面。 當他們選取 [登入] 時,應該會開啟新的瀏覽器視窗或索引標籤。 若他們並未收到登入提示,請讓他們檢查快顯封鎖程式。
在使用者登入後,會隨時開啟報表以顯示資料並允許進行頁面導覽和篩選設定。 只有具有檢視權限的使用者才能在 Power BI 中查看報告。 也都會套用所有資料列層級安全性 (RLS) 規則。 使用者需要獲得正確的授權。 他們需要 Power BI Pro 或 Premium Per User (PPU) 授權,或者內容需要位於 Power BI Premium 容量的工作區中。 每次使用者開啟新的瀏覽器視窗時,都需要登入。 不過,登入之後,會自動載入其他報告。
當您使用 iframe 時,可能需要編輯「高度」和「寬度」值,使其符合入口網站中的網頁。
<iframe width="1080" height="760" src="https://app.powerbi.com/reportEmbed?reportId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&autoAuth=true" frameborder="0" allowFullScreen="true"></iframe>
授與報表存取權
[內嵌] 選項不會自動允許使用者檢視報表。 您可以在 Power BI 服務中設定檢視權限。
在 Power BI 服務中,您可以與需要存取的使用者共用內嵌報告。 如果您使用 Microsoft 365 群組,則可以將使用者列為工作區成員。
授權
若要檢視內嵌報告,您需要 Power BI Pro 或 Premium Per User (PPU) 授權。 或者,內容需要位於 Power BI Premium 容量 (EM 或 P SKU) 的工作區中。
使用 URL 設定來自訂內嵌體驗
您可以使用內嵌 URL 的輸入設定來自訂使用者體驗。 在提供的 iframe 中,您可以更新 URL 的 src 設定。
屬性 | 說明 |
---|---|
pageName | 您可以使用 pageName 查詢字串參數來設定要開啟的報表頁面。 在 Power BI 服務中檢視報告時,您可在報告 URL 結尾找到此值,如本文稍後所示。 |
URL 篩選 | 您可以在接收自 Power BI UI 的內嵌 URL 中使用 URL 篩選來篩選內嵌內容。 透過這種方式,只需要基本 HTML 與 JavaScript 體驗,就可以建置只需要使用少數程式碼的整合。 |
設定要為內嵌報表開啟的頁面
在 Power BI 服務中檢視報告時,您可以在報表 URL 結尾找到 pageName 值。
請在網頁瀏覽器中開啟 Power BI 服務的報表,然後複製網址列 URL。
https://app.powerbi.com/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/reports/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/ReportSection2
將 pageName 屬性和其值附加至 URL 結尾。
https://app.powerbi.com/reportEmbed?reportId=/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&autoAuth=true&pageName=ReportSection2
使用 URL 篩選來篩選報告內容
您可以使用 URL 篩選來提供不同的報表檢視。 例如,下列 URL 會篩選報告以顯示能源產業的資料。
使用 pageName 與 URL Filters 的組合功能強大。 您可以使用基本 HTML 與 JavaScript 來建置體驗。
例如,以下是一個您可新增至 HTML 頁面的按鈕:
<button class="textLarge" onclick='show("ReportSection", "Energy");' style="display: inline-block;">Show Energy</button>
選取時,按鈕會呼叫函數以使用已更新的 URL 來更新 iframe,而此 URL 包括能源產業篩選。
function show(pageName, filterValue)
{
var newUrl = baseUrl + "&pageName=" + pageName;
if(null != filterValue && "" != filterValue)
{
newUrl += "&$filter=Industries/Industry eq '" + filterValue + "'";
}
//Assumes there's an iFrame on the page with id="iFrame"
var report = document.getElementById("iFrame")
report.src = newUrl;
}
https://app.powerbi.com/reportEmbed?reportId=/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&autoAuth=true&pageName=ReportSection&filter=Industries/Industry eq 'Energy'
您可視需要新增所要的按鈕數目,以建立不需要撰寫太多程式碼的自訂體驗。
考量與限制
安全內嵌案例支援編頁報表,也支援具有 URL 參數的編頁報表。 如需詳細資訊,請參閱針對 Power BI 中的編頁報表以 URL 傳遞報表參數。
安全內嵌選項適用於發佈至 Power BI 服務的報告。
若要裝載安全內嵌的內容,使用者必須使用 HTTPS 作為其最上層頁面。 不支援使用不安全的主機頁面來存取安全內嵌的內容。
使用者只要開啟新的瀏覽器視窗,就需要登入,才能檢視報告。
若要進行驗證,使用者需要啟用彈出視窗。
如果使用者過去成功存取過報告,但現在遇到問題,則應該清除其瀏覽器快取。
登入之後,有些瀏覽器會需要您重新整理頁面,特別是您使用 InPrivate 或無痕模式時。
如果您使用不受支援的瀏覽器版本,則可能會遇到問題。 如需 Power BI 所支援瀏覽器的清單,請參閱 Power BI 支援的瀏覽器。
如果您的網站將 Cross-Origin-Opener-Policy (COOP) 標頭設定為 "same-origin",則您無法登入來檢視內嵌的內容,因為 MSAL 不支援此標頭。 相反地,請選擇 "restrict-properties" (適用於 Chromium 型瀏覽器) 或 "same-origin-allow-popups."或者,如果您無法變更 Cross-Origin-Opener-Policy,則請直接連結至內嵌的 URL,而不是將其內嵌在 iframe 中。
不支援傳統 SharePoint Server,因為其需要 Internet Explorer 第 11 版之前的版本,或啟用相容性檢視模式。
為獲得單一登入體驗,請使用內嵌在 SharePoint Online 中選項,或使用 user-owns-data 內嵌方法來建置自訂整合。
隨著 [內嵌] 選項提供的自動驗證功能無法搭配 Power BI JavaScript API 使用。 從 2.10.4 版開始,PBI 內嵌用戶端 SDK 會封鎖這些功能。 針對 Power BI JavaScript API,請使用 user-owns-data 內嵌方法。
自動驗證功能內嵌於應用程式時無法運作,包括在行動裝置和傳統型應用程式中。
驗證權杖存留期會以您的 Microsoft Entra 設定作為基礎進行控制。 驗證權杖過期時,使用者需要再次登入以取得更新後的驗證權杖。 預設存留期是一個小時,但在您的組織中這段時間可能更短或是更長。 您無法在此案例中自動重新整理權杖。