Generowanie tokenu osadzania
DOTYCZY: Aplikacja jest właścicielem danych Użytkownik jest właścicielem danych
Generowanie tokenu to interfejs API REST, który umożliwia wygenerowanie tokenu na potrzeby osadzania raportu usługi Power BI lub modelu semantycznego w aplikacji internetowej lub portalu. Może wygenerować token dla jednego elementu lub wielu raportów lub modeli semantycznych. Token jest używany do autoryzowania żądania względem usługa Power BI.
Interfejs API generowania tokenu
Po pomyślnym uwierzytelnieniu zostanie udzielony dostęp do odpowiednich danych.
Uwaga
Generowanie tokenu to nowszy interfejs API w wersji 2, który działa zarówno dla raportów, jak i modeli semantycznych oraz pojedynczych lub wielu elementów. W przypadku pulpitów nawigacyjnych i kafelków użyj pulpitów nawigacyjnych w wersji 1 GenerateTokenInGroup i kafelków GenerateTokenInGroup.
Zabezpieczanie danych
Jeśli obsługujesz dane od wielu klientów, istnieją dwa główne podejścia do zabezpieczania danych: izolacja oparta na obszarze roboczym i izolacja oparta na zabezpieczeniach na poziomie wiersza. Szczegółowe porównanie między nimi można znaleźć w profilach jednostki usługi i zabezpieczeniach na poziomie wiersza.
Zalecamy używanie izolacji opartej na obszarze roboczym z profilami, ale jeśli chcesz użyć podejścia zabezpieczeń na poziomie wiersza, zapoznaj się z sekcją Zabezpieczenia na poziomie wiersza na końcu tego artykułu.
Uprawnienia i zabezpieczenia tokenów
W sekcji Generate token API, część GenerateTokenRequest opisuje uprawnienia tokenu.
Poziom dostępu
Aby udzielić użytkownikowi uprawnień do wyświetlania lub edytowania, użyj parametru allowEdit.
Aby umożliwić użytkownikowi tworzenie nowych raportów (SaveAs lub CreateNew) w tym obszarze roboczym, dodaj identyfikator obszaru roboczego do tokena osadzania.
Zabezpieczenia na poziomie wiersza
W przypadku zabezpieczeń na poziomie wiersza (RLS) używana tożsamość może różnić się od tożsamości jednostki usługi lub użytkownika głównego używanego do generowania tokenu. Korzystając z różnych tożsamości, można wyświetlić informacje osadzone według docelowego użytkownika. Na przykład w aplikacji możesz poprosić użytkowników o zalogowanie się, a następnie wyświetlić raport zawierający tylko informacje o sprzedaży, jeśli zalogowany użytkownik jest pracownikiem sprzedaży.
Jeśli używasz zabezpieczeń na poziomie wiersza, czasami możesz pominąć tożsamość użytkownika ( parametr EffectiveIdentity ). Jeśli nie używasz parametru EffectiveIdentity , token ma dostęp do całej bazy danych. Ta metoda może służyć do udzielania dostępu użytkownikom, takim jak administratorzy i menedżerowie, którzy mają uprawnienia do wyświetlania całego modelu semantycznego. Jednak nie można użyć tej metody w każdym scenariuszu. W poniższej tabeli wymieniono różne typy RLS i pokazano, której metody uwierzytelniania można użyć bez określania tożsamości użytkownika.
W tabeli przedstawiono również zagadnienia i ograniczenia dotyczące poszczególnych typów zabezpieczeń na poziomie wiersza.
Typ zabezpieczeń na poziomie wiersza | Czy mogę wygenerować token osadzania bez określania obowiązującego identyfikatora użytkownika? | Rozważania i ograniczenia |
---|---|---|
Zabezpieczenia na poziomie wiersza chmury (zabezpieczenia na poziomie chmury) | ✔ Użytkownik główny ✖ Jednostka usługi |
|
RDL (raporty podzielone na strony) | ✖ Użytkownik główny ✔ Jednostka usługi |
Nie można użyć użytkownika głównego do wygenerowania tokenu osadzania dla języka RDL. |
Lokalne połączenie na żywo usług Analysis Services (AS) | ✔ Użytkownik główny ✖ Jednostka usługi |
Użytkownik generujący token osadzania wymaga również jednego z następujących uprawnień: |
Połączenie na żywo z usługami Analysis Services (AS) na platformie Azure | ✔ Użytkownik główny ✖ Jednostka usługi |
Nie można zastąpić tożsamości użytkownika generującego token osadzania. Dane niestandardowe mogą służyć do implementowania dynamicznego zabezpieczeń na poziomie wiersza lub bezpiecznego filtrowania. Uwaga: jednostka usługi musi podać identyfikator obiektu jako obowiązującą tożsamość (nazwa użytkownika zabezpieczeń na poziomie wiersza). |
Logowanie jednokrotne (SSO) | ✔ Użytkownik główny ✖ Jednostka usługi |
Tożsamość jawna (SSO) może być udostępniana przy użyciu właściwości obiektu blob tożsamości w efektywnym obiekcie tożsamości |
Logowanie jednokrotne i zabezpieczenia na poziomie wiersza w chmurze | ✔ Użytkownik główny ✖ Jednostka usługi |
Musisz podać: |
Uwaga
Jednostki główne usług muszą zawsze zapewniać:
- Charakterystyka dowolnego elementu w ramach modelu semantycznego RLS (Row-Level Security)
- Efektywna tożsamość RLS ze zdefiniowaną kontekstową tożsamością SSO (dla semantycznego modelu SSO)
Tryb DirectQuery dla modeli semantycznych usługi Power BI
Aby osadzić raport usługi Power BI, który ma model semantyczny z połączeniem Direct Query z innym modelem semantycznym usługi Power BI:
W portalu usługi Power BI ustaw punkt końcowy XMLA na Tylko do odczytu lub Odczyt zapisu zgodnie z opisem w artykule Włączanie odczytu i zapisu dla pojemności Premium. Należy to zrobić tylko raz na pojemność.
Generowanie tokenu osadzania z wieloma zasobami
- Określ wszystkie identyfikatory zestawów danych w żądaniu.
-
XmlaPermissions
Dla każdego modelu semantycznego w żądaniu ustaw wartość Tylko do odczytu. - Dla każdego źródła danych z obsługą logowania jednokrotnego (SSO) podaj obiekt blob tożsamości dla źródła danych w pliku
DatasourceIdentity
.
Odnawianie tokenów przed wygaśnięciem
Tokeny mają limit czasu. W związku z tym po osadzeniu elementu usługi Power BI masz ograniczony czas na interakcję z nim. Aby zapewnić użytkownikom ciągłe środowisko, odnów (lub odśwież) token przed jego wygaśnięciem.
Pulpity nawigacyjne i kafelki
Generowanie tokenu działa dla raportów i modeli semantycznych. Aby wygenerować token osadzania dla pulpitu nawigacyjnego lub kafelka, użyj interfejsów API GenerateTokenInGroup lub GenerateTokenInGroup w wersji 1. Te interfejsy API generują tokeny tylko dla jednego elementu naraz. Nie można wygenerować tokenu dla wielu elementów.
Dla tych interfejsów API:
Użyj parametru accessLevel , aby określić poziom dostępu użytkownika.
Widok — przyznaj użytkownikowi uprawnienia do wyświetlania.
Edytuj — udziel użytkownikowi uprawnień do wyświetlania i edytowania (dotyczy tylko generowania tokenu osadzania dla raportu).
Utwórz — przyznaj użytkownikowi uprawnienia do tworzenia nowego raportu (ma zastosowanie tylko podczas generowania tokenu osadzania do tworzenia raportu). W przypadku tworzenia raportu należy również podać parametr datasetId .
Użyj wartości logicznej allowSaveAs , aby umożliwić użytkownikom zapisywanie raportu jako nowego raportu. To ustawienie jest domyślnie ustawione na wartość false i ma zastosowanie tylko podczas generowania tokenu osadzania dla raportu.
Rozważania i ograniczenia
Ze względów bezpieczeństwa okres istnienia tokenu osadzania jest ustawiony na pozostały okres istnienia tokenu Entra firmy Microsoft używanego do wywoływania interfejsu
GenerateToken
API. W związku z tym, jeśli używasz tego samego tokenu firmy Microsoft Entra do generowania kilku tokenów osadzania, okres istnienia wygenerowanych tokenów osadzania będzie krótszy przy każdym wywołaniu.Jeśli semantyczny model i element do osadzeni znajdują się w dwóch różnych obszarach roboczych, jednostka usługi lub użytkownik główny musi być co najmniej członkiem obu obszarów roboczych.
Osadzanie elementów przy użyciu usługi Data Lake Storage (DLS) wymaga wersji 2.0 API generowania tokenu .
Nie można utworzyć tokenu osadzania dla obszaru Mój obszar roboczy.