Automatisierung mit Dienstprinzipalen

Dienstprinzipale sind eine Microsoft Entra-Anwendungsressource, die Sie in Ihrem Mandanten erstellen, um unbeaufsichtigte Ressourcen- und Servicelevelvorgänge auszuführen. Es handelt sich dabei um einen eindeutigen Typ von Benutzeridentität mit einer Anwendungs-ID und einem Kennwort oder Zertifikat. Ein Dienstprinzipal verfügt nur über die Berechtigungen, die zum Ausführen der Aufgaben erforderlich sind, die durch die ihm zugewiesenen Rollen und Berechtigungen definiert sind.

In Analysis Services werden Dienstprinzipale mit Azure Automation, PowerShell im unbeaufsichtigten Modus, benutzerdefinierten Clientanwendungen und Web-Apps zum Automatisieren von allgemeinen Aufgaben verwendet. So können beispielsweise Aufgaben wie das Bereitstellen von Servern, das Bereitstellen von Modellen, das Aktualisieren von Daten, das Hoch-/Herunterskalieren sowie Anhalten/Fortsetzen mithilfe von Dienstprinzipalen automatisiert werden. Berechtigungen werden Dienstprinzipalen über Rollenmitgliedschaften zugewiesen, ähnlich wie bei Microsoft Entra-UPN-Standardkonten.

Analysis Services unterstützt keine Vorgänge, die von verwalteten Identitäten unter Verwendung von Dienstprinzipalen ausgeführt werden. Weitere Informationen finden Sie unter Verwaltete Identitäten für Azure-Ressourcen und Azure-Dienste, die Microsoft Entra-Authentifizierung unterstützen.

Erstellen von Dienstprinzipalen

Dienstprinzipale können im Azure-Portal oder mithilfe von PowerShell erstellt werden. Weitere Informationen finden Sie unter:

Erstellen eines Dienstprinzipals – Azure-Portal
Erstellen eines Dienstprinzipals – PowerShell

Speichern von Anmeldeinformations- und Zertifikatassets in Azure Automation

Anmeldeinformationen und Zertifikate von Dienstprinzipalen können in Azure Automation für Runbook-Vorgänge sicher gespeichert werden. Weitere Informationen finden Sie unter:

Anmeldeinformationsobjekte in Azure Automation
Zertifikatobjekte in Azure Automation

Hinzufügen von Dienstprinzipalen zur Serveradministratorrolle

Bevor Sie einen Dienstprinzipal für Analysis Services-Serververwaltungsvorgänge verwenden können, müssen Sie ihn zur Serveradministratorrolle hinzufügen. Dienstprinzipale müssen direkt zur Serveradministratorrolle hinzugefügt werden. Das Hinzufügen eines Dienstprinzipals zu einer Sicherheitsgruppe und das anschließende Hinzufügen dieser Sicherheitsgruppe zur Serveradministratorrolle wird nicht unterstützt. Weitere Informationen finden Sie unter Hinzufügen eines Dienstprinzipals zur Serveradministratorrolle.

Dienstprinzipale in Verbindungszeichenfolgen

Dienstprinzipal-AppID und ein Kennwort oder Zertifikat können in Verbindungszeichenfolgen ähnlich wie ein UPN verwendet werden.

PowerShell

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Verwenden des „Az.AnalysisServices“-Moduls

Wenn Sie einen Dienstprinzipal für Ressourcenverwaltungsvorgänge mit dem Az.AnalysisServices-Modul nutzen, verwenden Sie das Cmdlet Connect-AzAccount.

Im folgenden Beispiel werden appID und ein Kennwort verwendet, um Vorgänge auf Steuerungsebene für die Synchronisierung in schreibgeschützte Replikate und für das Hoch-/Aufskalieren durchzuführen:

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $PlainPWord,
        [Parameter(Mandatory=$true)] [String] $TenantId
       )
$PWord = ConvertTo-SecureString -String $PlainPWord -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

# Connect using Az module
Connect-AzAccount -Credential $Credential -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx"

# Synchronize a database for query scale out
Sync-AzAnalysisServicesInstance -Instance "asazure://westus.asazure.windows.net/testsvr" -Database "testdb"

# Scale up the server to an S1, set 2 read-only replicas, and remove the primary from the query pool. The new replicas will hydrate from the synchronized data.
Set-AzAnalysisServicesServer -Name "testsvr" -ResourceGroupName "testRG" -Sku "S1" -ReadonlyReplicaCount 2 -DefaultConnectionMode Readonly

Verwenden des SqlServer-Moduls

Im folgenden Beispiel werden AppID und ein Kennwort verwendet, um einen Aktualisierungsvorgang für eine Modelldatenbank auszuführen:

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

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

Invoke-ProcessTable -Server "asazure://westcentralus.asazure.windows.net/myserver" -TableName "MyTable" -Database "MyDb" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

AMO und ADOMD

Beim Herstellen von Verbindungen mit Clientanwendungen und Web-Apps, unterstützen AMO- und ADOMD-Clientbibliotheken und installierbare NuGet-Pakete (Version 15.0.2 und höher) Dienstprinzipale in Verbindungszeichenfolgen mit der folgenden Syntax: app:AppID und Kennwort oder cert:thumbprint.

Im folgenden Beispiel werden appID und ein password verwendet, um einen Aktualisierungsvorgang für eine Modelldatenbank auszuführen:

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data Source=asazure://westus.asazure.windows.net/<servername>;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();

Nächste Schritte

Anmelden mit Azure PowerShell
Aktualisieren mit Logic Apps
Aktualisieren mit Azure Automation
Hinzufügen eines Dienstprinzipals zur Serveradministratorrolle
Automatisieren von Arbeitsbereichs- und Datasetaufgaben in Power BI Premium mithilfe von Dienstprinzipalen