Automatizace úloh pracovního prostoru Premium a sémantických modelů pomocí instančních objektů
Instanční objekty jsou registrace aplikace Microsoft Entra ID, kterou vytvoříte v rámci tenanta za účelem provádění bezobslužných operací na úrovni prostředků a služeb. Jedná se o jedinečný typ identity uživatele s názvem aplikace, ID aplikace, ID tenanta a tajným kódem klienta nebo certifikátem pro heslo.
Power BI Premium používá stejné funkce instančního objektu jako Power BI Embedded. Další informace najdete v tématu Vložení obsahu Power BI pomocí instančních objektů.
V Power BI Premium můžete pomocí instančních objektů s koncovým bodem XMLA (analýza XML) automatizovat sémantické úlohy správy modelů, jako je zřizování pracovních prostorů, nasazování modelů a sémantická aktualizace modelu:
- PowerShell.
- Azure Automation
- Azure Logic Apps.
- Vlastní klientské aplikace.
Připojení koncových bodů XMLA podporují pouze nové pracovní prostory pomocí instančních objektů. Klasické pracovní prostory se nepodporují. Instanční objekt má pouze tato oprávnění potřebná k provádění úloh v pracovních prostorech, ve kterých je přiřazena. Oprávnění se přiřazují prostřednictvím přístupu k pracovnímu prostoru, podobně jako běžné účty hlavního názvu uživatele (UPN).
Aby bylo možné provádět operace zápisu, musí mít úloha sémantických modelů kapacity povolený koncový bod XMLA pro operace čtení i zápisu. Sémantické modely publikované z Power BI Desktopu by měly mít povolenou funkci rozšířeného formátu metadat.
Vytvoření instančního objektu služby
Instanční objekty se vytvářejí jako registrace aplikace na webu Azure Portal nebo pomocí PowerShellu. Při vytváření instančního objektu nezapomeňte zkopírovat a uložit samostatně název aplikace, ID aplikace (klienta), ID adresáře (tenanta) a tajný klíč klienta. Postup vytvoření instančního objektu najdete tady:
Vytvoření skupiny zabezpečení Microsoft Entra
Ve výchozím nastavení mají instanční objekty přístup k nastavení tenanta, pro která jsou povolená. V závislosti na nastavení správce může přístup zahrnovat konkrétní skupiny zabezpečení nebo celou organizaci.
Pokud chcete omezit přístup instančního objektu na konkrétní nastavení tenanta, můžete povolit přístup ke konkrétním skupinám zabezpečení. Případně můžete vytvořit vyhrazenou skupinu zabezpečení pro instanční objekty a vyloučit ji z nastavení požadovaného tenanta. Pokud chcete vytvořit skupinu zabezpečení a přidat instanční objekt, přečtěte si téma Vytvoření základní skupiny a přidání členů pomocí ID Microsoft Entra.
Povolení instančních objektů
Než začnete používat instanční objekty v Power BI, musí správce povolit přístup instančního objektu na portálu pro správu Power BI.
- Přejděte na portál pro správu Power BI a pak vyberte Nastavení tenanta.
- Přejděte do nastavení pro vývojáře a potom rozbalte možnost Povolit instančním objektům používat API Power BI.
- Vyberte Povoleno.
- Pokud chcete u skupiny zabezpečení použít oprávnění, vyberte Konkrétní skupiny zabezpečení (doporučeno).
- Zadejte název skupiny.
- Vyberte Použít.
Přístup k pracovnímu prostoru
Aby měl instanční objekt potřebná oprávnění k provádění operací pracovního prostoru Premium a sémantických modelů, musíte instanční objekt přidat jako člena nebo správce pracovního prostoru. Použití přístupu k pracovnímu prostoru v služba Power BI je zde popsáno, ale můžete také použít rozhraní REST API pro přidání uživatele skupiny.
V služba Power BI pracovního prostoru vyberte Další>přístup k pracovnímu prostoru.
Vyhledejte název aplikace a pak přidejte instanční objekt jako správce nebo člena do pracovního prostoru.
Připojovací řetězce pro koncový bod XMLA
Po vytvoření instančního objektu povolte instanční objekty pro vašeho tenanta a přidejte instanční objekt do přístupu k pracovnímu prostoru, použijte ho jako identitu uživatele v připojovací řetězec s koncovým bodem XMLA. Rozdíl spočívá v tom, že místo user id
password
parametrů zadáte ID aplikace, ID tenanta a tajný klíč aplikace.
Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;
PowerShell
Otevřete relaci PowerShellu a spusťte následující ukázkový kód.
Použití modulu SQLServer
V následujícím příkladu se AppId
TenantId
používá k AppSecret
ověření operace aktualizace sémantického modelu:
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
Objekty správy analýzy (AMO) a ADOMD.NET
Když se připojujete s klientskými aplikacemi a webovými aplikacemi, můžete pomocí klientských knihoven AMO a ADOMD verze 15.1.42.26 (červen 2020) a novějších instalovatelných balíčků z NuGetu podporovat instanční objekty v připojovací řetězec pomocí následující syntaxe: app:AppID
a hesla nebo cert:thumbprint
.
V následujícím příkladu appID
se password
hodnoty používají k provedení operace aktualizace databáze 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();