サービス プリンシパルによる自動化Automation with service principals

サービス プリンシパルは、リソース/サービス レベルの無人操作を実行する目的でテナント内で作成する Azure Active Directory アプリケーション リソースです。Service principals are an Azure Active Directory application resource you create within your tenant to perform unattended resource and service level operations. アプリケーション ID とパスワードまたは証明書が与えられた、独自のユーザー ID です。They're a unique type of user identity with an application ID and password or certificate. サービス プリンシパルには、割り当てられたロールとアクセス許可によって定義されるタスクを実行するために必要な権限のみが与えられます。A service principal has only those permissions necessary to perform tasks defined by the roles and permissions for which it's assigned.

Analysis Services では、サービス プリンシパルは Azure Automation、PowerShell 無人モード、カスタム クライアント アプリケーション、Web アプリと共に使用し、共通タスクを自動化します。In Analysis Services, service principals are used with Azure Automation, PowerShell unattended mode, custom client applications, and web apps to automate common tasks. たとえば、サーバーのプロビジョニング、モデルのデプロイ、データ更新、拡大縮小、一時停止/再開をすべて、サービス プリンシパルを利用することで自動化できます。For example, provisioning servers, deploying models, data refresh, scale up/down, and pause/resume can all be automated by using service principals. 権限は、通常の Azure AD UPN アカウントとほぼ同じように、ロール メンバーシップを介してサービス プリンシパルに割り当てられます。Permissions are assigned to service principals through role membership, much like regular Azure AD UPN accounts.

サービス プリンシパルの作成Create service principals

サービス プリンシパルは Azure Portal で作成するか、PowerShell を利用して作成できます。Service principals can be created in the Azure portal or by using PowerShell. 詳細については、次を参照してください。To learn more, see:

サービス プリンシパルを作成する - Azure Portal Create service principal - Azure portal
サービス プリンシパルを作成する - PowerShellCreate service principal - PowerShell

Azure Automation に資格情報と証明書資産を保存するStore credential and certificate assets in Azure Automation

Runbook 操作のために、サービス プリンシパルの資格情報と証明書を Azure Automation に安全に格納できます。Service principal credentials and certificates can be stored securely in Azure Automation for runbook operations. 詳細については、次を参照してください。To learn more, see:

Azure Automation の資格情報資産 Credential assets in Azure Automation
Azure Automation の証明書資産Certificate assets in Azure Automation

サービス プリンシパルをサーバー管理者ロールに追加するAdd service principals to server admin role

Analysis Services サーバー管理操作のためにサービス プリンシパルを使用するには、最初にサービス プリンシパルをサーバー管理者ロールに追加する必要があります。Before you can use a service principal for Analysis Services server management operations, you must add it to the server administrators role. 詳細については、「サーバー管理者ロールへのサービス プリンシパルの追加」を参照してください。To learn more, see Add a service principal to the server administrator role.

接続文字列のサービス プリンシパルService principals in connection strings

サービス プリンシパル appID とパスワードまたは証明書は、UPN とほぼ同じように接続文字列で使用できます。Service principal appID and password or certificate can be used in connection strings much the same as a UPN.

PowerShellPowerShell

AzureRM.AnalysisServices モジュールによるリソース管理操作でサービス プリンシパルを使用するとき、Login-AzureRmAccount コマンドレットを使用します。When using a service principal for resource management operations with the AzureRM.AnalysisServices module, use Login-AzureRmAccount cmdlet. SQLServer モジュールによるサーバー操作のためにサービス プリンシパルを使用するとき、Add-AzureAnalysisServicesAccount コマンドレットを使用します。When using a service principal for server operations with the SQLServer module, use Add-AzureAnalysisServicesAccount cmdlet.

次の例では、appID とパスワードを使用し、モデル データベース更新操作を実行します。In the following example, appID and a password are used to perform a model database refresh operation:

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

Add-AzureAnalysisServicesAccount -Credential $Credential -ServicePrincipal -TenantId $TenantId -RolloutEnvironment "westcentralus.asazure.windows.net"

Invoke-ProcessTable -Server "asazure://westcentralus.asazure.windows.net/myserver" -TableName "MyTable" -Database "MyDb" -RefreshType "Full"

AMO と ADOMDAMO and ADOMD

クライアント アプリケーションや Web アプリと接続するとき、AMO と ADOMD のクライアント ライブラリ バージョン 15.0.2 以降の、NuGet からインストールできるパッケージでは、接続文字列にサービス プリンシパルを指定できます。構文 app:AppID とパスワードまたは cert:thumbprint を利用します。When connecting with client applications and web apps, AMO and ADOMD client libraries version 15.0.2 and higher installable packages from NuGet support service principals in connection strings using the following syntax: app:AppID and password or cert:thumbprint.

次の例では、appIDpassword を使用し、モデル データベース更新操作を実行します。In the following example, appID and a password are used to perform a model database refresh operation:

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

次の手順Next steps

Azure PowerShell を使用してサインインする Sign in with Azure PowerShell
サーバー管理者ロールへのサービス プリンシパルの追加Add a service principal to the server administrator role