Compartir vía


Automatización de tareas de modelo semántico y área de trabajo Premium con entidades de servicio

Los principales de servicio son un registro de aplicación de Microsoft Entra ID que crea dentro de su inquilino para realizar operaciones de recursos y nivel de servicio desatendidas. Son un tipo único de identidad de usuario con un nombre de aplicación, un identificador de aplicación, un identificador de inquilino y un secreto de cliente o un certificado para una contraseña.

Power BI Premium usa la misma funcionalidad de principal de servicio que Power BI Embedded. Para más información, consulte Inserción de contenido de Power BI con entidades de servicio.

En Power BI Premium, se pueden usar principales de servicio con el punto de conexión XMLA (análisis XML) para automatizar tareas de administración semántica de modelos, como aprovisionamiento de áreas de trabajo, implementación de modelos y actualización de modelos semánticos con:

  • PowerShell.
  • Mediante Azure Automation.
  • Azure Logic Apps.
  • Aplicaciones cliente personalizadas.

Solo las áreas de trabajo nuevas admiten conexiones de punto de conexión XMLA mediante entidades de servicio. No se admiten áreas de trabajo clásicas. Un principal de servicio solo tiene los permisos necesarios para realizar tareas en los espacios de trabajo donde está asignado. Los permisos se asignan a través del acceso al área de trabajo, de forma muy similar a las cuentas normales de UPN (nombre principal de usuario).

Para realizar operaciones de escritura, la carga de trabajo de Modelos semánticos de la capacidad debe tener habilitado el punto de conexión XMLA para las operaciones de lectura y escritura. Los modelos semánticos publicados desde Power BI Desktop deben tener habilitada la característica de formato de metadatos mejorado .

Crear un principal de servicio

Las entidades de servicio se crean como un registro de aplicaciones en el portal de Azure o mediante PowerShell. Al crear el principal del servicio, asegúrese de copiar y guardar por separado el nombre de la aplicación, el identificador de aplicación (cliente), el identificador de directorio (inquilino) y el secreto del cliente. Para conocer los pasos para crear un principal de servicio, consulte:

Creación de un grupo de seguridad de Microsoft Entra

De forma predeterminada, las entidades de servicio tienen acceso a cualquier configuración de inquilino para la que estén habilitadas. En función de la configuración del administrador, el acceso puede incluir grupos de seguridad específicos o toda la organización.

Para restringir el acceso de la entidad de servicio a una configuración de inquilino específica, puede permitir el acceso a grupos de seguridad específicos. Alternativamente, puede crear un grupo de seguridad dedicado para principales de servicio y excluirlo de la configuración del tenant deseada. Para crear un grupo de seguridad y agregar una entidad de servicio, consulte Crear un grupo básico y agregar miembros mediante el identificador de Microsoft Entra.

Habilitación de entidades de servicio

Para empezar a usar entidades de servicio en Power BI, un administrador debe habilitar el acceso a la entidad de servicio en el portal de administración de Power BI.

  1. Vaya al portal de administración de Power BI y seleccione Configuración de inquilinos.
  2. Desplácese hasta Configuración del desarrollador y después expanda Las entidades de servicio pueden llamar a las API públicas de Fabric.
  3. Seleccione Habilitado.
  4. Para aplicar permisos a un grupo de seguridad, seleccione Grupos de seguridad específicos (Recomendado) .
  5. Escriba el nombre del grupo.
  6. Seleccione Aplicar.

Acceso al área de trabajo

Para que el principal de servicio tenga los permisos necesarios para realizar operaciones en un área de trabajo Premium y sobre el modelo semántico, debe agregar al principal de servicio como miembro o administrador del área de trabajo. Se describe aquí cómo usar el acceso al área de trabajo en el servicio de Power BI, pero también puede usar la API REST de Agregar Usuario a Grupo.

  1. En el servicio Power BI de un área de trabajo, seleccione Más>acceso al área de trabajo.

    Captura de pantalla que muestra una lista de áreas de trabajo. Cuantos más iconos y acceso al área de trabajo estén resaltados.

  2. Busque por nombre de aplicación y agregue la entidad de servicio como administrador o miembro al área de trabajo.

Cadenas de conexión para el punto de conexión XMLA

Después de crear una entidad de servicio, habilite las entidades de servicio para el inquilino y agregue la entidad de servicio al acceso al área de trabajo, úsela como identidad de usuario en cadenas de conexión con el punto de conexión XMLA. La diferencia es que, en lugar de los parámetros user id y password, especifique el identificador de aplicación, el identificador de arrendatario y el secreto de aplicación.

Data Source=powerbi://api.powerbi.com/v1.0/myorg/<workspace name>; Initial Catalog=<dataset name>;User ID=app:<appId>@<tenantId>;Password=<app_secret>;

PowerShell

Abra una sesión de PowerShell para ejecutar el código de ejemplo siguiente.

Uso del módulo SQLServer

En el ejemplo siguiente, AppId, TenantIdy AppSecret se usan para autenticar una operación de actualización del modelo semántico:

Param (
        [Parameter(Mandatory=$true)] [String] $AppId,
        [Parameter(Mandatory=$true)] [String] $TenantId,
        [Parameter(Mandatory=$true)] [String] $AppSecret
       )
$PWord = ConvertTo-SecureString -String $AppSecret -AsPlainText -Force

$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $AppId, $PWord

Invoke-ProcessTable -Server "powerbi://api.powerbi.com/v1.0/myorg/myworkspace" -TableName "mytable" -DatabaseName "mydataset" -RefreshType "Full" -ServicePrincipal -ApplicationId $AppId -TenantId $TenantId -Credential $Credential

Objetos de administración de análisis (AMO) y ADOMD.NET

Al conectarse con aplicaciones cliente y aplicaciones web, puede usar bibliotecas cliente de AMO y ADOMD versión 15.1.42.26 (junio de 2020) y paquetes instalables posteriores de NuGet para admitir entidades de servicio en cadenas de conexión mediante la sintaxis siguiente: app:AppID y la contraseña o cert:thumbprint.

En el ejemplo siguiente, appID y password los valores se usan para realizar una operación de actualización de base de datos de modelo:

string appId = "xxx";
string authKey = "yyy";
string connString = $"Provider=MSOLAP;Data source=powerbi://api.powerbi.com/v1.0/<tenant>/<workspacename>;Initial catalog=<datasetname>;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();