Implementowanie zabezpieczeń na poziomie wiersza w osadzonych raportach podzielonych na strony

Dotyczy:✅ Analiza osadzona Power BI dla swoich klientów (App-owns-data)

W tym artykule wyjaśniono, jak osadzić raport podzielony na strony, który korzysta z RLS (zabezpieczenia na poziomie wiersza), w aplikacji app owns data.

Uwaga

Ten artykuł dotyczy tylko klientów korzystających z danych własnych przez aplikację.

Aby używać RLS dla raportów podzielonych na strony:

  1. Konfigurowanie środowiska do filtrowania raportu
  2. Filtrowanie danych na poziomie raportu lub zapytania
  3. Przekazywanie skonfigurowanego parametru przy użyciu tokenu osadzania

Wymagania wstępne

  • W tym artykule zakłada się, że wiesz, jak osadzić stronicowany raport usługi Power BI. Wyjaśniono w nim, jak wygenerować token osadzania, aby raport pokazywał tylko uprawnienia dostępu użytkownika.

  • Raporty stronicowane są tworzone przy użyciu mechanizmu SQL Server Reporting Services, a nie mechanizmu Power BI (Analysis Services), więc filtrowanie RLS konfiguruje się w Power BI Report Builder.

Konfigurowanie środowiska

Aby zastosować zabezpieczenia na poziomie wiersza do raportu podzielonego na strony usługi Power BI, użyj wbudowanego pola UserID , aby przypisać parametr. Ten parametr służy do filtrowania lub wykonywania zapytań dotyczących danych.

Następnie przekaż UserID do interfejsu API Embed Token - Generate Token, aby uzyskać token osadzania.

Użyj identyfikatora UserID jako filtru na poziomie raportu lub zapytania

Możesz użyć UserId jako filtru lub w zapytaniu do źródła danych.

Filtrowanie danych

  1. W oknie Właściwości modelu semantycznego w okienku po lewej stronie wybierz pozycję Filtr.

    Zrzut ekranu przedstawiający filtr programu Power BI Report Builder.

  2. Z menu rozwijanego Wyrażenie wybierz parametr, którego chcesz użyć do filtrowania danych.

    Zrzut ekranu przedstawia opcję „Kolor” wybraną z menu „Wyrażenie”.

  3. Wybierz przycisk funkcji Value.

    Wartość programu Power BI Report Builder

  4. W oknie „Wyrażenie”, z listy „Kategoria” wybierz pozycję „Pola wbudowane”.

    Zrzut ekranu przedstawiający okno Wyrażenie z polami wbudowanymi wybranymi jako Kategoria i ExecutionTime wybranym jako Element.

  5. Z listy Element wybierz pozycję UserID i wybierz przycisk OK.

    Identyfikator użytkownika programu Power BI Report Builder

  6. W oknie Właściwości modelu semantycznego sprawdź, czy wyrażenie jest wybranym parametrem = UserID, a następnie wybierz przycisk OK.

    Właściwości semantycznego modelu programu Power BI Report Builder

Korzystanie z zapytania

  1. W oknie Właściwości modelu semantycznego w okienku nawigacji po lewej stronie wybierz pozycję Parametry i wybierz pozycję Dodaj.

    Parametry programu Power BI Report Builder

  2. W polu Nazwa parametru wprowadź @UserID, a w polu Wartość parametru dodaj [&UserID].

    Nazwa parametru programu Power BI Report Builder

  3. W okienku po lewej stronie wybierz pozycję Zapytanie, w zapytaniu dodaj parametr UserID jako część zapytania, a następnie wybierz przycisk OK.

    Uwaga

    Na poniższym zrzucie ekranu parametr koloru jest używany jako przykład (WHERE FinalTable.Color = @UserID). W razie potrzeby możesz utworzyć bardziej złożone zapytanie.

    Edytowanie zapytań programu Power BI Report Builder

Wygeneruj token osadzania

Podczas osadzania raportu stronicowanego dla klientów użyj interfejsu API Reports GenerateTokenInGroup, aby uzyskać token osadzenia. Ten token może również służyć do filtrowania niektórych danych z raportu podzielonego na strony.

Token można wygenerować tylko przy użyciu nazwy głównej usługi. Nie można wygenerować tokenu jako użytkownika głównego. Jednostka usługi musi mieć co najmniej uprawnienia członka do obszaru roboczego w usługa Power BI. (Jeśli jednostka usługi jest Współautorem lub Czytelnikiem, nie może wygenerować tokenu).

Aby wygenerować token, przypisz username pole z informacjami, które chcesz wyświetlić. Na przykład w raporcie podzielonym na strony, który ma parametr koloru, jeśli wprowadzisz zielony w username polu, token osadzania ogranicza osadzone dane tylko do danych, które mają kolor zielony jako jego wartość w kolumnie kolorów.

{
 "reports": [
 {
  "id": "8d57615e-cfed-4d60-bd21-7dc05727193c"
 }
 ],
 "identities": [
 {
  "username": "green",
  "reports": [
  "8d57615e-cfed-4d60-bd21-7dc05727193c"
  ]
 }
 ]
}

Uwaga

Jeśli wygenerujesz token osadzania bez określenia identyfikatora użytkownika, zostanie użyty identyfikator obiektu jednostki usługi.

Rozważania i ograniczenia

  • Użytkownik nadrzędny nie jest obsługiwany w przypadku raportów stronicowanych na potrzeby osadzania dla swoich klientów. Użytkownik główny jest obsługiwany w przypadku osadzania w organizacji.
  • Jednostka usługi musi mieć uprawnienia w obszarze roboczym na poziomie co najmniej członek (a nie przeglądający lub współautor).

Generowanie tokenu osadzania