Freigeben über


Automatisierung mit Dienstprinzipalen

Dienstprinzipale sind eine Microsoft Entra-Anwendungsressource, die Sie innerhalb Ihres Mandanten erstellen, um Vorgänge auf unbeaufsichtigten Ressourcen- und Dienstebenen auszuführen. Sie sind eine eindeutige Art von Benutzeridentität mit einer Anwendungs-ID und einem Kennwort oder Zertifikat. Ein Dienstprinzipal verfügt nur über diese Berechtigungen, die zum Ausführen von Aufgaben erforderlich sind, die von den Rollen und Berechtigungen definiert werden, für die er zugewiesen ist.

In Analysis Services werden Dienstprinzipale mit Azure Automation, PowerShell unbeaufsichtigtem Modus, benutzerdefinierten Clientanwendungen und Web-Apps verwendet, um allgemeine Aufgaben zu automatisieren. So können z. B. Bereitstellungsserver, Bereitstellungsmodelle, Datenaktualisierung, Hoch-/Abwärtsskalierung und Anhalten/Fortsetzen mithilfe von Dienstprinzipalen automatisiert werden. Berechtigungen werden Dienstprinzipalen über die Rollenmitgliedschaft zugewiesen, ähnlich wie normale Microsoft Entra UPN-Konten.

Analysis Services unterstützt keine Vorgänge, die von verwalteten Identitäten mithilfe von Dienstprinzipalen ausgeführt werden. Weitere Informationen finden Sie unter Verwaltete Identitäten für Azure-Ressourcen und Azure-Dienste, die 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:

Dienstprinzipalobjekt erstellen – Azure-Portal
Dienstprinzipal erstellen – PowerShell

Speichern von Anmeldeinformationen und Zertifikatressourcen in Azure Automation

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

Anmeldeinformationsobjekte in Azure Automation
Zertifikatressourcen in Azure Automation

Hinzufügen von Dienstprinzipalen zur Rolle des Serveradministrators

Bevor Sie einen Dienstprinzipal für Analysis Services-Serververwaltungsvorgänge verwenden können, müssen Sie ihn der Server-Administratorrolle 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 -Kennwort oder -Zertifikat können in Verbindungszeichenfolgen ähnlich wie bei einem 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 von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zu Az.

Verwenden des Az.AnalysisServices-Moduls

Verwenden Sie cmdlet, wenn Sie einen Dienstprinzipal für Ressourcenverwaltungsvorgänge mit dem Az.AnalysisServices-Modul verwenden Connect-AzAccount .

Im folgenden Beispiel werden appID und ein Kennwort verwendet, um Kontrollebenenvorgänge für die Synchronisierung mit schreibgeschützten Replikaten durchzuführen und hochzuskalieren/vergrößern.

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 Modelldatenbankaktualisierungsvorgang 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 einer Verbindung mit Clientanwendungen und Web-Apps unterstützen AMO- und ADOMD-Clientbibliotheken Version 15.0.2 und höhere installierbare Pakete von NuGet Dienstprinzipale in Verbindungszeichenfolgen mithilfe der folgenden Syntax: app:AppID und Kennwort oder cert:thumbprint.

Im folgenden Beispiel werden appID und password verwendet, um eine Aktualisierung einer Modelldatenbank durchzufü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
Mit Logik-Apps aktualisieren
Aktualisieren mit Azure Automation
Fügen Sie einen Dienstprinzipal zur Serveradministratorrolle hinzu
Automatisieren von Power BI Premium-Arbeitsbereichs- und Datasetaufgaben mit Dienstprinzipalen