Использование управляемого удостоверения для проверки подлинности рабочего задания Azure Stream Analytics в Power BI

Функция проверки подлинности с помощью управляемого удостоверения для вывода данных в Power BI служит для предоставления заданиям Stream Analytics прямого доступа к рабочей области в учетной записи Power BI. Эта функция позволяет полностью автоматизированным развертываниям заданий Stream Analytics, так как он больше не требуется для интерактивного входа в Power BI через портал Azure. Кроме того, длительные задания, записываемые в Power BI, теперь лучше поддерживаются, так как вам не нужно периодически выполнять повторную проверку подлинности задания.

В этой статье показано, как включить управляемое удостоверение для вывода в Power BI данных заданий Stream Analytics с помощью портала Microsoft Azure и развернутой службы Azure Resource Manager.

Примечание.

В выходных данных Power BI поддерживаются только управляемые удостоверения, назначаемые системой. В настоящее время использование управляемых удостоверений, назначаемых пользователем, с выходными данными Power BI не поддерживается.

Необходимые компоненты

Перед использованием этой функции необходимо иметь следующие предварительные требования:

  • учетная запись Power BI с лицензией Pro;
  • обновленная рабочая область в учетной записи Power BI. Дополнительные сведения см . в объявлении Power BI.

Создание задания Stream Analytics с помощью портала Microsoft Azure

  1. Создайте новое задание Stream Analytics или откройте существующее задание на портале Microsoft Azure.

  2. В строке меню, расположенной слева от экрана, выберите управляемое удостоверение, расположенное в Параметры.

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

  3. На странице "Выбор удостоверения" выберите назначенное системой удостоверение*. Если выбрать последний параметр, укажите управляемое удостоверение, которое вы хотите использовать. Затем нажмите кнопку Сохранить.

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

  4. На странице "Управляемое удостоверение " убедитесь, что вы увидите идентификатор субъекта и имя участника, назначенные заданию Stream Analytics. Имя субъекта должно совпадать с именем задания Stream Analytics.

  5. Перед настройкой вывода данных предоставьте заданию Stream Analytics доступ к рабочей области Power BI, следуя указаниям в разделе Предоставление заданиям Stream Analytics доступа к рабочей области Power BI этой статьи.

  6. Перейдите к разделу Вывод данных задания Stream Analytic, выберите + Добавить, а затем выберите Power BI. Затем нажмите кнопку "Авторизовать" и войдите с помощью учетной записи Power BI.

    Authorize with Power BI account

  7. После авторизации в раскрывающийся список будут внесены все рабочие области, к которым у вас есть доступ. Выберите рабочую область, для которой вы выполнили авторизацию в предыдущем шаге. Затем выберите Управляемое удостоверение в качестве режима проверки подлинности. Нажмите кнопку Сохранить.

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

Развертывание Azure Resource Manager

Azure Resource Manager позволяет полностью автоматизировать развернутую службу заданий Stream Analytics. Шаблоны Resource Manager можно развернуть с помощью Azure PowerShell или Azure CLI. В приведенных ниже примерах используется Azure CLI.

  1. Можно создать ресурс Microsoft.StreamAnalytics/streamingjobs с использованием управляемого удостоверения, включив в раздел ресурсов шаблона Resource Manager следующее свойство:

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

    Это свойство указывает Azure Resource Manager, что требуется создать удостоверение для задания Stream Analytics и управлять им. Ниже приведен пример шаблона 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"
                                    }
                                }
                            }
                        }
                    ]
                }
            }
        ]
    }
    

    Разверните указанное выше задание в группе ресурсов ExampleGroup с помощью следующей команды Azure CLI:

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Создав задание, используйте 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"
    }
    

    Если вы планируете использовать REST API Power BI для добавления задания Stream Analytics в рабочую область Power BI, запишите возвращаемое principalIdзначение.

  3. Теперь, когда задание создано, перейдите к разделу Предоставление заданиям Stream Analytics доступа к рабочей области Power BI этой статьи.

Предоставление заданиям Stream Analytics доступа к рабочей области Power BI

После создания задания Stream Analytics ему можно предоставить доступ к рабочей области Power BI. После предоставления доступа подождите несколько минут, чтобы удостоверение было распространено.

Использование пользовательского интерфейса Power BI

Примечание.

Чтобы добавить задание Stream Analytics в рабочую область Power BI с помощью пользовательского интерфейса, необходимо включить доступ субъекта-службы в параметрах разработчика на портале администрирования Power BI. Дополнительные сведения см. в статье "Начало работы с субъектом-службой".

  1. Перейдите на страницу "Параметры доступа" рабочей области. Дополнительные сведения см. в статье "Предоставление доступа к рабочей области".

  2. Введите имя задания Stream Analytics в текстовом поле и выберите уровень доступа Участник.

  3. Нажмите кнопку Применить и закройте область.

    Add Stream Analytics job to Power BI workspace

Использование командлетов PowerShell в Power BI

  1. Установите командлеты PowerShell MicrosoftPowerBIMgmtв Power BI.

    Важно!

    Убедитесь, что вы используете командлеты версии 1.0.821 или более поздней.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Войдите в Power BI.

    Login-PowerBI
    
  3. Добавьте задание Stream Analytics в рабочую область в качестве участника.

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

Использование REST API в Power BI

Задания Stream Analytics можно добавлять в рабочую область в качестве участника напрямую с помощью REST API "Добавить пользователя группы". Полную документацию по этому 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, удаляется только при удалении этого задания. Невозможно удалить управляемое удостоверение без удаления задания. Если вы больше не хотите использовать управляемое удостоверение, измените способ проверки подлинности для вывода данных. Управляемое удостоверение продолжит существовать до тех пор, пока задание не будет удалено, и будет использоваться при повторном использовании проверки подлинности с управляемым удостоверением.

Ограничения

Ниже перечислены ограничения этой функции.

  • Классические рабочие области Power BI не поддерживаются.

  • Учетные записи Azure без идентификатора Microsoft Entra.

  • Доступ с несколькими клиентами не поддерживается. Субъект-служба, созданный для заданного задания Stream Analytics, должен находиться в том же клиенте Microsoft Entra, в котором было создано задание, и не может использоваться с ресурсом, который находится в другом клиенте Microsoft Entra.

  • Назначенное пользователем удостоверение не поддерживается. Это означает, что вы не можете ввести собственный субъект-службу, который будет использоваться их заданием Stream Analytics. Субъект-служба должен быть создан с помощью Azure Stream Analytics.

Следующие шаги