Remarque : L’intégration PowerShell nécessite un abonnement Pro ou Enterprise à ShareGate Migrate. Elle n’est pas disponible avec le plan Essentials.
Cet article concerne uniquement l’intégration PowerShell de ShareGate Migrate.
L’authentification par application uniquement vous permet d’effectuer des migrations SharePoint et Teams depuis PowerShell sans compte d'utilisateur connecté. Au lieu des informations d’identification d’un utilisateur, ShareGate Migrate s’authentifie à l’aide d’un enregistrement d’application Azure.
Lors de la configuration, vous créerez un enregistrement d’application, téléchargerez un certificat d’authentification et accorderez les autorisations API requises.
Vous utiliserez ensuite l’Application (client) ID et le certificat pour vous authentifier depuis PowerShell.
Avant de commencer
Abonnement Pro ou Enterprise à ShareGate Migrate
Accès Administrateur général sur le locataire Microsoft 365 requis pour créer l’enregistrement d’application et accorder le consentement administrateur
Configurer l’enregistrement de l’application
Effectuez cette opération sur chaque locataire vers ou depuis lequel vous migrez.
Pour une application à locataire unique (utilisée uniquement dans un seul locataire), répétez la configuration complète pour chaque locataire.
Pour une application multi-locataires (où un seul enregistrement est réutilisé sur plusieurs locataires), effectuez les étapes dans votre locataire principal, puis accordez le consentement administrateur dans chaque locataire supplémentaire.
Étape 1 : Générer un certificat
ShareGate utilise un certificat pour s’authentifier en tant qu’application. Exécutez le script PowerShell suivant pour générer un certificat auto-signé dans votre magasin d’utilisateur local et l’exporter sur votre Bureau.
# Générer un certificat auto-signé dans votre magasin d’utilisateur local
$certName = "AzureAppAuthCert"
$cert = New-SelfSignedCertificate -Subject "CN=$certName" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256
# Exporter la clé publique (.cer) - à téléverser sur Azure à l’étape 3
Export-Certificate -Cert $cert -FilePath "$home\Desktop\$certName.cer"
# Exporter la clé privée en .pfx - requis si vous vous connectez via l’Option B
$pfxPassword = ConvertTo-SecureString -String "choose-a-strong-password" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath "$home\Desktop\$certName.pfx" -Password $pfxPassword
# Copiez cette valeur pour l’utiliser avec New-AzureApplication
Write-Host "Thumbprint: $($cert.Thumbprint)"
Les deux fichiers sont enregistrés sur votre Bureau. Téléversez le fichier .cer sur Azure à l’étape 3. Si vous prévoyez de vous connecter via l’Option B, vous aurez également besoin du fichier .pfx.
Notez l’empreinte (thumbprint) affichée dans la console. Vous l’utiliserez avec New-AzureApplication lors de l’étape de connexion.
Étape 2 : Enregistrer l’application dans Microsoft Entra ID
Connectez-vous au Centre d’administration Microsoft Entra en tant qu’Administrateur général.
Allez dans Entra ID > App registrations > New registration.
Donnez un nom à l’application (par exemple, ShareGate Migration).
Sous Supported account types, choisissez My organization only pour une application à locataire unique, ou Multiple Entra ID tenants pour une application multi-locataires utilisée sur plusieurs locataires.
Laissez le champ Redirect URI vide.
Cliquez sur Register.
Sur la page Overview, copiez l’Application (client) ID. Vous l’utiliserez avec
New-AzureApplication.
Étape 3 : Téléverser le certificat
Dans l’enregistrement de votre application, allez dans Certificates & secrets > Certificates, puis sélectionnez Upload certificate.
Téléversez le fichier
.cerdepuis votre Bureau.Cliquez sur Add.
Étape 4 : Ajouter les autorisations API
Dans l’enregistrement de votre application, allez dans API permissions > Add a permission.
Ajoutez chaque Application permission listée ci-dessous. Ajoutez séparément les autorisations Microsoft Graph et SharePoint. Ne sélectionnez pas les autorisations Déléguées.
Cliquez sur Grant admin consent for [votre locataire] et confirmez.
Autorisations Microsoft Graph :
| Membres de canal Teams |
| Paramètres des canaux Teams |
| Objets de l’annuaire |
| Fichiers dans toutes les collections de sites |
| Groupes Microsoft 365 |
| Stratégies de protection des informations |
| Étiquettes de confidentialité |
| Blocs-notes OneNote |
| Contrôle total sur toutes les collections de sites |
| Créer, modifier et supprimer des éléments dans toutes les collections de sites |
| Lire et écrire des éléments dans toutes les collections de sites |
| Tâches Planner |
| Créer des équipes |
| Membres d’équipe |
| Installations d’applications Teams |
| Paramètres d’équipe |
| Onglets dans les canaux Teams |
| Magasin de termes |
| Profils d’utilisateurs |
Autorisations SharePoint :
Remarque : Les autorisations SharePoint se trouvent sous SharePoint dans la liste des API, et non sous Microsoft Graph.
| Contrôle total sur toutes les collections de sites |
| Créer, modifier et supprimer des éléments dans toutes les collections de sites |
| Lire les éléments dans toutes les collections de sites |
| Lire et écrire des éléments dans toutes les collections de sites |
| Magasin de termes (lecture) |
| Magasin de termes (lecture/écriture) |
| Profils d’utilisateurs (lecture) |
| Profils d’utilisateurs (lecture/écriture) |
Se connecter depuis ShareGate
Créez un objet d’informations d’identification avec New-AzureApplication, puis transmettez-le à Connect-Site ou Connect-Tenant.
Option A : Empreinte du certificat (depuis le script de génération)
Si vous avez utilisé le script à l’étape 1, le certificat se trouve dans Cert:\CurrentUser\My. Passez directement l’empreinte :
# Créer un objet d’informations d’identification à partir de l’empreinte du certificat
$app = New-AzureApplication -ClientId "<application-client-id>" -Thumbprint "<certificate-thumbprint>"
# Se connecter à un site spécifique
Connect-Site -Url "https://contoso.sharepoint.com/sites/Marketing" -AzureApplication $app
# Ou se connecter au niveau du locataire
Connect-Tenant -Domain "contoso" -AzureApplication $app
Option B : Certificat depuis un fichier .pfx
Si vous avez le certificat sous forme de fichier .pfx, chargez-le directement :
# Charger le certificat depuis un fichier .pfx
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new(
"C:\certs\sharegate-app.pfx",
"your-pfx-password")
# Créer un objet d’informations d’identification
$app = New-AzureApplication -ClientId "<application-client-id>" -Certificate $certificate
# Se connecter à un site
Connect-Site -Url "https://contoso.sharepoint.com/sites/Marketing" -AzureApplication $app
Un même objet application peut authentifier plusieurs connexions dans la même session. Réutilisez la même variable $app dans plusieurs appels Connect-Site ou Connect-Tenant.
Remarque : Si votre stratégie de sécurité empêche d’accorder une des autorisations requises, ajoutez -AllowMissingPermissions à Connect-Site ou Connect-Tenant pour vous connecter quand même.
Les opérations nécessitant l’autorisation manquante échoueront avec des erreurs Forbidden.
Ce paramètre ne fait que relâcher la vérification des autorisations après une authentification réussie. Il ne résout pas un échec de connexion.
Enregistrer et réutiliser une application
Vous pouvez enregistrer un objet d’enregistrement d’application et le récupérer lors de sessions ultérieures, afin de ne pas avoir à le recréer à chaque fois. Utilisez Save-AzureApplication pour l’enregistrer et Get-AzureApplication pour le recharger.
Limites connues
Modifié par et Créé par ne sont pas conservés lors de la migration. Les éléments affichent l’identité de service de l’application au lieu de l’auteur d’origine.
Alertes utilisateur ignorées. L’authentification par application seule n’a pas de contexte utilisateur pour envoyer des alertes.
Composants Web classiques non migrés.
Workflows SharePoint classiques non migrés.
Formulaires InfoPath partiellement migrés. Attendez-vous à des avertissements.
Workflows d’approbation de publication nécessitent un contexte utilisateur. Attendez-vous à des erreurs ou avertissements.
Étiquettes de confidentialité non encore appliquées lors de la migration. La prise en charge est prévue dans une future mise à jour.
"Cet article a été traduit à l’aide de l’intelligence artificielle. En cas de doute, veuillez vous référer à la version originale en anglais."
