SSIS 2025 sans mot de passe dans le package : Entra ID, TLS 1.3 et Fabric avec Microsoft SqlClient
Comment utiliser le nouveau Microsoft SqlClient Data Provider dans le connection manager ADO.NET de SSIS 2025 pour sortir les mots de passe des packages, activer TLS 1.3 et se connecter à Fabric Warehouse avec Entra ID.
Le problème : le mot de passe qui vit dans le connection manager
Dans beaucoup d'entreprises, SSIS reste le moteur de l'ETL : stable, rapide et payé depuis des années. Mais la façon de se connecter a rarement évolué avec lui. On trouve souvent des packages avec :
- un login SQL avec le mot de passe stocké dans le connection manager (avec
ProtectionLevelqui protège… plus ou moins) ; - des connexions en OLE DB ou en ancien SqlClient, sans support correct d'Entra ID ;
- aucun chemin officiel pour parler à Microsoft Fabric, qui n'accepte pas l'authentification SQL ni Windows.
En pratique, cela devient une impasse : la gouvernance demande une identité gérée et un chiffrement fort, et le package legacy ne connaît qu'un utilisateur et un mot de passe.
La nouveauté : Microsoft SqlClient dans le connection manager ADO.NET
SSIS 2025 (SQL Server 2025, GA en novembre 2025) a apporté comme principale nouveauté le support du Microsoft SqlClient Data Provider (Microsoft.Data.SqlClient) dans le connection manager ADO.NET.
C'est le driver moderne de Microsoft pour SQL Server et Azure SQL. Avec lui, SSIS gagne :
- Microsoft Entra ID en plusieurs modes : Service Principal, Managed Identity, Interactive, Default, entre autres ;
- TLS 1.3 et le mode
Encrypt=Strict(TDS 8.0), où la session est chiffrée dès le premier octet, avant même le handshake de login ; - la connexion à Fabric Warehouse, au SQL analytics endpoint et à une SQL database dans Fabric, qui n'acceptent qu'Entra ID.
Pas à pas
1) Créez le connection manager avec le nouveau provider
Dans Visual Studio (SSIS Projects 2022+), créez un connection manager ADO.NET et, sous Provider, choisissez Microsoft SqlClient Data Provider.
2) Configurez l'authentification sur l'onglet All
L'onglet Connection n'affiche que quelques options d'authentification. Les autres (Service Principal, Managed Identity, Interactive) se trouvent sur l'onglet All, dans la propriété Authentication. La connection string obtenue ressemble à ceci :
Data Source=<workspace>.datawarehouse.fabric.microsoft.com;
Initial Catalog=dw_sales;
Authentication=Active Directory Service Principal;
User ID=<app-client-id>;
Password=<client-secret>;
Encrypt=Strict;
Pour Azure SQL Database ou SQL Server 2025 avec Entra ID, le format est le même, en changeant seulement le Data Source.
3) Sortez le secret du package
Le Password du service principal ne doit pas rester dans le package. Le pattern que je recommande :
- Créez un paramètre de projet sensible (
SpnSecret) et mappez-le sur la propriétéPassword(ou sur toute la connection string) du connection manager. - Dans SSISDB, créez un environment par environnement (dev/recette/prod) avec la variable sensible correspondante.
- Référencez l'environment dans le projet et lancez les jobs en pointant dessus.
Ainsi le même .ispac est déployé sur tous les environnements, et le secret reste chiffré dans le catalogue (et, idéalement, rotationné depuis Key Vault par votre processus de déploiement).
4) Développez avec votre identité, exécutez avec celle du service
Active Directory Interactive est excellent dans Visual Studio : vous vous connectez avec votre compte et testez. Mais il ne fonctionne pas à l'exécution dans le catalogue, car il n'y a personne pour cliquer sur le pop-up. Utilisez le paramètre/environment pour basculer la connection string vers Service Principal au déploiement.
En exécutant sur l'Azure-SSIS Integration Runtime (ADF), on peut aller plus loin et utiliser Managed Identity, sans aucun secret.
Quand cela fait une différence
- Migration progressive vers Fabric : le SSIS on-premises peut écrire directement dans Fabric Warehouse pendant que vous migrez le reste tranquillement, sans réécrire le package.
- Audit et conformité : les connexions par service principal apparaissent avec leur propre identité dans les logs, avec des permissions minimales et une rotation de credential centralisée.
- La fin du mot de passe partagé : plus personne n'a besoin de connaître le mot de passe du compte
etl_user.
Checklist de mise à niveau vers SSIS 2025
Avant de migrer, il vaut la peine de faire cet inventaire (source : documentation officielle de Microsoft) :
- ☐ Le mode 32-bit est déprécié. SSMS 21 et SSIS Projects 2022+ sont en 64-bit. Les packages qui dépendent de drivers 32-bit (anciens Excel/Access, ODBC 32-bit) demandent de l'attention.
- ☐ Le service legacy d'Integration Services est déprécié. Cela touche ceux qui utilisent encore le package deployment model (packages dans msdb/file system). Il est temps de passer au project deployment model + SSISDB.
- ☐ Le type de connexion SDS (SqlClient Data Provider) est déprécié dans les Maintenance Tasks et le Foreach Loop. Migrez vers ADO.NET.
- ☐ Les composants CDC d'Attunity et le CDC Service for Oracle ont été supprimés, tout comme le Microsoft Connector for Oracle. Planifiez des alternatives (ADF, Fabric Mirroring/Copy Job, connecteurs tiers).
- ☐ Les tasks Hadoop (Hive, Pig, File System) ont été retirées du produit.
- ☐ Ceux qui utilisent l'API .NET
Microsoft.SqlServer.Dts.Runtimepour générer des packages doivent mettre à jour les références et recompiler.
Conclusion
SSIS 2025 n'est pas une révolution, mais il résout une douleur ancienne : connecter des packages legacy avec une identité moderne et un chiffrement fort. Si vous gardez SSIS en production, le premier pas est simple : listez les connection managers avec un login SQL et commencez par ceux qui parlent à Azure SQL ou à Fabric.
Articles liés
Auto Partitioning dans le Copy job de Fabric Data Factory : déplacez des tables géantes en minutes, sans configurer de partition
Le Copy job de Fabric Data Factory partitionne désormais les grandes tables automatiquement — il choisit la colonne, calcule les frontières et lance des lectures en parallèle avec un seul toggle. Ce qui change, comment l'activer et où ça marche.
Lire l'articleSSIS + PostgreSQL via ODBC : les options de fetch qui évitent l'Out of memory — et le piège du commentaire --
Comment UseDeclareFetch/Fetch (un curseur server-side) évitent l'Out of memory lors de l'extraction PostgreSQL dans SSIS via ODBC, comment révéler l'erreur générique avec CommLog, le bug du commentaire -- qui avale le FETCH, et le repli avec un curseur en Python.
Lire l'articleVous avez aimé ? Découvrez les e-books pour du contenu approfondi.
E-books