Utiliser les identités managées pour accéder à Azure SQL Database ou Azure Synapse Analytics à partir d’une tâche Azure Stream Analytics

Azure Stream Analytics prend en charge l’authentification des identités managées pour les récepteurs de sortie Azure SQL Database et Azure Synapse Analytics. Les identités managées n’ont pas les limitations des méthodes d’authentification basée sur l’utilisateur, comme la réauthentification obligatoire après un changement de mot de passe ou l’expiration du jeton d’utilisateur tous les 90 jours. En l'absence d'authentification manuelle, vos déploiements Stream Analytics peuvent être entièrement automatisés.

Une identité managée est une application managée inscrite auprès de Microsoft Entra ID qui représente un travail Stream Analytics donné. L’application managée est utilisée à des fins d'authentification auprès d’une ressource ciblée. Cet article vous montre comment activer une identité managée pour une ou plusieurs sorties Azure SQL Database ou Azure Synapse Analytics d'une tâche Stream Analytics via le portail Azure.

Vue d’ensemble

Cet article présente les étapes nécessaires pour connecter votre tâche Stream Analytics à votre pool Azure Synapse Analytics SQL ou Azure SQL Database à l’aide du mode d’authentification Managed Identity.

  • Vous devez d’abord créer une identité managée affectée par le système pour votre tâche Stream Analytics. Il s’agit de l’identité de votre travail dans Microsoft Entra ID.

  • Ajoutez un administrateur Active Directory à votre espace de travail SQL Server ou Synapse, ce qui active l’authentification Microsoft Entra ID (Managed Identity) pour cette ressource.

  • Ensuite, créez un utilisateur contenu représentant l’identité de la tâche Stream Analytics dans la base de données. Chaque fois que la tâche Stream Analytics interagit avec votre ressource SQL DB ou Synapse SQL DB, il s’agit de l’identité à laquelle elle fera référence pour vérifier les autorisations dont dispose votre tâche Stream Analytics.

  • Accordez à votre tâche Stream Analytics les autorisations nécessaires pour accéder à vos pools Synapse SQL ou SQL Database.

  • Pour finir, ajoutez votre Azure SQL Database/Azure Synapse Analytics en tant que sortie dans la tâche Stream Analytics.

Prérequis

Les éléments suivants sont requis pour utiliser cette fonctionnalité :

  • Tâche Azure Stream Analytics.

  • Ressource Azure SQL Database.

Créer une identité managée

Commencez par créer une identité managée pour votre tâche Azure Stream Analytics.

  1. Dans le portail Azure, ouvrez votre tâche Azure Stream Analytics.

  2. Dans le menu de navigation gauche, sélectionnez Identité managée sous Configurer. Activez ensuite la case à cocher située en regard de Utiliser l'identité managée affectée par le système, puis sélectionnez Enregistrer.

    Select system-assigned managed identity

    Un principal de service est créé pour l’identité du travail Stream Analytics dans Microsoft Entra ID. Le cycle de vie de la nouvelle identité est géré par Azure. Quand le travail Stream Analytics est supprimé, l’identité associée (autrement dit, le principal de service) est également automatiquement supprimée par Azure.

  3. Vous pouvez également basculer vers des identités managées affectées par l’utilisateur.

  4. Lorsque vous enregistrez la configuration, l’ID objet (l’OID) du principal de service s’affiche en tant qu’ID de principal, comme ci-dessous :

    Object ID shown as Principal ID

    Le principal de service a le même nom que le travail Stream Analytics. Par exemple, si le nom de votre travail est MyASAJob, le nom du principal de service est également MyASAJob.

Sélectionner un administrateur Active Directory

Une fois l'identité managée créée, sélectionnez un administrateur Active Directory.

  1. Accédez à votre ressource de pool SQL Azure Synapse Analytics ou Azure SQL Database et sélectionnez le serveur SQL ou l’espace de travail Synapse sous lequel se trouve la ressource. Vous trouverez le lien vers ces éléments dans la page de vue d’ensemble de ressource en regard de Nom du serveur ou Nom de l’espace de travail.

  2. Sélectionnez Administrateur Active Directory ou Administrateur SQL Active Directory sous Paramètres, respectivement pour SQL Server et Espace de travail Synapse. Sélectionnez ensuite Définir l’administrateur.

    Active Directory admin page

  3. Sur la page Administrateur Active Directory, recherchez un utilisateur ou un groupe à définir en tant qu’administrateur pour SQL Server, puis cliquez sur Sélectionner. Il s’agit de l’utilisateur qui sera en mesure de créer l’Utilisateur de base de données autonome dans la section suivante.

    Add Active Directory admin

    La page Administrateur Active Directory affiche tous les membres et groupes présents dans Active Directory. Les utilisateurs ou groupes grisés ne peuvent pas être sélectionnés, car ils ne sont pas pris en charge en tant qu’administrateurs Microsoft Entra. Consultez la liste des administrateurs pris en charge dans la section Fonctionnalités et limitations de Microsoft Entra de l’article Utiliser l’authentification Microsoft Entra pour l’authentification auprès de SQL Database ou d’Azure Synapse.

  4. Sur la page Administrateur Active Directory, sélectionnez Enregistrer. Le processus de modification de l’administrateur prend quelques minutes.

Créer un utilisateur de base de données autonome

Créez ensuite un utilisateur de base de données autonome dans votre base de données Azure SQL ou Azure Synapse, mappé à l’identité Microsoft Entra. L'utilisateur de base de données autonome ne dispose d'aucune connexion à la base de données primaire, mais correspond à une identité de l'annuaire associé à la base de données. L’identité Microsoft Entra peut être un compte d’utilisateur individuel ou un groupe. Dans ce cas, créez un utilisateur de base de données autonome pour votre tâche Stream Analytics.

Pour plus d’informations, consultez l’article suivant pour en savoir plus sur l’intégration de Microsoft Entra : Authentification universelle avec SQL Database et Azure Synapse Analytics (prise en charge de SSMS pour l’authentification MFA)

  1. Connectez-vous à votre base de données Azure SQL ou Azure Synapse via SQL Server Management Studio. Le nom d’utilisateur correspond à un utilisateur Microsoft Entra ayant l’autorisation ALTER ANY USER. L’administrateur que vous avez défini sur l'instance SQL Server est un exemple. Utilisez l’authentification Microsoft Entra ID – Universelle avec MFA.

    Connect to SQL Server

    Le nom du serveur <SQL Server name>.database.windows.net peut être différent selon les régions. Par exemple, la région Chine doit utiliser <SQL Server name>.database.chinacloudapi.cn.

    Vous pouvez spécifier une base de données Azure SQL ou Azure Synapse spécifique en accédant à Options > Propriétés de connexion > Se connecter à la base de données.

    SQL Server connection properties

  2. Lorsque vous vous connectez pour la première fois, la fenêtre suivante peut s'afficher :

    New firewall rule window

    1. Si tel est le cas, accédez à votre ressource SQL Server/Espace de travail Synapse dans le portail Azure. Dans la section Sécurité, ouvrez la page Pare-feu et réseau virtuel/Pare-feu.
    2. Ajoutez une nouvelle règle avec n’importe quel nom de règle.
    3. Utilisez l'adresse IP De de la fenêtre Nouvelle règle de pare-feu pour l'adresse IP de début.
    4. Utilisez l'adresse IP À de la fenêtre Nouvelle règle de pare-feu pour l'adresse IP de fin.
    5. Sélectionnez Enregistrer et essayez de vous reconnecter à partir de SQL Server Management Studio.
  3. Une fois connecté, créez l’utilisateur de base de données autonome. La commande SQL suivante crée un utilisateur de base de données autonome portant le même nom que votre tâche Stream Analytics. Veillez à mettre ASA_JOB_NAME entre crochets. Utilisez la syntaxe T-SQL suivante et exécutez la requête.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

    Pour vérifier si vous avez ajouté correctement l’utilisateur de base de données autonome, exécutez la commande suivante dans SSMS sous la base de données concernée et vérifiez si votre ASA_JOB_NAME figure sous la colonne « Nom ».

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. Pour que Microsoft Entra ID de Microsoft vérifie si le travail Stream Analytics a accès à SQL Database, nous devons autoriser Microsoft Entra à communiquer avec la base de données. Pour ce faire, accédez de nouveau à la page « Pare-feu et réseau virtuel/Pare-feu » dans le portail Azure, puis activez l’option « Autoriser les services et les ressources Azure à accéder à ce serveur/espace de travail ».

    Firewall and virtual network

Octroyer des autorisations de tâche Stream Analytics

Une fois que vous avez créé un utilisateur de base de données autonome et accordé un accès aux services Azure du portail, comme décrit dans la section précédente, votre tâche Stream Analytics est autorisée par Managed Identity à se connecter (autorisation CONNECT) à votre ressource Azure SQL Database via une identité. Nous vous recommandons d’accorder à la tâche Stream Analytics les autorisations SELECT et INSERT, car celles-ci seront nécessaires plus tard dans le flux de travail Stream Analytics. L’autorisation SELECT permet à la tâche de tester sa connexion à la table dans Azure SQL Database. L’autorisation INSERT permet de tester des requêtes Stream Analytics de bout en bout une fois que vous avez configuré une entrée et la sortie de la base de données SQL Azure.

Utilisez SQL Server Management Studio pour octroyer ces autorisations à la tâche Stream Analytics. Pour plus d'informations, consultez la référence GRANT (Transact-SQL).

Pour n’accorder une autorisation qu’à une table ou à un objet spécifiques dans la base de données, utilisez la syntaxe T-SQL suivante, puis exécutez la requête.

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

Vous pouvez également cliquer avec le bouton droit sur votre base de données Azure SQL ou Azure Synapse dans SQL Server Management Studio, puis sélectionner Propriétés > Autorisations. La tâche Stream Analytics que vous avez ajoutée précédemment s'affiche dans le menu Autorisations, et vous pouvez manuellement octroyer ou refuser des autorisations comme vous le souhaitez.

Pour consulter toutes les autorisations que vous avez ajoutées à votre utilisateur ASA_JOB_NAME, exécutez la commande suivante dans SSMS sous la base de données en question :

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Créer une sortie Azure SQL Database ou Azure Synapse

Remarque

Lorsque vous utilisez SQL Managed Instance (MI) comme entrée de référence, vous devez configurer un point de terminaison public dans votre instance managée SQL. Vous devez spécifier le nom de domaine complet avec le port lors de la configuration de la propriété de base de données. Par exemple : sampleserver.public.database.windows.net,3342.

Maintenant que votre identité gérée est configurée, vous êtes prêt à ajouter une base de données Azure SQL Database ou Azure Synapse à votre tâche Stream Analytics.

Assurez-vous d’avoir créé une table dans votre SQL Database avec le schéma de sortie approprié. Le nom de cette table est l’une des propriétés requises qui doit être spécifiée lorsque vous ajoutez la sortie SQL Database à la tâche Stream Analytics. En outre, assurez-vous que la tâche dispose des autorisations SELECT et INSERT pour tester la connexion et exécuter des requêtes Stream Analytics. Si ce n’est déjà fait, consultez la section Octroyer des autorisations de tâche Stream Analytics.

  1. Revenez à votre tâche Stream Analytics, puis accédez à la page Sorties sous Topologie de la tâche.

  2. Sélectionnez Ajouter > SQL Database. Dans la fenêtre de propriétés de la sortie du récepteur de sortie SQL Database, sélectionnez Identité managée dans la liste déroulante Mode d’authentification.

  3. Renseignez le reste des propriétés. Pour en savoir plus sur la création d’une sortie SQL Database, consultez Créer une sortie SQL Database avec Stream Analytics. Lorsque vous avez terminé, sélectionnez Enregistrer.

  4. Après un clic sur Enregistrer, un test de connexion à votre ressource doit se déclencher automatiquement. Une fois ce test terminé, vous avez correctement configuré votre tâche Stream Analytics pour vous connecter à votre base de données Azure SQL ou Synapse SQL à l’aide du mode d’authentification Managed Identity.

Étapes supplémentaires pour les données de référence SQL

Azure Stream Analytics vous oblige à configurer le compte de stockage de votre travail lors de l’utilisation des données de référence SQL. Ce compte de stockage est utilisé pour stocker le contenu relatif à votre travail Stream Analytics, comme les instantanés de données de référence SQL.

Suivez les étapes suivantes pour configurer un compte de stockage associé :

  1. Dans la page Travail Stream Analytics, sélectionnez Paramètres du compte de stockage sous Configurer dans le menu de gauche.

  2. Dans la page Paramètres du compte de stockage, sélectionnez Ajouter un compte de stockage.

  3. Suivez les instructions pour configurer les paramètres de votre compte de stockage.

    Screenshot of the Storage account settings page of a Stream Analytics job.

Important

  • Pour vous authentifier avec une chaîne de connexion, vous devez désactiver les paramètres de pare-feu du compte de stockage.
  • Pour vous authentifier avec l’identité managée, vous devez ajouter votre travail Stream Analytics à la liste de contrôle d’accès du compte de stockage pour les rôles contributeur aux données du stockage Blob et contributeur à la table de données du stockage. Si vous n’accordez pas d’accès à votre travail, celui-ci ne pourra effectuer aucune opération. Pour plus d’informations sur l’octroi d’accès, consultez Utiliser Azure RBAC pour attribuer à une identité managée un accès à une autre ressource.

Étapes supplémentaires avec l’identité managée affectée par l’utilisateur

Répétez les étapes si vous avez sélectionné l’identité managée affectée par l’utilisateur pour connecter Active Server Application (ASA) à Synapse :

  1. Créez un utilisateur de base de données autonome. Remplacez ASA_Job_Name par Identité managée affectée par l’utilisateur. Reportez-vous à l’exemple ci-dessous.
    CREATE USER [User-Assigned Managed Identit] FROM EXTERNAL PROVIDER;
    
  2. Accordez des autorisations à l’Identité managée affectée par l’utilisateur. Remplacez ASA_Job_Name par Identité managée affectée par l’utilisateur.

Pour en savoir plus, reportez-vous à la section suivante.

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’existe 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.

Étapes suivantes