Partilhar via


Automação com entidades de serviço

As entidades de serviço são um recurso de aplicativo Microsoft Entra que você cria em seu locatário para executar operações autônomas de nível de serviço e recurso. Eles são um tipo exclusivo de identidade de usuário com um ID de aplicativo e senha ou certificado. Um principal de serviço tem apenas as permissões necessárias para executar tarefas definidas pelas funções e permissões para as quais está atribuído.

Nos Analysis Services, os principais de serviço são usados com a Automação do Azure, o modo sem supervisão do PowerShell, aplicações cliente personalizadas e aplicações Web para automatizar tarefas comuns. Por exemplo, o provisionamento de servidores, a implantação de modelos, a atualização de dados, a escala/redução e a pausa/retomada podem ser automatizados usando entidades de serviço. As permissões são atribuídas às entidades de serviço por meio da associação de função, de forma semelhante às contas UPN padrão do Microsoft Entra.

O Analysis Services não oferece suporte a operações executadas por identidades gerenciadas usando entidades de serviço. Para saber mais, consulte Identidades gerenciadas para recursos do Azure e serviços do Azure que oferecem suporte à autenticação do Microsoft Entra.

Criar entidades de serviço

As entidades de serviço podem ser criadas no portal do Azure ou usando o PowerShell. Para saber mais, consulte:

Criar Service Principal - Portal Azure
Criar principal de serviço - PowerShell

Armazenar credenciais e ativos de certificado na Automação do Azure

As credenciais e os certificados da entidade de serviço podem ser armazenados com segurança no Azure Automation para operações de runbook. Para saber mais, consulte:

Ativos de credenciais na Automação do Azure
Ativos de certificado na Automação do Azure

Adicionar entidades de serviço à função de administrador do servidor

Antes de poder usar uma entidade de serviço para operações de gerenciamento de servidor do Analysis Services, você deve adicioná-la à função de administradores de servidor. Os principais de serviço têm de ser adicionados diretamente à função de administrador do servidor. Não há suporte para adicionar uma entidade de serviço a um grupo de segurança e, em seguida, adicionar esse grupo de segurança à função de administrador do servidor. Para saber mais, consulte Adicionar uma entidade de serviço à função de administrador do servidor.

Entidades de serviço em cadeias de conexão

O appID e a senha ou certificado do principal de serviço podem ser usados em cadeias de conexão da mesma forma que um UPN.

PowerShell

Observação

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, consulte Migrar o Azure PowerShell do AzureRM para o Az.

Usando o módulo Az.AnalysisServices

Ao usar uma entidade de serviço para operações de gerenciamento de recursos com o módulo Az.AnalysisServices, use Connect-AzAccount cmdlet.

No exemplo a seguir, appID e uma senha são usados para executar operações do plano de controlo para sincronização com réplicas de leitura única e escalar para cima/fora.

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

Usando o módulo SQLServer

No exemplo a seguir, appID e uma senha são usados para executar uma operação de atualização do banco de dados modelo:

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

Ao conectar-se com aplicações cliente e aplicações web, as bibliotecas cliente AMO e ADOMD, a partir da versão 15.0.2, e os pacotes instaláveis do NuGet, suportam entidades de serviço em cadeias de conexão usando a seguinte sintaxe: app:AppID e senha ou cert:thumbprint.

No exemplo a seguir, appID e a password são usados para executar uma operação de atualização do banco de dados modelo:

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

Próximos passos

Entrar com o Azure PowerShell
Atualizar com aplicativos lógicos
Atualizar com a Automação do Azure
Adicionar um service principal à função de administrador do servidor
Automatize tarefas de espaço de trabalho e conjunto de dados do Power BI Premium com entidades de serviço