マネージド ID を使用して、Power BI に対して Azure Stream Analytics ジョブを認証する
Power BI への出力のマネージド ID 認証により、Stream Analytics ジョブは Power BI アカウント内のワークスペースに直接アクセスできるようになります。 この機能を使用すると、Stream Analytics ジョブのデプロイを完全に自動化できます。これは、ユーザーが Azure portal 経由で Power BI に対話形式でログインする必要がなくなったためです。 さらに、ジョブを定期的に再認証する必要がないため、Power BI に書き込む長時間実行ジョブのサポートが強化されました。
この記事では、Azure portal を通じて、および Azure Resource Manager デプロイを通じて、Stream Analytics ジョブの Power BI 出力に対してマネージド ID を有効にする方法を示します。
前提条件
この機能を使用するには、次のものが必要です。
Pro ライセンスを持つ Power BI アカウント。
Power BI アカウント内のアップグレードされたワークスペース。 詳細については、この機能の Power BI のお知らせに関する記事を参照してください。
Azure portal を使用して Stream Analytics ジョブを作成する
Azure portal で、新しい Stream Analytics ジョブを作成するか、既存のジョブを開きます。 画面の左側にあるメニュー バーで、 [構成] の下にある [マネージド ID] を選択します。 [システム割り当てマネージド ID を使用] が選択されていることを確認し、画面下部にある [保存] ボタンを選択します。
出力を構成する前に、この記事の「Stream Analytics ジョブに Power BI ワークスペースへのアクセス権を付与する」の手順に従って、Power BI ワークスペースへの Stream Analytics ジョブのアクセス権を付与します。
Stream Analytic のジョブの [出力] セクションに移動し、 [+ 追加] を選択し、 [Power BI] を選択します。 次に、 [承認] ボタンを選択し、Power BI アカウントでログインします。
承認されると、アクセス権のあるすべてのワークスペースがドロップダウン リストに取り込まれます。 前の手順で承認したワークスペースを選択します。 次に、 [認証] で "認証モード" を選択します。 最後に、 [保存] ボタンを選択します。
Azure Resource Manager デプロイ
Azure Resource Manager を使用すると、Stream Analytics ジョブのデプロイを完全に自動化できます。 Azure PowerShell または Azure CLI を使用して、Resource Manager テンプレートをデプロイできます。 次の例では、Azure CLI を使用しています。
Resource Manager テンプレートのリソース セクションに次のプロパティを含めることで、マネージド ID を持つ 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/<subsription-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" を書き留めておきます。
ジョブが作成されたので、この記事の「Stream Analytics ジョブに Power BI ワークスペースへのアクセス権を付与する」セクションを参照してください。
Stream Analytics ジョブに Power BI ワークスペースへのアクセス権を付与する
Stream Analytics ジョブが作成されたので、Power BI ワークスペースへのアクセス権を付与することができます。 ジョブにアクセス権を付与したら、ID が伝達されるまで数分待ちます。
Power BI UI を使用する
注意
UI を使用して Stream Analytics ジョブを Power BI ワークスペースに追加するには、Power BI 管理ポータルの [開発者向け設定] でサービス プリンシパル アクセスを有効にする必要もあります。 詳細については、「サービス プリンシパルの使用を始める」を参照してください。
ワークスペースのアクセス設定に移動します。 詳細については、次の記事を参照してください。「ワークスペースへのアクセスを許可する」
テキストボックスに Stream Analytics ジョブの名前を入力し、アクセス レベルとして [Contributor]\(共同作成者\) を選択します。
[追加] を選択し、ペインを閉じます。
Power BI PowerShell コマンドレットを使用する
Power BI
MicrosoftPowerBIMgmt
PowerShell コマンドレットをインストールします。重要
バージョン 1.0.821 以降のコマンドレットを使用していることを確認してください。
Install-Module -Name MicrosoftPowerBIMgmt
- Power BI にログインします。
Login-PowerBI
- 共同作成者として Stream Analytics ジョブをワークスペースに追加します。
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
Power BI REST API を使用する
"グループ ユーザーの追加" REST API を直接使用して、Stream Analytics ジョブを共同作成者としてワークスペースに追加することもできます。 この API の完全なドキュメントは次の場所にあります。グループ - グループ ユーザーの追加。
要求のサンプル
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 の認証を再度使用する場合に使用されます。
制限事項
この機能の制限は次のとおりです。
クラシック Power BI ワークスペースはサポートされていません。
Azure Active Directory なしの Azure アカウント。
マルチテナント アクセスは、サポートされていません。 特定の Stream Analytics ジョブに対して作成されたサービス プリンシパルは、ジョブが作成された同じ Azure Active Directory テナントに配置する必要があり、別の Azure Active Directory テナントに配置されたリソースでは使用できません。
ユーザー割り当て ID はサポートされていません。 つまり、Stream Analytics ジョブで使用される、独自のサービス プリンシパルを入力することはできません。 サービス プリンシパルは、Azure Stream Analytics で生成する必要があります。