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 używa jednej tożsamości (użytkownika głównego lub jednostki usługi) do wygenerowania tokenu dla pojedynczego użytkownika, w zależności od poświadczeń tego użytkownika w aplikacji (obowiązująca tożsamość).
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. Preferowane jest interfejsy API starszej wersji 1. 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 GenerateTokenRequest w interfejsach API generowania tokenu opisano uprawnienia tokenu.
Poziom dostępu
Użyj parametru allowEdit , aby udzielić użytkownikowi uprawnień do wyświetlania lub edytowania.
Dodaj identyfikator obszaru roboczego do tokenu osadzania, aby umożliwić użytkownikowi tworzenie nowych raportów ( SaveAs lub CreateNew) w tym obszarze roboczym.
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. Poniższa tabela zawiera listę różnych typów zabezpieczeń na poziomie wiersza i pokazuje, 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ć następujące informacje: |
Uwaga
Jednostki usługi muszą zawsze podać następujące informacje:
- Tożsamość dla dowolnego elementu z semantycznym modelem zabezpieczeń na poziomie wiersza.
- W przypadku modelu semantycznego logowania jednokrotnego obowiązująca tożsamość zabezpieczeń na poziomie wiersza z zdefiniowaną tożsamością kontekstową (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, wykonaj następujące czynności:
- 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. Oznacza to, że 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.
Nie można utworzyć tokenu osadzania dla obszaru Mój obszar roboczy.