Share via


Automatisering met service-principals

Service-principals zijn een Microsoft Entra-toepassingsresource die u in uw tenant maakt om bewerkingen zonder toezicht en serviceniveau uit te voeren. Ze zijn een uniek type gebruikersidentiteit met een toepassings-id en wachtwoord of certificaat. Een service-principal heeft alleen de machtigingen die nodig zijn om taken uit te voeren die zijn gedefinieerd door de rollen en machtigingen waaraan deze is toegewezen.

In Analysis Services worden service-principals gebruikt met Azure Automation, de modus zonder toezicht van PowerShell, aangepaste clienttoepassingen en web-apps om algemene taken te automatiseren. Het inrichten van servers, het implementeren van modellen, het vernieuwen van gegevens, omhoog/omlaag schalen en onderbreken/hervatten kan bijvoorbeeld allemaal worden geautomatiseerd met behulp van service-principals. Machtigingen worden toegewezen aan service-principals via rollidmaatschap, net als gewone Microsoft Entra UPN-accounts.

Analysis Services biedt geen ondersteuning voor bewerkingen die worden uitgevoerd door beheerde identiteiten met behulp van service-principals. Raadpleeg Beheerde identiteiten voor Azure-resources en Azure-services die ondersteuning bieden voor Microsoft Entra-verificatie voor meer informatie.

Service-principals maken

Service-principals kunnen worden gemaakt in Azure Portal of met behulp van PowerShell. Raadpleeg voor meer informatie:

Service-principal maken - Azure Portal
Service-principal maken - PowerShell

Referentie- en certificaatassets opslaan in Azure Automation

Referenties en certificaten van de service-principal kunnen veilig worden opgeslagen in Azure Automation voor runbookbewerkingen. Raadpleeg voor meer informatie:

Verbindingsreferentie in Azure Automation
Verbindingsassets in Azure Automation

Service-principals toevoegen aan de serverbeheerdersrol

Voordat u een service-principal kunt gebruiken voor Analysis Services-serverbeheerbewerkingen, moet u deze toevoegen aan de rol serverbeheerders. De service-principals moeten rechtstreeks worden toegevoegd aan de serverbeheerderrol. Het toevoegen van een service-principal aan een beveiligingsgroep en het toevoegen van die beveiligingsgroep aan de serverbeheerdersrol wordt niet ondersteund. Zie Een service-principal toevoegen aan de rol serverbeheerder voor meer informatie.

Service-principals in verbindingsreeks s

Service-principal-appID en wachtwoord of certificaat kunnen worden gebruikt in verbindingsreeks s veel hetzelfde als een UPN.

PowerShell

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Az.AnalysisServices-module gebruiken

Wanneer u een service-principal gebruikt voor resourcebeheerbewerkingen met de Module Az.AnalysisServices , gebruikt u Connect-AzAccount de cmdlet.

In het volgende voorbeeld worden appID en een wachtwoord gebruikt om besturingsvlakbewerkingen uit te voeren voor synchronisatie naar alleen-lezen replica's en omhoog/uitschalen:

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

SQLServer-module gebruiken

In het volgende voorbeeld worden appID en een wachtwoord gebruikt om een modeldatabasevernieuwingsbewerking uit te voeren:

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 en ADOMD

Wanneer u verbinding maakt met clienttoepassingen en web-apps, ondersteunen AMO- en ADOMD-clientbibliotheken versie 15.0.2 en hoger installeerbare pakketten van NuGet service-principals in verbindingsreeks s met behulp van de volgende syntaxis: app:AppID en wachtwoord of cert:thumbprint.

In het volgende voorbeeld appID worden een password modeldatabasevernieuwingsbewerking uitgevoerd:

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

Volgende stappen

Aanmelden met Azure PowerShell
Vernieuwen met Logic Apps
Vernieuwen met Azure Automation
Een service-principal toevoegen aan de rol serverbeheerder
Power BI Premium-werkruimte- en gegevenssettaken automatiseren met service-principals