SMART Migration meldet sich bei Microsoft 365 als App-Registrierung in Microsoft Entra ID an, und zwar mit einem Zertifikat statt eines Passworts. Sie erstellen das Zertifikat, die App-Registrierung und deren Berechtigungen und tragen anschließend die IDs in der M365-Verbindung ein.
Die Einrichtung umfasst vier Schritte:
- Selbstsigniertes Zertifikat erstellen: Es weist die Identität der App gegenüber Microsoft 365 nach.
- App-Registrierung erstellen: die Identität, unter der SMART Migration ausgeführt wird.
- Berechtigungen erteilen: was die App-Registrierung lesen und schreiben darf.
- Angaben in SMART Migration eintragen: die M365-Verbindung.
Schritt 1 — Selbstsigniertes Zertifikat erstellen
Abschnitt betitelt „Schritt 1 — Selbstsigniertes Zertifikat erstellen“Das Skript erstellt zwei Dateien: eine .pfx-Datei mit dem privaten Schlüssel, die bei SMART Migration verbleibt und geheim gehalten wird, und eine .cer-Datei mit dem öffentlichen Schlüssel, die Sie in Azure hochladen.
- Öffnen Sie PowerShell ISE oder Visual Studio Code als Administrator.
- Fügen Sie das folgende Skript ein.
- Ersetzen Sie
c:\dev\MyCert.pfxundc:\dev\MyCert.cerdurch die gewünschten Pfade undMyPassworddurch ein eigenes Passwort. - Führen Sie das Skript aus.
# Create the certificate$mycert = New-SelfSignedCertificate -DnsName "MyDomain.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) -KeySpec KeyExchange -KeyFriendlyName MyKeyName -FriendlyName MyFriendlyName# Export private key to .pfx (keep this secret)$mycert | Export-PfxCertificate -FilePath c:\dev\MyCert.pfx -Password $(ConvertTo-SecureString -String "MyPassword" -AsPlainText -Force)# Export public key to .cer (this gets uploaded to Azure)$mycert | Export-Certificate -FilePath c:\dev\MyCert.cerDas Zertifikat ist fünf Jahre gültig (-NotAfter).
Die Namen im Skript sind nur Bezeichnungen
MyDomain.com kann ein beliebiger Bezeichner sein; es muss sich nicht um eine echte Domain handeln. MyKeyName und MyFriendlyName benennen das Zertifikat im Windows-Zertifikatspeicher. Sie können sie ändern oder unverändert lassen.
Die Installation des Zertifikats auf dem Computer ist optional und für die Verbindung nicht erforderlich: Zertifikat auf dem Computer installieren
Schritt 2 — App-Registrierung erstellen
Abschnitt betitelt „Schritt 2 — App-Registrierung erstellen“- Öffnen Sie im Azure-Portal Microsoft Entra ID (ehemals Azure Active Directory).
- Kopieren Sie die Mandanten-ID von der Übersichtsseite und bewahren Sie sie auf: Die Verbindung benötigt sie.
- Klicken Sie auf App-Registrierungen und dann auf Neue Registrierung. Die Standardeinstellungen sind ausreichend.
- Öffnen Sie in der neuen App-Registrierung Zertifikate & Geheimnisse, klicken Sie auf Zertifikat hochladen, wählen Sie die
.cer-Datei aus und klicken Sie auf Hinzufügen. - Kopieren Sie die Anwendungs-ID (Client) und bewahren Sie sie ebenfalls auf.

Schritt 3 — Berechtigungen erteilen
Abschnitt betitelt „Schritt 3 — Berechtigungen erteilen“Die Berechtigungen legen fest, was die App-Registrierung lesen und schreiben darf. Anschließend erteilt ein Administrator die Zustimmung für die gesamte Organisation.
- Klicken Sie auf API-Berechtigungen und dann auf Berechtigung hinzufügen.
- Fügen Sie die SharePoint- und Microsoft Graph-Berechtigungen aus den folgenden Tabellen hinzu, jeweils als Anwendungsberechtigung.
- Klicken Sie auf Administratorzustimmung erteilen für (gefolgt vom Namen Ihrer Organisation). Erst dann werden die Berechtigungen wirksam.

Microsoft Graph
Abschnitt betitelt „Microsoft Graph“| Berechtigung | Typ | Verwendet für | Grund |
|---|---|---|---|
Files.ReadWrite.All | Anwendung | OneDrive | Dateien in allen Websitesammlungen lesen und schreiben |
Group.ReadWrite.All | Anwendung | OneDrive und Teams | Alle Gruppen lesen und schreiben: Bereitstellung von Teams |
Sites.ReadWrite.All | Anwendung | Teams | Elemente in allen Websitesammlungen lesen und schreiben |
User.Read.All | Anwendung | Beides | Vollständige Benutzerprofile lesen: Analyse von Benutzern und OneDrive |
SharePoint
Abschnitt betitelt „SharePoint“| Berechtigung | Typ | Grund |
|---|---|---|
Sites.FullControl.All | Anwendung | Vollzugriff auf alle Websitesammlungen: für die Migration erforderlich |
TermStore.Read.All | Anwendung | Verwaltete Metadaten lesen: erhält Metadaten während der Migration |
TermStore.ReadWrite.All | Anwendung | Verwaltete Metadaten lesen und schreiben: wenn Metadaten migriert oder transformiert werden |
Weniger Berechtigungen ohne Content Governance
Wenn Sie Content Governance (die SMART Migration App für MS Teams) nicht verwenden, können die Microsoft Graph-Berechtigungen auf Files.Read.All reduziert werden. Das genügt für den Dateizugriff, auch für Dateien über 2 GB. Die SharePoint-Berechtigungen bleiben unverändert.
Schritt 4 — Angaben in SMART Migration eintragen
Abschnitt betitelt „Schritt 4 — Angaben in SMART Migration eintragen“- Öffnen Sie Ihre M365-Verbindung in SMART Migration.
- Tragen Sie die Anwendungs-ID (Client) und die Mandanten-ID aus Schritt 2 ein.
- Geben Sie den Pfad zur
.pfx-Datei und deren Passwort ein.

Mehr als ein Mandant
Abschnitt betitelt „Mehr als ein Mandant“Eine kommerzielle Lizenz wird auf einem Server installiert, ist aber nicht an einen Mandanten oder einen Kunden gebunden: Diese eine Installation kann mit beliebig vielen Microsoft 365-Mandanten arbeiten (Wo eine Lizenz ausgeführt werden kann). Eine Partnerlizenz funktioniert nur mit dem eigenen Mandanten und den eigenen Domänen des Partners. Richten Sie für jeden Mandanten eine eigene App-Registrierung ein (Schritte 1 bis 3 im jeweiligen Mandanten) und legen Sie in SMART Migration jeweils eine eigene M365-Verbindung an (Schritt 4).
- Mit der Nextcloud-App liest ein Job aus jedem Mandanten über die Verbindung dieses Mandanten; das Ziel ist immer Nextcloud.
- In der IDE, innerhalb eines Mandanten, liest und schreibt ein Job über dieselbe Verbindung.
- In der IDE, zwischen zwei Mandanten, liest ein Job über die Verbindung des Quellmandanten und schreibt über die des Zielmandanten.
Mehr erfahren: FAQ: Können wir SMART Migration auf unseren eigenen Servern installieren und uns mit dem SharePoint eines Kunden verbinden?
Zugriff auf ausgewählte Websites beschränken
Abschnitt betitelt „Zugriff auf ausgewählte Websites beschränken“Standardmäßig gewähren die oben genannten Berechtigungen Zugriff auf alle SharePoint-Websites. Um die App-Registrierung auf die ihr zugewiesenen Websites zu beschränken, etwa in einer Produktionsumgebung, verwenden Sie Sites.Selected anstelle von Sites.FullControl.All und Sites.ReadWrite.All.
Mehr erfahren: Sites.Selected permissions: what it is and how to use it
Microsoft Graph-Berechtigungen nach Aufgabe
Abschnitt betitelt „Microsoft Graph-Berechtigungen nach Aufgabe“Fügen Sie nur hinzu, was Sie benötigen:
| Berechtigung | Wann Sie sie benötigen |
|---|---|
Files.Read.All | Zugriff auf Dateien über 2 GB |
Sites.Read.All | Analyse von SharePoint-Websites |
User.Read.All | Analyse von Benutzern und OneDrive-Speicherorten |
Group.ReadWrite.All | Bereitstellung von Teams für Content Governance |
Sites.Selected | Zugriff nur auf ausgewählte Websites |
Benutzerinformationen aus Microsoft Entra ID lesen
Abschnitt betitelt „Benutzerinformationen aus Microsoft Entra ID lesen“SMART Migration liest Microsoft 365-Benutzerdaten wie Anzeigename, Abteilung und OneDrive-URL über die virtuelle Liste Tenant users. Dafür ist je nach verwendeten Feldern eine der folgenden Microsoft Graph-Berechtigungen erforderlich:
User.Read.All: das vollständige Benutzerprofil.User.ReadBasic.All: nur grundlegende Felder (Name, E-Mail, Foto).
Wie Sie die Liste filtern, bestimmt die Geschwindigkeit:
=undINfiltern auf dem Server: schnell und die richtige Wahl für Mandanten mit mehr als 3.000 Benutzern.BeginsWithundContainsfiltern nach dem Lesen in SMART Migration: langsamer bei großen Mandanten.
App-only-Zugriff muss zugelassen sein
Bei App-only-Authentifizierung muss SharePoint Online den App-only-Zugriff auf Microsoft Graph zulassen. Dies wird im SharePoint Admin Center festgelegt.
Zustimmungsfehler: The user or administrator has not consented to use the application with ID …