受控身分識別認證輸出到 Power BI 讓 Stream Analytics 作業可以直接存取您的 Power BI 帳號內的工作區。 此功能讓串流分析工作部署能完全自動化,因為使用者不再需要透過 Azure 入口網站互動登入 Power BI。 此外,長期執行並將資料寫入 Power BI 的作業現在有更好的支援,因為不需要定期重新授權該作業。
本文將說明如何透過 Azure 入口網站及 Azure Resource Manager 部署,啟用 Stream Analytics 作業的 Power BI 輸出的管理身份。
Important
Power BI 中的即時串流功能即將被淘汰。 自 2027 年 10 月 31 日起,使用者無法建立使用 Power BI 輸出連接器的 Azure 串流分析 工作,且使用此連接器的現有工作將停止執行。 Microsoft 建議在 Microsoft Fabric 中探索即時智慧,以應對即時情境。 關於遷移指引,請參閱 power-bi-output.md 條目。
Note
Power BI 的輸出僅支援系統指派的受控身份。 目前不支援在 Power BI 輸出中使用使用者指派的管理身份。
Prerequisites
要使用此功能,您需要具備以下先決條件:
- 一個Power BI帳號,持有Pro授權。
- 你的 Power BI 帳戶內升級過的工作空間。 更多資訊請參閱 Power BI 的公告。
使用 Azure 入口網站建立一個串流分析工作
建立一個新的 Stream Analytics 職缺,或在 Azure 入口網站開啟現有職缺。
從螢幕左側的選單列,選擇設定中的「受管理身份」。
在 選擇身份時,選擇 系統分配的身份。 然後,選取儲存。
在 受控身分識別中,確認你已看到指派給串流分析作業的 主體識別碼 和 主體名稱。 主體名稱應該和你的串流分析職缺名稱相同。
在設定輸出前,請依照本文 Give Stream Analytics 工作進入您的Power BI工作區 區塊的指示,讓 Stream Analytics 工作取得您的 Power BI 工作空間存取權。
到你的串流分析職缺中的Outputs區塊,選擇+ Add,然後選擇Power BI。 然後,選擇 Authorize 按鈕,並以您的 Power BI 帳號登入。
授權後,下拉選單會顯示你能存取的所有工作區。 選擇你在前一步授權的工作區。 然後選擇 「受管理身份 」作為 認證模式。 最後,選擇 儲存 按鈕。
Azure 資源管理員部署
Azure Resource Manager 讓您能完全自動化 Stream Analytics 工作的部署。 你可以用 Azure PowerShell 或
透過在 Resource Manager 範本的資源部分中加入以下屬性,建立一個包含管理身分的 Microsoft.StreamAnalytics/streamingjobs 資源:
"identity": { "type": "SystemAssigned", }此屬性指示 Azure Resource Manager 為您的串流分析作業建立並管理身分識別。 以下範例展示了一個資源管理器範本,該範本發行了一個啟用了管理身份的 Stream Analytics 作業,以及一個使用管理身份的 Power BI 輸出接收端。
{ "$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 工作區的權限」 一節。
授予串流分析作業存取你的 Power BI 工作區的權限
建立 Stream Analytics 工作後,給它存取 Power BI 工作區的權限。 在授予作業存取權之後,請等待幾分鐘讓該身分識別完成傳遞與生效。
使用 Power BI 介面
Note
要透過 UI 將 Stream Analytics 工作加入你的 Power BI 工作區,你也需要在 Power BI 管理入口網站的 Developer settings 啟用服務主體存取權限。 欲了解更多資訊,請參閱 服務主體入門。
進入工作區的存取設定。 欲了解更多資訊,請參閱 「授權你工作區的存取權」。
在文字框輸入你的 Stream Analytics 職缺名稱 ,並選擇 貢獻者作為存取層級。
選擇 新增 並關閉窗格。
使用 Power BI 的 PowerShell cmdlets
安裝 Power BI
MicrosoftPowerBIMgmtPowerShell 指令集。Important
請確保你使用的是 1.0.821 或更新版本的指令。
Install-Module -Name MicrosoftPowerBIMgmt登入 Power BI。
Login-PowerBI將你的串流分析作業新增為該工作區的貢獻者。
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
使用 Power BI REST API
你可以直接使用「新增群組使用者」的 REST API,將串流分析作業新增為該工作區的貢獻者。 完整文件請參閱 「群組 - 新增群組使用者」。
範例要求
POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/users
請求主體
{
"groupUserAccessRight": "Contributor",
"identifier": "<principal-id>",
"principalType": "App"
}
使用服務主體來授予 ASA 作業的受控識別權限。
在自動化部署中,無法使用互動式登入來授予 ASA 作業存取 Power BI 工作區的權限。 你可以使用服務主體來授予 ASA 作業的受控識別權限。 你可以用 PowerShell 來達成這個方法:
Connect-PowerBIServiceAccount -ServicePrincipal -TenantId "<tenant-id>" -CertificateThumbprint "<thumbprint>" -ApplicationId "<app-id>"
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
移除受管理身份
你為 Stream Analytics 工作建立的管理身份只有在你刪除該工作時才會被刪除。 無法在不刪除作業的情況下刪除該受控識別。 如果你不想再使用管理身份,可以更改輸出的認證方式。 管理身份會持續存在,直到你刪除該工作為止。 如果你決定再次使用受管身份驗證,則會使用受管理身份。
Limitations
這項功能有下列限制:
經典的 Power BI 工作區不被支援。
沒有 Microsoft Entra ID 的 Azure 帳號不被支援。
不支援多租戶存取。 你為特定 Stream Analytics 工作建立的服務主體必須存在於你創建該工作時所使用的同一個 Microsoft Entra 租戶中。 你無法用它來搭配位於不同 Microsoft Entra 租戶中的資源。
不支援使用者指派身份。 你不能輸入自己的服務主體來供你的 Stream Analytics 工作使用。 Azure 串流分析 必須產生服務主體。