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

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

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

Это важно

Потоковая передача в режиме реального времени в Power BI прекращена. Начиная с 31 октября 2027 г. пользователи не смогут создавать задания Azure Stream Analytics, использующие соединитель вывода Power BI. Существующие задания, использующие этот соединитель, перестанут работать. Microsoft рекомендует изучать аналитику Real-Time в Microsoft Fabric для сценариев реального времени. Рекомендации по миграции см. в статье power-bi-output.md.

Замечание

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

Предпосылки

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

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

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

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

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

    Снимок экрана: страница

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

    Снимок экрана: страница выбора удостоверения с выбранным удостоверением, назначенным системой.

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

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

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

    Авторизоваться с помощью учетной записи Power BI

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

    Скриншот, отображающий конфигурацию вывода с выбранным режимом проверки подлинности управляемого удостоверения в Power BI.

Развертывание 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/<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"
    }
    

    Если вы планируете использовать 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. Нажмите кнопку "Добавить " и закройте область.

    Добавить задание Stream Analytics в рабочую область Power BI

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

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

    Это важно

    Убедитесь, что вы используете командлеты версии 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 "Add Group User" напрямую. Полная документация см. в разделе "Группы — добавление пользователя группы".

Пример запроса

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 не поддерживаются.

  • Azure учетные записи без Microsoft Entra ID не поддерживаются.

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

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

Дальнейшие действия