Zum Hauptinhalt springen

Eine Azure-App-Registrierung für PowerShell-SharePoint-Migrationen einrichten

So richten Sie eine Azure-App-Registrierung ein, um ShareGate Migrate PowerShell-SharePoint- und Teams-Migrationen ohne angemeldetes Benutzerkonto auszuführen.

Hinweis: Für die PowerShell-Integration ist ein ShareGate Migrate Pro- oder Enterprise-Abonnement erforderlich. Sie ist im Essentials-Plan nicht verfügbar.

Dieser Artikel gilt ausschließlich für die PowerShell-Integration von ShareGate Migrate.

Mit der reinen Anwendungsauthentifizierung können Sie SharePoint- und Teams-Migrationen über PowerShell ausführen, ohne dass ein Benutzerkonto angemeldet sein muss. Anstelle von Benutzeranmeldeinformationen authentifiziert sich ShareGate Migrate über eine Azure-App-Registrierung.

Während der Einrichtung erstellen Sie eine App-Registrierung, laden einen Zertifikatnachweis hoch und erteilen die erforderlichen API-Berechtigungen.

Anschließend verwenden Sie die Application (client) ID und das Zertifikat, um sich über PowerShell zu authentifizieren.

Bevor Sie beginnen

  • ShareGate Migrate Pro- oder Enterprise-Abonnement

  • Für die Erstellung der App-Registrierung und die Erteilung der Administratorzustimmung ist Zugriff als Globaler Administrator im Microsoft 365-Mandanten erforderlich

App-Registrierung einrichten

Führen Sie dies in jedem Mandanten durch, von oder zu dem Sie migrieren.

Wiederholen Sie bei einer Single-Tenant-App (die nur innerhalb eines einzelnen Mandanten verwendet wird) die vollständige Einrichtung für jeden Mandanten.

Führen Sie bei einer Multi-Tenant-App (bei der eine einzige Registrierung mandantenübergreifend wiederverwendet wird) die Schritte in Ihrem Basismandanten aus und erteilen Sie anschließend die Administratorzustimmung in jedem weiteren Mandanten.

Schritt 1: Zertifikat generieren

ShareGate verwendet ein Zertifikat, um sich als Ihre App zu authentifizieren. Führen Sie das folgende PowerShell-Skript aus, um ein selbstsigniertes Zertifikat in Ihrem lokalen Benutzerspeicher zu generieren und auf Ihren Desktop zu exportieren.

# Generate a self-signed certificate in your local user store
$certName = "AzureAppAuthCert"
$cert = New-SelfSignedCertificate -Subject "CN=$certName" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256

# Export the public key (.cer) - upload this to Azure in Step 3
Export-Certificate -Cert $cert -FilePath "$home\Desktop\$certName.cer"

# Export the private key as a .pfx - required if connecting via Option B
$pfxPassword = ConvertTo-SecureString -String "choose-a-strong-password" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath "$home\Desktop\$certName.pfx" -Password $pfxPassword

# Copy this value for use with New-AzureApplication
Write-Host "Thumbprint: $($cert.Thumbprint)"

Beide Dateien werden auf Ihrem Desktop gespeichert. Laden Sie die .cer-Datei in Schritt 3 zu Azure hoch. Wenn Sie über Option B eine Verbindung herstellen möchten, benötigen Sie außerdem die .pfx-Datei.

Notieren Sie sich den in der Konsole ausgegebenen Thumbprint. Sie benötigen ihn zusammen mit New-AzureApplication im Schritt „Verbinden".

Schritt 2: Die App in Microsoft Entra ID registrieren

  1. Melden Sie sich als Globaler Administrator beim Microsoft Entra admin center an.

  2. Gehen Sie zu Entra ID > App registrations > New registration.

  3. Geben Sie der App einen Namen (zum Beispiel ShareGate Migration).

  4. Wählen Sie unter Supported account types für eine Single-Tenant-App My organization only oder für eine mandantenübergreifend verwendete Multi-Tenant-App Multiple Entra ID tenants.

  5. Lassen Sie Redirect URI leer.

  6. Klicken Sie auf Register.

  7. Kopieren Sie auf der Seite Overview die Application (client) ID. Sie benötigen sie zusammen mit New-AzureApplication.

Schritt 3: Zertifikat hochladen

  1. Gehen Sie in Ihrer App-Registrierung zu Certificates & secrets > Certificates und wählen Sie dann Upload certificate aus.

  2. Laden Sie die .cer-Datei von Ihrem Desktop hoch.

  3. Klicken Sie auf Add.

Schritt 4: API-Berechtigungen hinzufügen

  1. Gehen Sie in Ihrer App-Registrierung zu API permissions > Add a permission.

  2. Fügen Sie jede unten aufgeführte Application permission hinzu. Fügen Sie die Microsoft Graph-Berechtigungen und die SharePoint-Berechtigungen als separate Einträge hinzu. Wählen Sie keine Delegated permissions aus.

  3. Klicken Sie auf Grant admin consent for [Ihr Mandant] und bestätigen Sie.

Microsoft Graph-Berechtigungen:

ChannelMember.ReadWrite.All

Teams-Kanalmitgliedschaft

ChannelSettings.ReadWrite.All

Teams-Kanaleinstellungen

Directory.ReadWrite.All

Verzeichnisobjekte

Files.ReadWrite.All

Dateien in allen Websitesammlungen

Group.ReadWrite.All

Microsoft 365-Gruppen

InformationProtectionPolicy.Read.All

Richtlinien für Informationsschutz

SensitivityLabels.Read.All

Vertraulichkeitsbezeichnungen

Notes.ReadWrite.All

OneNote-Notizbücher

Sites.FullControl.All

Vollzugriff auf alle Websitesammlungen

Sites.Manage.All

Elemente in allen Websitesammlungen erstellen, bearbeiten und löschen

Sites.ReadWrite.All

Elemente in allen Websitesammlungen lesen und schreiben

Tasks.ReadWrite.All

Planner-Aufgaben

Team.Create

Teams erstellen

TeamMember.ReadWrite.All

Teammitgliedschaft

TeamsAppInstallation.ReadWriteForUser.All

Teams-App-Installationen

TeamSettings.ReadWrite.All

Teameinstellungen

TeamsTab.ReadWrite.All

Registerkarten in Teams-Kanälen

TermStore.ReadWrite.All

Terminologiespeicher

User.Read.All

Benutzerprofile

SharePoint-Berechtigungen:

Hinweis: SharePoint-Berechtigungen finden Sie in der API-Liste unter SharePoint, nicht unter Microsoft Graph.

Sites.FullControl.All

Vollzugriff auf alle Websitesammlungen

Sites.Manage.All

Elemente in allen Websitesammlungen erstellen, bearbeiten und löschen

Sites.Read.All

Elemente in allen Websitesammlungen lesen

Sites.ReadWrite.All

Elemente in allen Websitesammlungen lesen und schreiben

TermStore.Read.All

Terminologiespeicher (Lesen)

TermStore.ReadWrite.All

Terminologiespeicher (Lesen/Schreiben)

User.Read.All

Benutzerprofile (Lesen)

User.ReadWrite.All

Benutzerprofile (Lesen/Schreiben)

Verbindung von ShareGate aus herstellen

Erstellen Sie mit New-AzureApplication ein Anmeldeinformationsobjekt und übergeben Sie es dann an Connect-Site oder Connect-Tenant.

Option A: Zertifikat-Thumbprint (aus dem Generierungsskript)

Wenn Sie das Skript aus Schritt 1 verwendet haben, befindet sich das Zertifikat unter Cert:\CurrentUser\My. Übergeben Sie den Thumbprint direkt:

# Build a credential object from the certificate thumbprint
$app = New-AzureApplication -ClientId "<application-client-id>" -Thumbprint "<certificate-thumbprint>"

# Connect to a specific site
Connect-Site -Url "https://contoso.sharepoint.com/sites/Marketing" -AzureApplication $app

# Or connect at the tenant level
Connect-Tenant -Domain "contoso" -AzureApplication $app

Option B: Zertifikat aus einer .pfx-Datei

Wenn Ihnen das Zertifikat als .pfx-Datei vorliegt, laden Sie es direkt:

# Load the certificate from a .pfx file
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new(
"C:\certs\sharegate-app.pfx",
"your-pfx-password")

# Build a credential object
$app = New-AzureApplication -ClientId "<application-client-id>" -Certificate $certificate

# Connect to a site
Connect-Site -Url "https://contoso.sharepoint.com/sites/Marketing" -AzureApplication $app

Ein einzelnes App-Objekt kann mehrere Verbindungen in derselben Sitzung authentifizieren. Verwenden Sie dieselbe Variable $app für mehrere Aufrufe von Connect-Site oder Connect-Tenant wieder.

Hinweis: Wenn Ihre Sicherheitsrichtlinie die Erteilung einer der erforderlichen Berechtigungen verhindert, fügen Sie -AllowMissingPermissions zu Connect-Site oder Connect-Tenant hinzu, um trotzdem eine Verbindung herzustellen.

Vorgänge, die auf die fehlende Berechtigung angewiesen sind, schlagen mit Forbidden-Fehlern fehl.

Dieser Schalter lockert lediglich die Berechtigungsprüfung nach erfolgreicher Authentifizierung. Er behebt keine fehlgeschlagene Anmeldung.

Eine App speichern und wiederverwenden

Sie können ein App-Registrierungsobjekt speichern und in späteren Sitzungen wieder abrufen, sodass Sie es nicht jedes Mal neu erstellen müssen. Verwenden Sie Save-AzureApplication, um es zu speichern, und Get-AzureApplication, um es wieder zu laden.

Bekannte Einschränkungen

  • Modified By und Created By werden bei der Migration nicht übernommen. Elemente zeigen die Dienstidentität der App anstelle des ursprünglichen Autors an.

  • Benachrichtigungen werden übersprungen. Bei der reinen App-Authentifizierung fehlt der Benutzerkontext zum Senden von Benachrichtigungen.

  • Klassische Webparts werden nicht migriert.

  • Klassische SharePoint-Workflows werden nicht migriert.

  • InfoPath-Formulare werden teilweise migriert. Rechnen Sie mit Warnungen.

  • Publishing-Genehmigungsworkflows erfordern einen Benutzerkontext. Rechnen Sie mit Fehlern oder Warnungen.

  • Vertraulichkeitsbezeichnungen werden während der Migration noch nicht angewendet. Die Unterstützung ist für ein zukünftiges Update geplant.

Dieser Artikel wurde mit künstlicher Intelligenz übersetzt. Bei Unklarheiten konsultieren Sie bitte die englische Originalversion.

Hat dies deine Frage beantwortet?