Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
Vzťahuje sa na:✅ Power BI vloženej analýzy pre vašich zákazníkov (údaje vo vlastníctve aplikácie)
Tento článok vysvetľuje, ako vložiť zostavu Power BI, ktorá používa údaje uložené v službe Azure Analysis Services (AAS), do scenára Vloženie obsahu pre zákazníkov . Tento článok je zameraný na nezávislých vývojárov softvéru (ISV), ktorí chcú vložiť zostavu s údajmi AAS bez ohľadu na to, či databáza implementuje zabezpečenie na úrovni riadkov (RLS).
Požiadavky
Potrebujete report so živým pripojením k databáze AAS, s RLS alebo bez neho.
Dynamické zabezpečenie na úrovni riadkov
Ak chcete, aby vaša zostava implementovala dynamické zabezpečenie na úrovni riadkov, použite customeData funkciu . Keďže efektívnu identitu nemôžete prepísať, odporúčame vytvoriť nové roly pomocou funkcie customData. Môžete tiež použiť roly, ktoré majú username funkcie alebo userPrincipalName , ak ich nahradíte funkciou customData.
Ak chcete vytvoriť novú rolu a pridať do roly funkciu, customData postupujte podľa týchto krokov.
Vytvorte rolu na serveri Analysis Services.
V časti Všeobecné zadajte Názov roly a nastavte povolenia databázy iba na čítanie .
V nastaveniach Členstvo pridajte používateľov, ktorí budú volať token na vloženie – Generovať token API. Ak používate objekt služby, ktorý nie je správcom, pridajte ho tiež.
V nastaveniach Filtre riadkov nastavte dotaz DAX pomocou
CUSTOMDATA()funkcie.
Objekt služby
Ak na vloženie zostavy používate objekt služby, uistite sa, že objekt služby je správcom servera alebo členom roly AAS. Ak chcete udeliť povolenia správcu AAS objektu služby, pozrite si tému Pridanie objektu služby do roly správcu servera. Ak chcete pridať objekt služby ako člena roly, prejdite do nastavení Členstvo.
Použite ID objektu služby ako meno používateľa (efektívnu identitu).
Migrácia služby Analysis Service
Zo služby AAS môžete migrovať zo služby AAS do služby Power BI Premium aj v prípade, že máte vloženú zostavu AAS. Vaša vložená správa sa počas migrácie nepokazí, pokiaľ je hlavný operátor, ktorý volá Embed Token - Generate Token API, členom alebo administrátorom pracovného priestoru.
Poznámka
Ak servisný principal nie je administrátor a nechcete, aby bol administrátorom pracovného priestoru pri migrácii, migrujte tento model do samostatného pracovného priestoru, kde mu môžete dať administrátorské oprávnenia.
Generovanie vkladacieho tokenu
Rozhranie API Generovať token použite na generovanie vkladacieho tokenu, ktorý prepíše efektívnu identitu.
Informácie potrebné na vygenerovanie tokenu na vloženie závisia od toho, ako ste pripojení k službe Power BI (objekt služby alebo hlavný používateľ), a tiež od toho, či databáza obsahuje zabezpečenie na úrovni riadkov.
Ak chcete vygenerovať token na vloženie, zadajte nasledujúce informácie:
- Meno používateľa (voliteľné, ak nie je k dispozícii RLS. Povinné pre RLS) – meno používateľa musí byť rovnaké ako volajúci rozhrania API (v tomto prípade je to hlavné meno používateľa upN). Ak databáza nepoužíva zabezpečenie na úrovni riadkov a nie je zadané žiadne meno používateľa, použijú sa prihlasovacie údaje hlavného používateľa.
- Rola (požadovaná pre RLS) - Report zobrazuje údaje len vtedy, ak je efektívna identita členom roly.
Príklad:
Definujte identitu používateľa a roly pre jeden z nasledujúcich troch scenárov:
- Ak sa zabezpečenie na úrovni riadkov neimplementuje:
Nemusíš definovať žiadnu skutočnú identitu.
Pri použití statického zabezpečenia na úrovni riadkov:
var rlsidentity = new EffectiveIdentity( //If static RLS username: "username@contoso.com", roles: new List<string>{ "MyRole" }, datasets: new List<string>{ datasetId.ToString()} )Ak používate dynamické zabezpečenie na úrovni riadkov:
var rlsidentity = new EffectiveIdentity( // If dynamic RLS username: "username@contoso.com", roles: new List<string>{ "MyRoleWithCustomData" }, customData: "SalesPersonA" datasets: new List<string>{ datasetId.ToString()} )Poznámka
customDatav embed tokene nesmie byť väčší ako 1 024 znakov.
Na generovanie vkladacieho tokenu použite efektívnu identitu:
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// 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 } // Only in cases of RLS
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Použite token na vloženie zostavy do aplikácie alebo na webovú lokalitu. Vaša správa filtruje údaje podľa aplikovaného RLS v správe.