Automatización con entidades de servicio

Las entidades de servicio son un recurso de aplicación de Azure Active Directory que se crean en el inquilino para realizar operaciones desatendidas de recursos y a nivel de servicio. Son un tipo único de identidad de usuario con un identificador de la aplicación y una contraseña o un certificado. Una entidad de servicio tiene los permisos necesarios para realizar tareas definidas por los roles y permisos para los que se asigna.

En Analysis Services, las entidades de servicio se usan con Azure Automation, el modo desatendido de PowerShell, las aplicaciones cliente personalizadas y las aplicaciones web para automatizar tareas comunes. Por ejemplo, las tareas de aprovisionamiento de servidores, implementación de modelos, actualización de datos, escalado vertical y reducción vertical y pausa y reanudación pueden automatizarse con el uso de las entidades de servicio. Los permisos se asignan a las entidades de servicio con la pertenencia a roles, como las cuentas de UPN de Azure AD regulares.

Analysis Services también admite las operaciones realizadas por las identidades administradas mediante entidades de servicio. Para obtener más información, vea ¿Qué es Managed Identities for Azure Resources? y Servicios de Azure que admiten la autenticación de Azure AD.

Creación de entidades de servicio

Las entidades de servicio se pueden crear en Azure Portal o con PowerShell. Para obtener más información, consulte:

Creación de una entidad de servicio: Azure Portal
Creación de una entidad de servicio: PowerShell

Almacenamiento de recursos de credenciales y certificados en Azure Automation

Las credenciales y los certificados de las entidades de servicio se pueden almacenar de forma segura en Azure Automation para las operaciones de runbook. Para obtener más información, consulte:

Recursos de credenciales en Azure Automation
Recursos de certificados en Azure Automation

Incorporación de entidades de servicio al rol de administrador del servidor

Antes de poder usar una entidad de servicio para las operaciones de administración del servidor de Analysis Services, debe agregarla al rol de administradores del servidor. Las entidades de servicio deben agregarse directamente al rol Administrador del servidor. La incorporación de una entidad de servicio a un grupo de seguridad y, posteriormente, de ese grupo de seguridad al rol Administrador del servidor, no se admite. Para más información, vea Incorporación de una entidad de servicio al rol de administrador del servidor.

Entidades de servicio en las cadenas de conexión

El identificador de aplicación y la contraseña o el certificado de las entidades de servicio se pueden usar en las cadenas de conexión igual que un UPN.

PowerShell

Nota:

Para interactuar con Azure, se recomienda el módulo de Azure Az de PowerShell. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Uso del módulo Az.AnalysisServices

Al usar una entidad de servicio para las operaciones de administración de recursos con el módulo Az.AnalysisServices, emplee el cmdlet Connect-AzAccount.

En el ejemplo siguiente, se usan appID y una contraseña para realizar operaciones de plano de control para la sincronización en réplicas de solo lectura y el escalado vertical u horizontal:

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"

# Syncronize 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

Uso del módulo SQLServer

En el ejemplo siguiente, se usa el identificador de aplicación y una contraseña para realizar una operación de actualización de la base de datos 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 y ADOMD

Al conectarse con aplicaciones cliente y aplicaciones web, los paquetes instalables de la versión 15.0.2 y versiones posteriores de las bibliotecas cliente de AMO y ADOMD de NuGet admiten entidades de servicio en las cadenas de conexión con el uso de la siguiente sintaxis: app:AppID y la contraseña o cert:thumbprint.

En el ejemplo siguiente, se usan un appID y una password para realizar una operación de actualización de la base de datos 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();

Pasos siguientes

Inicio de sesión con Azure PowerShell
Actualización con Logic Apps
Actualización con Azure Automation
Incorporación de una entidad de servicio al rol de administrador del servidor
Automatización de las tareas del conjunto de datos y el área de trabajo de Power BI Premium con entidades de servicio