Vygenerování tokenu pro vložení

PLATÍ PRO: Aplikace vlastní data , která uživatel vlastní.

Generování tokenu je rozhraní REST API, které umožňuje vygenerovat token pro vložení sestavy Nebo sémantického modelu Power BI do webové aplikace nebo portálu. Může vygenerovat token pro jednu položku nebo pro více sestav nebo sémantických modelů. Token slouží k autorizaci vaší žádosti proti služba Power BI.

Rozhraní API vygenerování tokenu používá jednu identitu (hlavního uživatele nebo instanční objekt) k vygenerování tokenu pro jednotlivého uživatele v závislosti na přihlašovacích údajích daného uživatele v aplikaci (efektivní identita).

Po úspěšném ověření se udělí přístup k příslušným datům.

Poznámka:

Generování tokenu je novější rozhraní API verze 2, které funguje pro sestavy i sémantické modely a jednu nebo více položek. Upřednostňuje se před staršími rozhraními API verze 1. Pro řídicí panely a dlaždice použijte řídicí panely V1 GenerateTokenInGroup a GenerateTokenInGroup.

Zabezpečení dat

Pokud zpracováváte data od více zákazníků, existují dva hlavní přístupy k zabezpečení dat: izolace založená na pracovních prostorech a izolace založená na zabezpečení na úrovni řádků. Podrobné porovnání mezi nimi najdete v profilech instančního objektu a zabezpečení na úrovni řádků.

U profilů doporučujeme používat izolaci na základě pracovního prostoru, ale pokud chcete použít přístup RLS, projděte si část zabezpečení na úrovni řádků na konci tohoto článku.

Oprávnění tokenu a zabezpečení

V rozhraníCH API pro generování tokenů popisuje část GenerateTokenRequest oprávnění tokenu.

Úroveň přístupu

  • Pomocí parametru allowEdit udělte uživateli oprávnění k prohlížení nebo úpravám.

  • Přidejte ID pracovního prostoru do tokenu pro vložení, aby uživatel mohl v daném pracovním prostoru vytvářet nové sestavy (SaveAs nebo CreateNew).

Zabezpečení na úrovni řádků

U zabezpečení na úrovni řádků (RLS) se identita, kterou používáte, může lišit od identity instančního objektu nebo hlavního uživatele, který používáte k vygenerování tokenu. Pomocí různých identit můžete zobrazit vložené informace podle uživatele, na který cílíte. V aplikaci můžete například požádat uživatele, aby se přihlásili, a pak zobrazit sestavu, která obsahuje jenom prodejní údaje, pokud je přihlášený uživatel zaměstnancem prodeje.

Pokud používáte zabezpečení na úrovni řádků, můžete někdy vynechat identitu uživatele ( parametr EffectiveIdentity ). Pokud nepoužíváte parametr EffectiveIdentity , má token přístup k celé databázi. Tuto metodu lze použít k udělení přístupu uživatelům, jako jsou správci a manažeři, kteří mají oprávnění k zobrazení celého sémantického modelu. Tuto metodu ale nemůžete použít v každém scénáři. Následující tabulka uvádí různé typy zabezpečení na úrovni řádků a ukazuje, jakou metodu ověřování je možné použít bez zadání identity uživatele.

Tabulka také ukazuje aspekty a omezení vztahující se na jednotlivé typy zabezpečení na úrovni řádků.

Typ zabezpečení na úrovni řádků Můžu vygenerovat token pro vložení bez zadání platného ID uživatele? Úvahy a omezení
Cloud Row Level Security (Cloud RLS) ✔ Hlavní uživatel
✖ Instanční objekt
RDL (stránkované sestavy) ✖ Hlavní uživatel
✔ Instanční objekt
Hlavního uživatele nemůžete použít k vygenerování tokenu pro vložení pro RDL.
Místní živé připojení služby Analysis Services (AS) ✔ Hlavní uživatel
✖ Instanční objekt
Uživatel, který generuje token pro vložení, potřebuje také jedno z následujících oprávnění:
  • Oprávnění správce brány
  • Oprávnění zosobnění zdroje dat (ReadOverrideEffectiveIdentity)
  • Živé připojení Azure analysis Services (AS) ✔ Hlavní uživatel
    ✖ Instanční objekt
    Identitu uživatele, který generuje token pro vložení, nejde přepsat. Vlastní data se dají použít k implementaci dynamického zabezpečení na úrovni řádků nebo zabezpečeného filtrování.

    Poznámka: Instanční objekt musí jako efektivní identitu (uživatelské jméno RLS) zadat ID objektu.
    Jednotné přihlašování (SSO) ✔ Hlavní uživatel
    ✖ Instanční objekt
    Explicitní identitu (SSO) je možné poskytnout pomocí vlastnosti objektu blob identity v efektivním objektu identity.
    Jednotné přihlašování a cloudová zabezpečení na úrovni řádků ✔ Hlavní uživatel
    ✖ Instanční objekt
    Musíte zadat následující:
  • Explicitní identita (SSO) ve vlastnosti objektu blob identity v efektivním objektu identity
  • Platná identita (RLS) (uživatelské jméno)
  • Poznámka:

    Instanční objekty musí vždy poskytovat následující informace:

    • Identita pro libovolnou položku sémantickým modelem zabezpečení na úrovni řádků
    • Pro sémantický model jednotného přihlašování je efektivní identita zabezpečení na úrovni řádků s definovanou kontextovou identitou (SSO).

    DirectQuery pro sémantické modely Power BI

    Pokud chcete vložit sestavu Power BI, která má sémantický model s připojením Direct Query k jinému sémantickému modelu Power BI, postupujte takto:

    • Na portálu Power BI nastavte koncový bod XMLA na jen pro čtení nebo zápis pro čtení, jak je popsáno v povolení čtení a zápisu pro kapacitu Premium. Stačí to udělat jen jednou na kapacitu.
    • Vygenerování tokenu pro vložení více prostředků
      • Zadejte všechna ID datových sad v požadavku.
      • XmlaPermissions Nastavte hodnotu Jen pro čtení pro každý sémantický model v požadavku.
      • Pro každý zdroj dat s povoleným jednotným přihlašováním zadejte objekt blob identity pro zdroj dat v objektu DatasourceIdentity.

    Prodloužení platnosti tokenů před vypršením jejich platnosti

    Tokeny mají časový limit. To znamená, že po vložení položky Power BI máte omezenou dobu na interakci s ní. Pokud chcete uživatelům poskytnout nepřetržité prostředí, obnovte (nebo aktualizujte) token před vypršením jeho platnosti.

    Řídicí panely a dlaždice

    Token Generate funguje pro sestavy a sémantické modely. Pokud chcete vygenerovat token pro vložení řídicího panelu nebo dlaždice, použijte rozhraní API GenerateTokenInGroup nebo Tiles GenerateTokenInGroup verze 1 Řídicí panely. Tato rozhraní API generují tokeny pouze pro jednu položku najednou. Token pro více položek nejde vygenerovat.

    Pro tato rozhraní API:

    • K určení úrovně přístupu uživatele použijte parametr accessLevel.

      • Zobrazení – udělte uživateli oprávnění k prohlížení.

      • Upravit – Udělte uživateli oprávnění k prohlížení a úpravám (platí jenom při generování tokenu pro vložení pro sestavu).

      • Vytvoření – Udělení uživatelských oprávnění k vytvoření nové sestavy (platí jenom při generování tokenu pro vložení pro vytvoření sestavy). Při vytváření sestavy musíte také zadat parametr datasetId .

    • Pomocí logické hodnoty allowSaveAs umožníte uživatelům uložit sestavu jako novou sestavu. Toto nastavení je ve výchozím nastavení nastavené na false a platí pouze při generování tokenu pro vložení pro sestavu.

    Úvahy a omezení

    • Z bezpečnostních důvodů je životnost tokenu pro vložení nastavená na zbývající dobu životnosti tokenu Microsoft Entra použitého GenerateToken k volání rozhraní API. Proto pokud použijete stejný token Microsoft Entra k vygenerování několika tokenů pro vložení, životnost vygenerovaných tokenů pro vložení bude s každým voláním kratší.

    • Pokud je sémantický model a položka, které se mají vložit, nacházejí ve dvou různých pracovních prostorech, musí být instanční objekt nebo hlavní uživatel alespoň členem obou pracovních prostorů.

    • Token pro vložení pro můj pracovní prostor nejde vytvořit.