Udostępnij za pośrednictwem


Automatyzowanie zadań obszaru roboczego w warstwie Premium i semantycznego modelu przy użyciu jednostek usługi

Jednostki usługi to rejestracja aplikacji Microsoft Entra ID utworzona w dzierżawie w celu wykonywania nienadzorowanych operacji na poziomie zasobów i usług. Są one unikatowym typem tożsamości użytkownika z nazwą aplikacji, identyfikatorem aplikacji, identyfikatorem dzierżawy i wpisem tajnym klienta lub certyfikatem hasła.

Usługa Power BI Premium używa tej samej funkcji jednostki usługi co usługa Power BI Embedded. Aby dowiedzieć się więcej, zobacz Osadzanie zawartości usługi Power BI przy użyciu jednostek usługi.

W usłudze Power BI Premium można używać jednostek usługi z punktem końcowym XMLA (XML Analysis), aby zautomatyzować zadania zarządzania modelami semantycznymi, takie jak aprowizowanie obszarów roboczych, wdrażanie modeli i odświeżanie modelu semantycznego za pomocą:

  • Program PowerShell.
  • Usługa Azure Automation.
  • Usługa Azure Logic Apps.
  • Niestandardowe aplikacje klienckie.

Tylko nowe obszary robocze obsługują połączenia punktów końcowych XMLA przy użyciu jednostek usługi. Klasyczne obszary robocze nie są obsługiwane. Jednostka usługi ma tylko te uprawnienia niezbędne do wykonywania zadań w obszarach roboczych, do których jest przypisana. Uprawnienia są przypisywane za pośrednictwem dostępu do obszaru roboczego, podobnie jak zwykłe konta nazwy UPN (głównej nazwy użytkownika).

Aby wykonywać operacje zapisu, obciążenie modeli semantycznych pojemności musi mieć włączony punkt końcowy XMLA dla operacji odczytu i zapisu. Modele semantyczne opublikowane w programie Power BI Desktop powinny mieć włączoną funkcję rozszerzonego formatu metadanych.

Tworzenie jednostki usługi

Jednostki usługi są tworzone jako rejestracja aplikacji w witrynie Azure Portal lub przy użyciu programu PowerShell. Podczas tworzenia jednostki usługi pamiętaj, aby skopiować i zapisać oddzielnie nazwę aplikacji, identyfikator aplikacji (klienta), identyfikator katalogu (dzierżawy) i klucz tajny klienta. Aby uzyskać instrukcje dotyczące tworzenia jednostki usługi, zobacz:

Tworzenie grupy zabezpieczeń entra firmy Microsoft

Domyślnie jednostki usługi mają dostęp do wszystkich ustawień dzierżawy, dla których są włączone. W zależności od ustawień administratora dostęp może obejmować określone grupy zabezpieczeń lub całą organizację.

Aby ograniczyć dostęp jednostki usługi do określonych ustawień dzierżawy, możesz zezwolić na dostęp do określonych grup zabezpieczeń. Alternatywnie możesz utworzyć dedykowaną grupę zabezpieczeń dla jednostek usługi i wykluczyć ją z żądanych ustawień dzierżawy. Aby utworzyć grupę zabezpieczeń i dodać jednostkę usługi, zobacz Tworzenie podstawowej grupy i dodawanie członków przy użyciu identyfikatora Entra firmy Microsoft.

Włączanie jednostek usługi

Aby można było rozpocząć korzystanie z jednostek usługi w usłudze Power BI, administrator musi włączyć dostęp jednostki usługi w portalu administracyjnym usługi Power BI.

  1. Przejdź do portalu administracyjnego usługi Power BI, a następnie wybierz pozycję Ustawienia dzierżawy.
  2. Przewiń do obszaru Ustawienia dewelopera, a następnie rozwiń węzeł Zezwalaj jednostkom usługi na używanie interfejs API usługi Power BI.
  3. Wybierz pozycję Włączone.
  4. Aby zastosować uprawnienia do grupy zabezpieczeń, wybierz pozycję Określone grupy zabezpieczeń (zalecane).
  5. Wprowadź nazwę grupy.
  6. Wybierz Zastosuj.

Dostęp do obszaru roboczego

Aby jednostka usługi miała uprawnienia niezbędne do wykonywania operacji w obszarze roboczym Premium i semantycznym modelu, musisz dodać jednostkę usługi jako członka obszaru roboczego lub administratora. Używanie dostępu do obszaru roboczego w usługa Power BI zostało opisane tutaj, ale możesz również użyć interfejsu API REST Dodaj użytkownika grupy.

  1. W usługa Power BI obszaru roboczego wybierz pozycję Więcej>dostępu do obszaru roboczego.

    Zrzut ekranu przedstawiający listę obszarów roboczych. Wyróżniono więcej ikon i dostępu do obszaru roboczego.

  2. Wyszukaj według nazwy aplikacji, a następnie dodaj jednostkę usługi jako administratora lub członka do obszaru roboczego.

Parametry połączenia dla punktu końcowego XMLA

Po utworzeniu jednostki usługi włącz jednostki usługi dla dzierżawy i dodaj jednostkę usługi do dostępu do obszaru roboczego, użyj jej jako tożsamości użytkownika w parametry połączenia z punktem końcowym XMLA. Różnica polega na tym, że zamiast user id parametrów i password należy określić identyfikator aplikacji, identyfikator dzierżawy i wpis tajny aplikacji.

Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;

PowerShell

Otwórz sesję programu PowerShell, aby uruchomić następujący przykładowy kod.

Korzystanie z modułu SQLServer

W poniższym przykładzie AppIdmetody , TenantIdi AppSecret są używane do uwierzytelniania operacji odświeżania modelu semantycznego:

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $TenantId,
        [Parameter(Mandatory=$true)] [String] $AppSecret
       )
$PWord = ConvertTo-SecureString -String $AppSecret -AsPlainText -Force

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

Invoke-ProcessTable -Server "powerbi://api.powerbi.com/v1.0/myorg/myworkspace" -TableName "mytable" -DatabaseName "mydataset" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

Obiekty zarządzania analizami (AMO) i ADOMD.NET

Podczas nawiązywania połączenia z aplikacjami klienckimi i aplikacjami internetowymi można używać bibliotek klienckich AMO i ADOMD w wersji 15.1.42.26 (czerwiec 2020 r.) i nowszych instalowalnych pakietów z pakietu NuGet w celu obsługi jednostek usługi w parametry połączenia przy użyciu następującej składni: app:AppID i hasła lub cert:thumbprint.

W poniższym przykładzie appID wartości i password służą do wykonywania operacji odświeżania bazy danych modelu:

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data source=powerbi://api.powerbi.com/v1.0/<tenant>/<workspacename>;Initial catalog=<datasetname>;User ID=app:{appId};Password={authKey};";
Server server = new Server();
server.Connect(connString);
Database db = server.Databases.FindByName("adventureworks");
Table tbl = db.Model.Tables.Find("DimDate");
tbl.RequestRefresh(RefreshType.Full);
db.Model.SaveChanges();