Použití spravované identity k ověření úlohy Azure Stream Analytics v Power BI

Ověřování spravované identity pro výstup do Power BI poskytuje úlohám Stream Analytics přímý přístup k pracovnímu prostoru v rámci vašeho účtu Power BI. Tato funkce umožňuje plně automatizovat nasazení úloh Stream Analytics, protože už není potřeba, aby se uživatel interaktivně přihlásil k Power BI přes Azure Portal. Kromě toho jsou teď podporované dlouhotrvající úlohy, které zapisují do Power BI, protože úlohu nebudete muset pravidelně znovu ověřit.

V tomto článku se dozvíte, jak povolit spravovanou identitu pro výstupy Power BI úlohy Stream Analytics prostřednictvím webu Azure Portal a prostřednictvím nasazení Azure Resource Manageru.

Poznámka:

Výstup Power BI podporuje jenom spravované identity přiřazené systémem. V současné době se nepodporuje použití spravovaných identit přiřazených uživatelem s výstupem Power BI.

Předpoklady

Před použitím této funkce musíte mít následující požadavky:

  • Účet Power BI s licencí Pro.
  • Upgradovaný pracovní prostor v rámci účtu Power BI. Další informace najdete v oznámení Power BI.

Vytvoření úlohy Stream Analytics pomocí webu Azure Portal

  1. Vytvořte novou úlohu Stream Analytics nebo otevřete existující úlohu na webu Azure Portal.

  2. V řádku nabídek, který se nachází na levé straně obrazovky, vyberte spravovanou identitu umístěnou v části Nastavení.

    Screenshot showing the Managed Identity page with Select identity button selected.

  3. Na stránce Vybrat identitu vyberte identitu přiřazenou systémem*. Pokud vyberete druhou možnost, zadejte spravovanou identitu, kterou chcete použít. Potom vyberte Uložit.

    Screenshot showing the Select identity page with System assigned identity selected.

  4. Na stránce Spravovaná identita ověřte, že se zobrazí hlavní ID a hlavní název přiřazený k úloze Stream Analytics. Hlavní název by měl být stejný jako název vaší úlohy Stream Analytics.

  5. Před konfigurací výstupu udělte úloze Stream Analytics přístup k pracovnímu prostoru Power BI podle pokynů v části Udělení přístupu k pracovnímu prostoru Power BI v tomto článku v úloze Stream Analytics.

  6. Přejděte do části Výstupy úlohy Stream Analytic, vyberte + Přidat a pak zvolte Power BI. Pak vyberte tlačítko Autorizovat a přihlaste se pomocí účtu Power BI.

    Authorize with Power BI account

  7. Po autorizaci se rozevírací seznam naplní všemi pracovními prostory, ke kterým máte přístup. Vyberte pracovní prostor, který jste autorizovali v předchozím kroku. Pak jako režim ověřování vyberte spravovanou identitu . Nakonec vyberte tlačítko Uložit .

    Screenshot showing the Power BI output configuration with Managed identity authentication mode selected.

Nasazení podle modelu Azure Resource Manager

Azure Resource Manager umožňuje plně automatizovat nasazení úlohy Stream Analytics. Šablony Resource Manageru můžete nasadit pomocí Azure PowerShellu nebo Azure CLI. Následující příklady používají Azure CLI.

  1. Prostředek Microsoft.StreamAnalytics/streamingjobs se spravovanou identitou můžete vytvořit tak, že do části prostředku šablony Resource Manageru zahrnete následující vlastnost:

    "identity": {
        "type": "SystemAssigned",
    }
    

    Tato vlastnost říká Azure Resource Manageru, aby vytvořil a spravil identitu pro vaši úlohu Stream Analytics. Níže je příklad šablony Resource Manageru, která nasadí úlohu Stream Analytics s povolenou spravovanou identitou a výstupní jímkou Power BI, která používá spravovanou identitu:

    {
        "$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"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Pomocí následujícího příkazu Azure CLI nasaďte výše uvedenou úlohu do skupiny prostředků ExampleGroup :

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Po vytvoření úlohy pomocí Azure Resource Manageru načtěte úplnou definici úlohy.

    az resource show --ids /subscriptions/<subsription-id>/resourceGroups/<resource-group>/providers/Microsoft.StreamAnalytics/StreamingJobs/<resource-name>
    

    Výše uvedený příkaz vrátí odpověď podobná následující:

    {
        "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"
    }
    

    Pokud plánujete použít rozhraní REST API Power BI k přidání úlohy Stream Analytics do pracovního prostoru Power BI, poznamenejte si vrácenou principalId.

  3. Teď, když je úloha vytvořená, pokračujte v části Udělit úlohu Stream Analytics přístup k pracovnímu prostoru Power BI v tomto článku.

Udělení přístupu k pracovnímu prostoru Power BI úloze Stream Analytics

Teď, když je úloha Stream Analytics vytvořená, může mít přístup k pracovnímu prostoru Power BI. Jakmile udělíte přístup k úloze, počkejte několik minut, než se identita rozšíří.

Použití uživatelského rozhraní Power BI

Poznámka:

Pokud chcete přidat úlohu Stream Analytics do pracovního prostoru Power BI pomocí uživatelského rozhraní, musíte také povolit přístup instančního objektu v nastavení pro vývojáře na portálu pro správu Power BI. Další informace najdete v tématu Začínáme s instančním objektem.

  1. Přejděte do nastavení přístupu pracovního prostoru. Další informace najdete v tématu Udělení přístupu k pracovnímu prostoru.

  2. Do textového pole zadejte název úlohy Stream Analytics a jako úroveň přístupu vyberte Přispěvatel .

  3. Vyberte Přidat a zavřete podokno.

    Add Stream Analytics job to Power BI workspace

Použití rutin PowerShellu v Power BI

  1. Nainstalujte rutiny PowerShellu Power BI MicrosoftPowerBIMgmt .

    Důležité

    Ujistěte se, že používáte rutiny verze 1.0.821 nebo novější.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Přihlaste se do Power BI

    Login-PowerBI
    
  3. Přidejte úlohu Stream Analytics jako přispěvatele do pracovního prostoru.

    Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor
    

Použití rozhraní REST API Power BI

Úlohu Stream Analytics můžete také přidat jako přispěvatele do pracovního prostoru pomocí rozhraní REST API přidat uživatele skupiny přímo. Úplnou dokumentaci k tomuto rozhraní API najdete tady: Skupiny – Přidat uživatele skupiny.

Ukázkový požadavek

POST https://api.powerbi.com/v1.0/myorg/groups/{groupId}/users

Text žádosti

{
    "groupUserAccessRight": "Contributor",
    "identifier": "<principal-id>",
    "principalType": "App"
}

Použití instančního objektu k udělení oprávnění pro spravovanou identitu úlohy ASA

U automatizovaných nasazení není možné pomocí interaktivního přihlašování poskytnout úlohu ASA k pracovnímu prostoru Power BI. K udělení oprávnění pro spravovanou identitu úlohy ASA můžete použít instanční objekt. To je možné pomocí PowerShellu:

Connect-PowerBIServiceAccount -ServicePrincipal -TenantId "<tenant-id>" -CertificateThumbprint "<thumbprint>" -ApplicationId "<app-id>"
Add-PowerBIWorkspaceUser -WorkspaceId <group-id> -PrincipalId <principal-id> -PrincipalType App -AccessRight Contributor

Odebrání spravované identity

Spravovaná identita vytvořená pro úlohu Stream Analytics se odstraní jenom při odstranění úlohy. Spravovanou identitu není možné odstranit bez odstranění úlohy. Pokud už spravovanou identitu nechcete používat, můžete změnit metodu ověřování pro výstup. Spravovaná identita bude nadále existovat, dokud se úloha nesmazat, a použije se, pokud se rozhodnete znovu použít ověřování spravované identity.

Omezení

Níže jsou uvedená omezení této funkce:

  • Klasické pracovní prostory Power BI se nepodporují.

  • Účty Azure bez ID Microsoft Entra.

  • Přístup s více tenanty se nepodporuje. Instanční objekt vytvořený pro danou úlohu Stream Analytics se musí nacházet ve stejném tenantovi Microsoft Entra, ve kterém byla úloha vytvořena, a nedá se použít s prostředkem, který se nachází v jiném tenantovi Microsoft Entra.

  • Identita přiřazená uživatelem není podporovaná. To znamená, že nemůžete zadat vlastní instanční objekt, který bude používat jejich úloha Stream Analytics. Instanční objekt musí být vygenerován službou Azure Stream Analytics.

Další kroky