Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:✅ Power BI beágyazott elemzés ügyfelei számára (App-owns-data)
Ez a cikk bemutatja, hogyan ágyazhat be RLS-t használó Power BI-tartalmakat egy szabványos Power BI-alkalmazásba, amely rendelkezik adatalkalmazással.
Előfeltételek
Az RLS beállításának részletes ismertetését a Sorszintű biztonság (RLS) és a Power BI között találja.
Az RLS-szerepkörök meghatározásakor ne feledje, hogy a használt DAX-kifejezés határozza meg, hogy az RLS-modell statikus vagy dinamikus-e.
Mikor érdemes statikus és dinamikus biztonságot használni?
A statikus biztonság rögzített értéket használ a DAX-szűrőben az egyes szerepkörök definiálásához. Egyszerűen implementálható, de nehéz karbantartani, ha sok felhasználó vagy szervezet vesz részt.
A statikus biztonság olyan ISV-k esetében működik a legjobban, amelyek egy vagy néhány nagy ügyfelet szolgálnak ki, ahol minden részlegnek különböző adatokhoz kell hozzáférnie.
A dinamikus biztonság DAX-függvényt (username() vagy userprincipalname()) használ a szerepkörök definiálásához. A dinamikus biztonság nagyobb rugalmasságot biztosít, és lehetővé teszi, hogy kevesebb szerepkörrel és kevesebb karbantartással kezelje az adatokat.
Statikus biztonság
Statikus szerepkörökkel a beágyazási jogkivonat létrehozásakor átadja a szerepkört a Power BI-nak, és a felhasználó ennek a szerepkörnek megfelelően látja az adatokat. Statikus biztonsági szerepkörök létrehozásához adjon meg egy rögzített értéket a DAX-szűrőben.
Megadhatja például az USA keleti régiójának szerepét,[Region] = "East"
Tegyük fel, hogy john@contoso.com az alkalmazás felhasználója. Hozzáférést szeretne adni Johnnak az keleti USA szerepkör adataihoz. Jelentés john@contoso.combeágyazásához hozzon létre egy beágyazási jogkivonatot az USA keleti régiója szerepkörrel. Az eredményként kapott adatok szűrése a következőre [Region] = "East"történik: .
Feljegyzés
A beágyazási jogkivonat létrehozásakor meg kell adnia egy felhasználónevet, de a felhasználónév bármilyen karakterlánc lehet. A statikus szerepkörök rögzített értékkel rendelkeznek, amely nem függ a felhasználónévtől, ezért ha az ISV meghatározza a felhasználó szerepkörét, és átadja azokat a beágyazási jogkivonatnak, az adatok az adott szerepkör alapján lesznek szűrve, függetlenül attól, hogy milyen felhasználónevet adott át.
Dinamikus biztonság
A dinamikus biztonság a DAX függvénnyel (username() vagy userprincipalname()) határozza meg a szerepkört.
A felhasználó adatforgatókönyvében az RLS-modell automatikusan szűri az adatokat az adott felhasználó szerepkörei alapján.
Ha az alkalmazás rendelkezik adatokkal, a Power BI nem ismeri az ISV ügyfeleinek felhasználóneveit, így a username() függvény használatával dinamikusan szűrheti az adatokat.
Hozzon létre egy szerepkört a Power BI Desktopban a felhasználónév() függvénnyel. Létrehozhat például egy CountryDynamic nevű szerepkört, és definiálhatja azt[CountryRegionCode] = username()
Tegyük fel, hogy hozzáférést szeretne adni a felhasználónak jane@contoso.comfranciaországi adatokhoz. Amikor beágyazási jogkivonatot hoz létre jane@contoso.com, a France karakterláncot adja át felhasználónévként a CountryDynamic szerepkörben. Az adatok szűrése a [CountryRegionCode] = Franciaország szerint történik.
{
"accessLevel": "View",
"identities": [
{
"username": "France",
"roles": [ "CountryDynamic"],
"datasets": [ "fe0a1aeb-f6a4-4b27-a2d3-b5df3bb28bdc" ]
}
]
}
Ha dinamikus biztonságot használ ebben a forgatókönyvben, csak egy szerepkörre van szüksége az összes régióhoz. A rendszer a régió nevét használja tényleges identitásként.
Beágyazási token létrehozása
Ha készen áll a jelentés alkalmazásba való beágyazására, létre kell hoznia egy beágyazási jogkivonatot. Ha tokent szeretne létrehozni a Beágyazási jogkivonat API használatával, adja át az alábbi információkat az API-nak.
- felhasználónév (kötelező) – Ha a szerepkörök dinamikusak, a rendszer a felhasználónév sztringet használja szűrőként. Statikus szerepkörök esetén a felhasználónév nincs hatással az RLS-re, és bármilyen sztring is lehet. Csak egyetlen felhasználónév szerepelhet a listában.
- szerepkörök (kötelező) – A sorszintű biztonsági szabályok alkalmazásakor használt szerepkör(ek). Ha több szerepkört is átad, azokat sztringtömbként kell megadni.
- adatkészlet (kötelező) – A beágyazandó elemre vonatkozó adatkészlet.
Most már beágyazhatja a jelentést az alkalmazásba. A jelentés az alkalmazott RLS szerint szűri az adatokat.
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Defines the user identity and roles.
var rlsIdentity = new EffectiveIdentity(
username: "France",
roles: new List<string>{ "CountryDynamic" },
datasets: datasetIds.Select(id => id.ToString()).ToList());
);
// Create a request for getting an embed token for the rls identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { rlsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Szempontok és korlátozások
- A beállítástól függően előfordulhat, hogy több lépést is meg kell tennie, mielőtt beágyazási jogkivonatot hoz létre. A különböző forgatókönyvekről további információt a biztonsági funkciókat használó jelentések beágyazása című témakörben talál.
- A beágyazási jogkivonatot létrehozó felhasználónak tagnak vagy rendszergazdának kell lennie mindkét munkaterületen (az adathalmaz-munkaterületen és a jelentés-munkaterületen).
- A beágyazási jogkivonat létrehozásakor meg kell adnia egy felhasználónevet és egy szerepkört. Ha nem, az alábbi események egyike következik be attól függően, hogy a jogkivonatot szolgáltatásnév vagy főfelhasználó hozza létre:
- Szolgáltatásnév azonosító esetén a token létrehozása meghiúsul.
- A főfelhasználók esetében a jogkivonat létrehozása sikeres, de az adatok nem lesznek szűrve (az összes adat vissza lesz adva).
Kapcsolódó tartalom
További kérdések? Próbálja ki a Power BI-közösség.