Power BIへの出力用の管理 ID 認証は、Stream Analytics ジョブがPower BI アカウント内のワークスペースに直接アクセスできるようにします。 この機能を使用すると、ユーザーが Azure ポータルを使用してPower BIに対話形式でサインインする必要がなくなったため、Stream Analytics ジョブのデプロイを完全に自動化できます。 また、ジョブを定期的に再認証する必要がないため、Power BIに書き込む実行時間の長いジョブがサポートされるようになりました。
この記事では、Azure ポータルとAzure Resource Managerデプロイを使用して、Stream Analytics ジョブのPower BI出力に対してマネージド ID を有効にする方法について説明します。
Important
Power BI でのリアルタイム ストリーミングは廃止されます。 2027 年 10 月 31 日以降、ユーザーは Power BI 出力コネクタを使用するAzure Stream Analytics ジョブを作成できません。このコネクタを使用する既存のジョブは実行を停止します。 Microsoftでは、リアルタイム のシナリオでMicrosoft Fabricの Real-Time インテリジェンスを探索することをお勧めします。 移行ガイダンスについては、power-bi-output.md の記事を参照してください。
Note
Power BI出力では、システム割り当てマネージド ID のみがサポートされます。 現在、Power BI出力でのユーザー割り当てマネージド ID の使用はサポートされていません。
Prerequisites
この機能を使用するには、次の前提条件が必要です。
- Pro ライセンスを持つPower BI アカウント。
- Power BI アカウント内のアップグレードされたワークスペース。 詳細については、Power BIのお知らせを参照してください。
Azure ポータルを使用して Stream Analytics ジョブを作成する
新しい Stream Analytics ジョブを作成するか、Azure ポータルで既存のジョブを開きます。
画面の左側にあるメニュー バーで、[設定] で [マネージド ID] を選択します。
[ ID の選択] で、[ システム割り当て ID] を選択します。 次に、[保存] を選択します。
マネージド ID で、Stream Analytics ジョブに割り当てられているプリンシパル ID とプリンシパル名が表示されることを確認します。 プリンシパル名は、Stream Analytics ジョブ名と同じである必要があります。
出力を構成する前に、この「Stream Analytics ジョブに Power BI ワークスペースへのアクセス権を付与する」セクションに従ってStream Analytics ジョブにPower BIワークスペースへのアクセスを許可してください。
Stream Analytics ジョブの Outputs セクションに移動し、+ Add を選択してから、Power BI を選択します。 次に、Authorize ボタンを選択し、Power BI アカウントでサインインします。
承認されると、アクセス権を持つすべてのワークスペースがドロップダウン リストに表示されます。 前の手順で承認したワークスペースを選択します。 次に、認証モードとして [マネージド ID] を選択します。 最後に、[ 保存 ] ボタンを選択します。
Azure Resource Managerデプロイ
Azure Resource Managerを使用すると、Stream Analytics ジョブのデプロイを完全に自動化できます。 Azure PowerShellまたは Azure CLIを使用して、Resource Manager テンプレートをデプロイできます。 次の例では、Azure CLIを使用します。
Microsoft.StreamAnalytics/streamingjobsリソースを作成してください。 "identity": { "type": "SystemAssigned", }このプロパティにより、Stream Analytics ジョブの ID を作成し、管理するように Azure Resource Manager に通知されます。 次の例は、マネージド ID が有効な Stream Analytics ジョブと、マネージド ID を使用するPower BI出力シンクをデプロイするResource Manager テンプレートを示しています。
{ "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ { "apiVersion": "2017-04-01-preview", "name": "pbi_managed_id", "location": "[resourceGroup().location]", "type": "Microsoft.StreamAnalytics/StreamingJobs", "identity": { "type": "systemAssigned" }, "properties": { "sku": { "name": "standard" }, "outputs":[ { "name":"output", "properties":{ "datasource":{ "type":"PowerBI", "properties":{ "dataset": "dataset_name", "table": "table_name", "groupId": "01234567-89ab-cdef-0123-456789abcdef", "authenticationMode": "Msi" } } } } ] } } ] }次の Azure CLI コマンドを使用して、前のジョブをリソース グループ ExampleGroup にデプロイします。
az deployment group create --resource-group ExampleGroup -template-file StreamingJob.jsonジョブを作成したら、Azure Resource Managerを使用してジョブの完全な定義を取得します。
az resource show --ids /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/StreamingJobs/<resource-name>上記のコマンドは、次のような応答を返します。
{ "id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/streamingjobs/<resource-name>", "identity": { "principalId": "<principal-id>", "tenantId": "<tenant-id>", "type": "SystemAssigned", "userAssignedIdentities": null }, "kind": null, "location": "West US", "managedBy": null, "name": "<resource-name>", "plan": null, "properties": { "compatibilityLevel": "1.0", "createdDate": "2019-07-12T03:11:30.39Z", "dataLocale": "en-US", "eventsLateArrivalMaxDelayInSeconds": 5, "jobId": "<job-id>", "jobState": "Created", "jobStorageAccount": null, "jobType": "Cloud", "outputErrorPolicy": "Stop", "package": null, "provisioningState": "Succeeded", "sku": { "name": "Standard" } }, "resourceGroup": "<resource-group>", "sku": null, "tags": null, "type": "Microsoft.StreamAnalytics/streamingjobs" }Power BI REST API を使用して Stream Analytics ジョブを Power BI ワークスペースに追加する場合は、返された
principalIdを書き留めます。ジョブが作成されたら、この記事の「Power BI ワークスペースへの Stream Analytics ジョブのアクセス権を付与する」セクションに進みます。
Stream Analytics ジョブに Power BI ワークスペースへのアクセス権を付与する
Stream Analytics ジョブを作成したら、Power BI ワークスペースへのアクセス権を付与します。 ジョブにアクセス権を付与したら、ID が反映されるまで数分待ちます。
Power BI UI を使用する
Note
UI を使用して Stream Analytics ジョブを Power BI ワークスペースに追加するには、Power BI管理ポータルの Developer 設定でサービス プリンシパル アクセスを有効にする必要もあります。 詳細については、「 サービス プリンシパルの概要」を参照してください。
ワークスペースのアクセス設定に移動します。 詳細については、「 ワークスペースへのアクセス権を付与する」を参照してください。
テキスト ボックスに Stream Analytics ジョブの名前を入力し、アクセス レベルとして [共同作成者 ] を選択します。
[ 追加] を選択し、ウィンドウを閉じます。
Power BI PowerShell コマンドレットを使用する
Power BI
MicrosoftPowerBIMgmtPowerShell コマンドレットをインストールします。Important
バージョン 1.0.821 以降のコマンドレットを使用していることを確認します。
Install-Module -Name MicrosoftPowerBIMgmtPower BIにサインインします。
Login-PowerBIStream Analytics ジョブを共同作成者としてワークスペースに追加します。
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
Power BI REST API を使用する
"グループ ユーザーの追加" REST API を直接使用して、Stream Analytics ジョブを共同作成者としてワークスペースに追加できます。 完全なドキュメントについては、「 グループ - グループ ユーザーの追加」を参照してください。
サンプル要求
POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/users
要求本文
{
"groupUserAccessRight": "Contributor",
"identifier": "<principal-id>",
"principalType": "App"
}
ASA ジョブのマネージド ID にアクセス許可を付与するためにサービス プリンシパルを使用する。
自動デプロイでは、対話型サインインを使用して ASA ジョブに Power BI ワークスペースへのアクセス権を付与することはできません。 サービス プリンシパルを使用して、ASA ジョブのマネージド ID に対するアクセス許可を付与できます。 この方法には PowerShell を使用できます。
Connect-PowerBIServiceAccount -ServicePrincipal -TenantId "<tenant-id>" -CertificateThumbprint "<thumbprint>" -ApplicationId "<app-id>"
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
マネージド ID を削除する
Stream Analytics ジョブ用に作成したマネージド ID は、ジョブを削除した場合にのみ削除されます。 ジョブを削除せずにマネージド ID を削除する方法はありません。 マネージド ID を使用しなくなった場合は、出力の認証方法を変更できます。 マネージド ID は、ジョブを削除するまで存在し続けます。 マネージド ID 認証をもう一度使用する場合は、マネージド ID が使用されます。
Limitations
この機能には次の制限があります。
クラシック Power BI ワークスペースはサポートされていません。
Microsoft Entra IDのないAzure アカウントはサポートされていません。
マルチテナント アクセスはサポートされていません。 特定の Stream Analytics ジョブに対して作成するサービス プリンシパルは、ジョブを作成したのと同じMicrosoft Entra テナントに存在する必要があります。 別のMicrosoft Entra テナントに存在するリソースでは使用できません。
ユーザー割り当て ID はサポートされていません。 Stream Analytics ジョブで使用する独自のサービス プリンシパルを入力することはできません。 Azure Stream Analyticsはサービス プリンシパルを生成する必要があります。