Automatizácia úloh pracovného priestoru a množiny údajov Premium pomocou objektov službyAutomate Premium workspace and dataset tasks with service principals

Objekty služby sú registrácia aplikácie v Azure Active Directory, ktorú vytvoríte v nájomníkovi na vykonávanie automatických operácií na úrovni zdrojov a služieb.Service principals are an Azure Active Directory app registration you create within your tenant to perform unattended resource and service level operations. Predstavujú jedinečný typ identity používateľa s názvom aplikácie, ID aplikácie, ID nájomníka a tajným kľúčom klienta alebo certifikátom pre heslo.They're a unique type of user identity with an app name, application ID, tenant ID, and client secret or certificate for a password.

Power BI Premium používa rovnaké funkcie objektov služieb ako Power BI Embedded.Power BI Premium uses the same service principal functionality as Power BI Embedded. Ďalšie informácie nájdete v téme Vloženie obsahu služby Power BI pomocou objektu služby.To learn more, see Embedding Power BI content with service principals.

V službe Power BI Premium možno objekty služby použiť aj s koncovým bodom XMLA na automatizáciu úloh spravovania množiny údajov, napríklad zriaďovanie pracovných priestorov, nasadzovanie modelov a obnovovanie množín údajov cez:In Power BI Premium, service principals can also be used with the XMLA endpoint to automate dataset management tasks such as provisioning workspaces, deploying models, and dataset refresh with:

  • PowerShell,PowerShell
  • Azure Automation,Azure Automation
  • Azure Logic Apps,Azure Logic Apps
  • vlastné klientske aplikácie.Custom client applications

Pripojenia koncových bodov XMLA pomocou objektov služby sa podporujú len v nových pracovných priestoroch.Only New workspaces support XMLA endpoint connections using service principals. Klasické pracovné priestory sa nepodporujú.Classic workspaces aren't supported. Objekt služby má len povolenia nevyhnutné na vykonávanie úloh v priradenom pracovnom priestore.A service principal has only those permissions necessary to perform tasks for workspaces that it is assigned. Povolenia sa priraďujú prostredníctvom prístupu k pracovnému priestoru, podobne ako pri bežných kontách hlavného mena používateľa.Permissions are assigned through workspace Access, much like regular UPN accounts.

Na vykonávanie operácií zápisu musí byť v službe množín údajov kapacity povolený koncový bod XMLA na čítanie a zápis.To perform write operations, the capacity's Datasets workload must have the XMLA endpoint enabled for read-write. Množiny údajov publikované z aplikácie Power BI Desktop by mali mať povolenú funkciu Rozšírený formát metaúdajov.Datasets published from Power BI Desktop should have the Enhanced metadata format feature enabled.

Poznámka

Funkcia koncového bodu XMLA v službe Power BI Premium je vo verzii Preview.The XMLA endpoint feature in Power BI Premium is Preview. Funkcie vo verzii Preview by sa nemali používať v produkčnom prostredí.Features in preview should not be used in a production environment. Určité funkcie, podpora a dokumentácia sú obmedzené.Certain functionality, support, and documentation is limited. Podrobné informácie nájdete v podmienkach používania služieb Microsoft Online Services (OST).Refer to the Microsoft Online Services Terms (OST) for details.

Vytvorenie objektu službyCreate a service principal

Objekty služby sa vytvárajú ako registrácia aplikácie na portáli Azure alebo pomocou prostredia PowerShell.Service principals are created as an app registration in the Azure portal or by using PowerShell. Pri vytváraní objektu služby nezabudnite skopírovať a samostatne uložiť názov aplikácie, ID aplikácie (klienta), ID adresára (nájomníka) a tajný kľúč klienta.When creating your service principal, be sure to copy and save separately the app name, Application (client) ID, Directory (tenant) ID, and client secret. Kroky na vytvorenie objektu služby nájdete v témach:For steps on how to create a service principal, see:

Vytvorenie objektu služby – portál Azure Create service principal - Azure portal
Vytvorenie objektu služby – PowerShellCreate service principal - PowerShell

Vytvorenie skupiny zabezpečenia v Azure ADCreate an Azure AD security group

Objekty služby majú predvolene prístup ku všetkým nastaveniam nájomníka, pre ktorého sú povolené.By default, service principals have access to any tenant settings they're enabled for. V závislosti od nastavení správcu môže prístup zahŕňať konkrétne skupiny zabezpečenia alebo celú organizáciu.Depending on your admin settings, access can include specific security groups or the entire organization.

Ak chcete obmedziť prístup objektu služby ku konkrétnym nastaveniam nájomníka, môžete povoliť prístup ku konkrétnym skupinám zabezpečenia.To restrict service principal access to specific tenant settings, you can allow access to specific security groups. Prípadne môžete vytvoriť vyhradenú skupinu zabezpečenia pre objekty služby a vylúčiť ju z požadovaných nastavení nájomníka.Alternatively, you can create a dedicated security group for service principals, and exclude it from the desired tenant settings. Kroky, ako vytvoriť skupinu zabezpečenia a pridať objekt služby, nájdete v téme Vytvorenie základnej skupiny a pridanie členov pomocou služby Azure Active Directory.For steps on how to create a security group and add a service principal, see Create a basic group and add members using Azure Active Directory.

Povolenie objektov službyEnable service principals

Pred použitím objektov služby v Power BI musí najprv správca povoliť prístup objektov služby na portáli na správu služby Power BI.Before using service principals in Power BI, an admin must first enable service principal access in the Power BI admin portal.

Na portáli na správu služby Power BI v časti > Nastavenia nájomníka rozbaľte položku Povoliť objektom služby používať rozhrania Power BI API a potom kliknite na možnosť Povolené.In the Power BI Admin portal > Tenant settings, expand Allow service principals to use Power BI APIs, and then click Enabled. Ak chcete použiť povolenia na skupinu zabezpečenia, pridajte názov skupiny do časti Konkrétne skupiny zabezpečenia.To apply permissions to a security group, add the group name to Specific security groups.

Nastavenia pracovného priestoru

Prístup k pracovnému priestoruWorkspace access

Na to, aby mal objekt služby potrebné povolenia na vykonávanie operácií s pracovným priestorom a množinou údajov Premium, musíte objekt služby pridať ako člena alebo správcu pracovného priestoru. Tu je popísaný prístup k pracovnému priestoru v službe Power BI, môžete však použiť aj rozhranie Add Group User REST API.In order for your service principal to have the necessary permissions to perform Premium workspace and dataset operations, you must add the service principal as a workspace Member or Admin. Using Workspace access in the Power BI service is described here, but you can also use the Add Group User REST API.

  1. V službe Power BI vyberte pre pracovný priestor položky Viac > Prístup k pracovnému priestoru.In the Power BI service, for a workspace, select More > Workspace access.

    Nastavenia prístupu k pracovnému priestoru

  2. Vyhľadajte názov aplikácie, pridajte objekt služby do pracovného priestoru ako správca alebo ako člen.Search by application name, Add the service principal as an Admin or Member to the workspace.

    Dialógové okno prístupu

Reťazce pripojenia pre koncový bod XMLAConnection strings for the XMLA endpoint

Po vytvorení objektu služby, povolení objektov služby pre svojho nájomníka a pridaní objektu služby do prístupu k pracovnému priestoru môžete objekt služby použiť ako identitu používateľa v reťazcoch pripojenia s koncovým bodom XMLA.Once you've created a service principal, enabled service principals for your tenant, and added the service principal to Workspace access, you can use it as a user identity in connection strings with the XMLA endpoint. Rozdiel je, že pre parametre identifikácia používateľa a heslo zadávate ID aplikácie, ID nájomníka a tajný kľúč aplikácie.The difference is for the User ID and Password parameters you specify the application ID, tenant ID, and application secret.

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

PowerShellPowerShell

Použitie modulu SQLServerUsing SQLServer module

V nasledujúcom príklade sa parametre AppId, TenantId a AppSecret používajú na overenie operácie obnovenia množiny údajov:In the following example, AppId, TenantId, and AppSecret are used to authenticate a dataset refresh operation:

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

AMO a ADOMDAMO and ADOMD

Pri pripájaní ku klientskym aplikáciám a webovým aplikáciám podporujú inštalovateľné balíky zo správcu NuGet s klientskymi knižnicami AMO a ADOMD verzie 15.1.42.26 (jún 2020) alebo novšej objekty služby v reťazcoch pripojenia s touto syntaxou: app:AppID a heslom alebo možnosťou cert:thumbprint.When connecting with client applications and web apps, AMO and ADOMD client libraries version 15.1.42.26 (June 2020) and higher installable packages from NuGet support service principals in connection strings using the following syntax: app:AppID and password or cert:thumbprint.

V nasledujúcom príklade sa parametre appID a password používajú na vykonanie operácie obnovenia modelovej databázy:In the following example, appID and a password are used to perform a model database refresh operation:

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();

Ďalšie krokyNext steps

Prepojenie množiny údajov s koncovým bodom XMLADataset connectivity with the XMLA endpoint
Azure AutomationAzure Automation
Aplikácie Azure Logic AppsAzure Logic Apps
Rozhrania Power BI REST APIPower BI REST APIs