Автоматизация с помощью сервисных принципалов

Субъекты-службы — это ресурс приложения Microsoft Entra, который вы создаете в своем клиенте для выполнения операций с ресурсами и уровнями обслуживания без участия пользователя. Это уникальный тип удостоверения пользователя с идентификатором приложения и паролем или сертификатом. Субъект-служба имеет только те разрешения, необходимые для выполнения задач, определенных ролями и разрешениями, для которых она назначена.

В службах Analysis Services учетные записи службы используются с Azure Automation, в неинтерактивном режиме PowerShell, пользовательских клиентских приложениях и веб-приложениях для автоматизации распространенных задач. Например, подготовка серверов, развертывание моделей, обновление данных, масштабирование вверх/вниз и приостановка и возобновление могут быть автоматизированы с помощью служебных принципалов. Разрешения назначаются служебным субъектам через членство в ролях, как и обычные учетные записи пользователей с UPN в Microsoft Entra.

Службы Analysis Services не поддерживают операции, выполняемые управляемыми идентификаторами с использованием служебных субъектов. Дополнительные сведения см. в статье "Управляемые удостоверения" для ресурсов Azure и служб Azure, поддерживающих проверку подлинности Microsoft Entra.

Создайте принципы обслуживания

Субъекты-службы можно создавать на портале Azure или с помощью PowerShell. Дополнительные сведения см. на следующих ресурсах:

Создание учетной записи службы — портал Azure
Создание объекта-службы — PowerShell

Хранение учетных данных и ресурсов сертификатов в службе автоматизации Azure

Учетные данные и сертификаты служебного принципала можно безопасно хранить в службе автоматизации Azure для выполнения операций с рабочими книгами. Дополнительные сведения см. на следующих ресурсах:

Ресурсы учетных данных в службе автоматизации Azure
Ресурсы сертификатов в службе автоматизации Azure

Добавьте служебные принципы в роль администратора сервера

Прежде чем вы сможете использовать служебный принципал для управления сервером Analysis Services, необходимо добавить его в роль администратора сервера. Субъекты-службы необходимо добавлять непосредственно к роли администратора сервера. Добавление субъекта-службы в группу безопасности с последующим добавлением этой группы безопасности к роли администратора сервера не поддерживается. Дополнительные сведения см. в разделе Добавление учетной записи службы в роль администратора сервера.

Субъекты-службы в строках подключения

Идентификатор приложения субъекта-службы и пароль или сертификат можно использовать в строках подключения так же, как и UPN.

PowerShell

Замечание

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Сведения о миграции в модуль Az PowerShell см. в статье "Миграция Azure PowerShell из AzureRM в Az".

Использование модуля Az.AnalysisServices

При использовании учетной записи службы для операций управления ресурсами с модулем Az.AnalysisServices используйте соответствующий командлет Connect-AzAccount.

В следующем примере appID и пароль используются для выполнения операций уровня управления для синхронизации с репликами доступными только для чтения и увеличения масштаба.

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

В следующем примере идентификатор приложения и пароль используются для выполнения операции обновления базы данных модели:

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

При подключении к клиентским приложениям и веб-приложениям клиентские библиотеки AMO и ADOMD версии 15.0.2 и более поздних, устанавливаемые из NuGet, поддерживают использование сервисных главных объектов в строках подключения, применяя следующий синтаксис: app:AppID и пароль или cert:thumbprint.

В следующем примере appID и password используются для выполнения операции обновления базы данных модели.

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

Дальнейшие шаги

Вход с помощью Azure PowerShell
Обновление с помощью Logic Apps
Обновление с помощью службы автоматизации Azure
Добавление субъекта-службы в роль администратора сервера
Автоматизация рабочих областей и наборов данных Power BI Premium с помощью служебных принципалов