適用於:✅供您的客戶使用的 Power BI 嵌入式分析(App-owns-data)
本文說明如何將使用 RLS (資料列層級安全性) 的分頁報表內嵌到您的 app owns data 應用程式中。
附註
本文僅適用於應用程式擁有資料的客戶。
若要使用 RLS 處理編頁報表:
- 設定環境以篩選報表
- 在報表或查詢層級篩選資料
- 使用嵌入權杖傳遞已設定的參數
必要條件
本文假設您知道如何內嵌 Power BI 編頁報表。 其中說明如何產生內嵌權杖,讓報表只顯示使用者有權存取的內容。
編頁報表是使用 SQL Server Reporting Services 引擎建立,而不是 Power BI (Analysis Services) 引擎,因此 RLS 篩選是在 Power BI Report Builder 中設定。
設定環境
若要將資料列層級安全性套用至 Power BI 編頁報表,請使用內建欄位 UserID 來指派參數。 此參數可用來篩選或查詢您的資料。
然後,將 UserID 傳遞至內嵌權杖 - 產生權杖 API 以取得內嵌權杖。
在報表或查詢層級使用 UserID 作為篩選
您可以使用 UserID 作為篩選條件或用於查詢資料來源。
篩選資料
在 [語意模型屬性] 視窗中,從左窗格中選取 [篩選]。
從Expression下拉式選單中,選取您要用於篩選資料的參數。
選取 值 函數按鈕。
在 [運算式] 視窗中,從 [類別] 清單中選取 [內建欄位]。
從 [項目] 清單中選取 [UserID],然後選取 [確定]。
在 [語意模型屬性] 視窗中,確認運算式是「您選取的參數 = UserID」,然後選取 [確定]。
使用查詢
在 [語意模型屬性] 視窗中,從左側瀏覽窗格中選取 [參數],然後選取 [新增]。
在 [參數名稱] 欄位中輸入 @UserID,然後在 [參數值] 中新增 [&UserID]。
從左窗格中選取 [查詢],在 [查詢] 中新增 UserID 參數作為查詢的一部分,然後選取 [確定]。
附註
在下方的螢幕擷取畫面中,以 color 參數作為範例,WHERE FinalTable.Color = @UserID)。 必要時,您可以建立更複雜的查詢。
產生內嵌權杖
為客戶內嵌編頁報表時,使用 Reports GenerateTokenInGroup API 取得內嵌權杖。 此權杖也可以用來從編頁報表篩選出一些資料。
您只能透過服務主體產生權杖。 您無法以主使用者身分產生權杖。 服務主體必須至少要有 Power BI 服務中工作區的成員權限。 (如果服務主體是參與者或檢視人員,則無法產生權杖)。
若要產生權杖,請使用您要顯示的資訊來指派 username 欄位。 例如,在具有色彩參數的分頁報表中,如果您在 username 欄位中輸入 green,內嵌權杖會將內嵌資料限制為只有色彩資料行中的值為 green 的資料。
{
"reports": [
{
"id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
}
],
"identities": [
{
"username": "green",
"reports": [
"8d57615e-cfed-4d60-bd21-7dc05727193c"
]
}
]
}
附註
如果您在未指定 user-id 的情況下產生內嵌權杖,則會使用服務主體的 object-id。
考量與限制
- 為客戶內嵌的分頁報表不支援主使用者。 主使用者可支援貴組織的內嵌。
- 服務主體必須至少具備成員 (而非檢視人員或參與者) 的工作區權限。