Automation with service principals (Automatização com principais 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. Uma entidade de serviço tem apenas as permissões necessárias para executar tarefas definidas pelas funções e permissões para as quais é atribuída.

No Analysis Services, as entidades de serviço são usadas com a Automação do Azure, o modo autônomo do PowerShell, aplicativos cliente personalizados e aplicativos 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, da mesma forma que as contas UPN normais do Microsoft Entra.

O Analysis Services não suporta operações realizadas por identidades geridas mediante a utilização de principais de serviço. Para saber mais, veja Identidades geridas para recursos do Azure e serviços do Azure que suportam a autenticação do Microsoft Entra.

Criar principais de serviço

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

Criar o principal de serviço - Portal do 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 na Automação do Azure para operações de runbook. Para saber mais, veja:

Recursos de credenciais na Automatização do Azure
Recursos de certificados na Automatizaçã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 da entidade de serviço e a senha ou certificado podem ser usados em cadeias de conexão da mesma forma que um UPN.

PowerShell

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja 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 o cmdlet.

No exemplo a seguir, appID e uma senha são usados para executar operações de plano de controle para sincronização com réplicas somente leitura e escalar/reduzir:

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 aplicativos cliente e aplicativos Web, as bibliotecas de cliente AMO e ADOMD versão 15.0.2 e pacotes instaláveis superiores de entidades de serviço de suporte NuGet 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

Iniciar sessão com o Azure PowerShell
Atualizar com aplicativos lógicos
Atualizar com a Automatização do Azure
Adicionar uma entidade de serviço à 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