Utiliser une identité managée pour authentifier votre travail Azure Stream Analytics vers Power BI

L’Authentification d’une identité managée pour la sortie vers Power BI donne aux travaux Stream Analytics un accès direct à un espace de travail au sein de votre compte Power BI. Cette fonctionnalité permet aux déploiements de travaux Stream Analytics d'être entièrement automatisés, car il n'est plus nécessaire pour un utilisateur de se connecter de manière interactive à Power BI via le Portail Microsoft Azure. En outre, les travaux durables qui écrivent dans Power BI sont désormais mieux pris en charge, car vous n'aurez pas besoin de réautoriser périodiquement le travail.

Cet article vous montre comment activer une identité managée pour une ou des sorties Power BI d’un travail Azure Stream Analytics via le Portail Azure et un déploiement d’Azure Resource Manager.

Remarque

Seules les identités managées attribuées par le système sont prises en charge avec la sortie Power BI. Actuellement, l'utilisation d'identités managées attribuées par l'utilisateur avec la sortie Power BI n'est pas prise en charge.

Prérequis

Vous devez disposer des prérequis suivants avant d'utiliser cette fonctionnalité :

  • Un compte Power BI avec une licence Pro.
  • Un espace de travail mis à niveau dans votre compte Power BI. Pour plus d'informations, consultez l'annonce de Power BI.

Créer un travail Stream Analytics à l’aide du Portail Azure

  1. Créez un travail Stream Analytics ou ouvrez un travail existant dans le portail Azure.

  2. Dans la barre de menus située sur le côté gauche de l'écran, sélectionnez Identité gérée située sous Paramètres.

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

  3. Sur la page Sélectionner une identité, sélectionnez Identité attribuée par le système*. Si vous sélectionnez cette dernière option, spécifiez l'identité managée que vous souhaitez utiliser. Ensuite, cliquez sur Enregistrer.

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

  4. Sur la page Identité gérée, confirmez que vous voyez l'ID principal et le nom principal attribués à votre tâche Stream Analytics. Le nom principal doit être identique au nom de votre tâche Stream Analytics.

  5. Avant de configurer la sortie, accordez au travail Stream Analytics l’accès à votre espace de travail Power BI en suivant les instructions fournies dans la section Autoriser le travail Stream Analytics à accéder à votre espace de travail Power BI de cet article.

  6. Accédez à la section Sorties de votre tâche Stream Analytics, sélectionnez + Ajouter, puis Power BI. Ensuite, sélectionnez le bouton Autoriser et connectez-vous avec votre compte Power BI.

    Authorize with Power BI account

  7. Une fois l’autorisation accordée, une liste déroulante est remplie avec tous les espaces de travail auxquels vous avez accès. Sélectionnez l’espace de travail que vous avez autorisé à l’étape précédente. Puis sélectionnez Identité managée comme « Mode d’authentification ». Enfin, sélectionnez le bouton Enregistrer.

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

Déploiement Azure Resource Manager

Azure Resource Manager vous permet d’automatiser entièrement le déploiement de votre travail Stream Analytics. Vous pouvez déployer des modèles Resource Manager à l’aide d’Azure PowerShell ou de l’interface de ligne de commande Azure. Les exemples suivants utilisent l’interface de ligne de commande Azure.

  1. Vous pouvez créer une ressource Microsoft.StreamAnalytics/streamingjobs avec une identité managée en incluant la propriété suivante dans la section ressources de votre modèle Resource Manager :

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

    Cette propriété indique à Azure Resource Manager de créer et manager l’identité de votre travail Stream Analytics. Voici un exemple de modèle Resource Manager qui déploie un travail Stream Analytics avec l’identité managée activée et un récepteur de sortie Power BI qui utilise l’identité managée :

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

    Déployez le travail ci-dessus dans le groupe de ressources ExampleGroup à l’aide de l’interface de ligne de commande Azure ci-dessous :

    az deployment group create --resource-group ExampleGroup -template-file StreamingJob.json
    
  2. Une fois le travail créé, utilisez Azure Resource Manager pour récupérer la définition complète du travail.

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

    La commande ci-dessus retourne une réponse similaire à ce qui suit :

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

    Si vous prévoyez d'utiliser l'API REST Power BI pour ajouter le travail Stream Analytics à votre espace de travail Power BI, notez le retour principalId.

  3. Maintenant que le travail est créé, passez à la section Autoriser le travail Stream Analytics à accéder à votre espace de travail Power BI de cet article.

Autoriser le travail Stream Analytics à accéder à votre espace de travail Power BI

À présent que le travail Stream Analytics a été créé, il peut être autorisé à accéder à un espace de travail Power BI. Une fois que vous avez donné l’accès à votre travail, quelques minutes sont nécessaires pour que l’identité se propage.

Utiliser l’interface utilisateur Power BI

Notes

Pour ajouter le travail Stream Analytics à votre espace de travail Power BI à l’aide de l’interface utilisateur, vous devez également activer l’accès au principal du service dans les Paramètres du développeur dans le portail d’administration Power BI. Pour plus d'informations, consultez Premiers pas avec un principal de service.

  1. Accédez aux paramètres d’accès de l’espace de travail. Pour plus d'informations, consultez Autoriser l'accès à votre espace de travail.

  2. Saisissez le nom de votre travail Stream Analytics dans la zone de texte et sélectionnez Contributeur comme niveau d’accès.

  3. Sélectionnez Ajouter et fermez le volet.

    Add Stream Analytics job to Power BI workspace

Utiliser les cmdlets PowerShell Power BI

  1. Installez les cmdlets PowerShell Power BI MicrosoftPowerBIMgmt.

    Important

    Vérifiez que vous utilisez la version 1.0.821 ou ultérieure des cmdlets.

    Install-Module -Name MicrosoftPowerBIMgmt
    
  2. Connectez-vous à Power BI.

    Login-PowerBI
    
  3. Ajoutez votre travail Stream Analytics en tant que contributeur à l’espace de travail.

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

Utiliser l’API REST Power BI

Le travail Stream Analytics peut également être ajouté en tant que Contributeur à l’espace de travail à l’aide de l’API REST « Ajouter un utilisateur de groupe » directement. Vous trouverez la documentation complète de cette API ici : Groupes – Ajouter un utilisateur de groupe.

Exemple de demande

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

Corps de la demande

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

Utiliser un principal de service pour accorder l’autorisation d’identité gérée d’une tâche ASA

Pour les déploiements automatisés, il n'est pas possible d'utiliser une connexion interactive pour donner à un travail ASA l'accès à un espace de travail Power BI. Cela peut être fait en utilisant le principal de service pour accorder l'autorisation pour l'identité gérée d'un travail ASA. Cela est possible à l’aide de PowerShell :

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

Supprimer l’identité managée

L’identité gérée créée pour une tâche Stream Analytics est supprimée uniquement lorsque la tâche est supprimée. Il n'y a aucun moyen de supprimer l'identité gérée sans supprimer la tâche. Si vous ne souhaitez plus utiliser l’identité gérée, vous pouvez modifier la méthode d’authentification pour la sortie. L’identité gérée continuera d’exister jusqu’à ce que la tâche soit supprimée, et sera réemployée si vous décidez à nouveau d’utiliser l’authentification d’identité gérée.

Limites

Vous trouverez plus bas les limitations de cette fonctionnalité :

  • Les espaces de travail Power BI classiques ne sont pas pris en charge.

  • Comptes Azure sans Microsoft Entra ID.

  • L'accès mutualisé n'est pas pris en charge. Le principal de service créé pour une tâche Stream Analytics donnée doit résider dans le même locataire Microsoft Entra dans lequel la tâche a été créée et ne peut pas être utilisé avec une ressource qui réside dans un autre locataire Microsoft Entra.

  • L'identité attribuée par l'utilisateur n'est pas prise en charge. Cela signifie que vous ne pouvez pas entrer votre propre principal de service à utiliser par leur tâche Stream Analytics. Le principal de service doit être généré par Azure Stream Analytics.

Étapes suivantes