Admin-Consent-Flow für Multi-Tenant-Microsoft-365-Lösungen meistern
Von Mirko Peters ·
Willkommen zurück im Blog! Wenn Sie schon einmal versucht haben, eine individuelle SharePoint-Framework-Lösung (SPFx) von Ihrem Entwicklungsmandanten in die Produktivumgebung eines Kunden zu übertragen, kennen Sie das flaue Gefühl, wenn Dinge still und leise scheitern…
Automatisch mit KI aus dem Originalbeitrag übersetzt. Englisches Original lesen
Willkommen zurück im Blog! Wenn Sie schon einmal versucht haben, eine individuelle SharePoint-Framework-Lösung (SPFx) von Ihrem Entwicklungsmandanten in die Produktivumgebung eines Kunden zu übertragen, kennen Sie das flaue Gefühl, wenn Dinge still und leise scheitern. Multi-Tenant-Entwicklung für Microsoft 365 ist bekanntermaßen schwierig. Identitätsgrenzen, Sicherheitsparameter, mandantenspezifische Website-Architekturen und Zustimmungshürden können eine routinemäßige Bereitstellung schnell zu einem echten Albtraum machen. Deshalb tauchen wir heute tief in den Admin-Consent-Flow für Multi-Tenant-Lösungen ein. Wenn Sie sich noch intensiver mit dem Audio-Gespräch beschäftigen möchten, sehen Sie sich unbedingt unsere passende Podcast-Folge Fix Multi-Tenant SPFx Authentication an, in der wir genau diese Szenarien durchgehen.
In diesem Beitrag zeigen wir Ihnen, wie Sie Ihre Anwendungen richtig konfigurieren, Ihre Kunden ohne Reibungsverluste durch das Onboarding des Mandanten und die Administratorzustimmung führen, delegierte Microsoft-Graph-Bereiche so behandeln, dass keine leeren Datensätze entstehen, und elegante Laufzeit-Hinweisbanner sowie Fehlerzustände umsetzen. Lassen Sie uns die Multi-Tenant-Entwicklung vorhersehbar, sicher und wiederholbar machen.
Für wen dieser Beitrag gedacht ist
Dieser Leitfaden richtet sich gezielt an Fachleute, die über mehrere Microsoft-365-Umgebungen hinweg arbeiten und skalierbare, verlässliche Architekturen benötigen. Besonders hilfreich ist er, wenn Sie:
- SPFx-Entwickler oder Microsoft-365-Berater sind und individuelle Komponenten für mehrere Kundenmandanten bereitstellen.
- IT-Administrator oder Managed Service Provider (MSP) sind und SharePoint Online- und Entra-ID-Umgebungen von Kunden betreuen.
- Softwarepartner oder Independent Software Vendors (ISVs) sind und SPFx-Webparts, Erweiterungen und Add-ins für den kommerziellen Vertrieb als Produkt aufbereiten.
Authentifizierung ist kein Boilerplate-Code: So richten Sie Ihre Multi-Tenant-Entra-ID-App ein
Eine der gefährlichsten Fallen, in die Entwickler tappen, ist die Behandlung der Authentifizierung als einfachen Boilerplate-Code, der von Projekt zu Projekt kopiert werden kann. Wenn eine Lösung für mehrere Organisationen laufen soll, muss Ihre Entra-ID-App-Registrierung ausdrücklich für Multi-Tenancy konfiguriert sein.
Bleibt Ihre App-Registrierung versehentlich als Single-Tenant konfiguriert, laufen Benutzer außerhalb Ihrer Stammorganisation sofort in Anmeldeschleifen oder stoßen auf Berechtigungsfehler. Um das zu beheben, stellen Sie sicher, dass für Ihre App-Registrierung als unterstützte Kontotypen „Konten in einem beliebigen Organisationsverzeichnis (Mehrinstanzen)“ eingestellt ist. Außerdem sollten Sie die exakten delegierten Graph-Bereiche festlegen, die Ihre Lösung benötigt, und dabei dem Prinzip der geringsten Rechte folgen. Zudem konfigurieren Sie präzise Umleitungs-URIs, die sowohl SharePoint-Online-Domänen als auch Ihre lokale Entwicklungsumgebung berücksichtigen.
Ein reibungsloses, geführtes Onboarding und einen geführten Admin-Consent-Flow aufbauen
Wenn alltägliche Geschäftsanwender Zustimmungsdialoge selbst bewältigen müssen, kann das Ihren Rollout ins Stocken bringen. Noch schlimmer ist es, wenn von Kunden-IT-Administratoren erwartet wird, einem ungeführten Dialog blind zu vertrauen. Das führt häufig zu blockierten Installationen. Um Vertrauen aufzubauen und die Einführung zu erleichtern, sollten Sie eine geführte Onboarding-Seite entwickeln.
Ein professionelles Onboarding bietet Kunden-Administratoren einen klaren Überblick über die erforderlichen Bereiche, eine exakte URL für die administrative Zustimmung, die die Bereitstellung der Unternehmensanwendung auslöst, sowie eine Schritt-für-Schritt-Anleitung zur Überprüfung. Indem Sie eine zielgruppenspezifische Zustimmung unterstützen, mit der Administratoren die Zustimmung für die gesamte Organisation oder für gezielte Pilotgruppen erteilen können, senken Sie die Einstiegshürde und beseitigen Reibungsverluste bei der Bereitstellung.
Delegierte Graph-Bereiche verarbeiten und leere Datensätze verhindern
Haben Sie schon einmal ein Webpart bereitgestellt, das in Ihrer Entwicklungsumgebung hervorragend funktioniert, bei der Installation im Kundenmandanten aber komplett leere Seiten anzeigt? Das ist ein typisches Symptom für fehlende Administratorzustimmung im Mandanten oder nicht übereinstimmende Verzeichnisdaten.
Wenn Microsoft Graph leere Datensätze zurückgibt, liegt das selten an der Anwendungslogik. Meist bedeutet es, dass sich die Anwendung erfolgreich authentifiziert hat, der Mandantenadministrator die erforderlichen delegierten Bereiche aber noch nicht zugestimmt hat. Ebenso möglich ist, dass die organisatorischen Datenfilter nicht zu den Benutzerprofilen oder Website-Strukturen des Kunden passen. Testen Sie Ihre Abfragen immer im Graph Explorer mit einem repräsentativen Benutzerkontext des Kunden. Und gestalten Sie Ihre Anwendungslogik so, dass sie mit unvollständigen oder fehlenden Datensätzen sauber umgeht, statt unbehandelte Ausnahmen auszulösen.
Hilfreiche Laufzeit-Berechtigungsbanner und Fehlerzustände gestalten
Selbst mit der besten Onboarding-Planung übersieht ein Administrator gelegentlich einen Bereich oder entzieht Berechtigungen später wieder. Wenn das passiert, sollte Ihre Anwendung weder abstürzen noch einen kryptischen JavaScript-Konsolenfehler anzeigen. Stattdessen sollte sie hilfreiche Laufzeit-Berechtigungsbanner und kontextbezogene Fehlerzustände anzeigen.
Wenn Ihre SPFx-Webparts die Berechtigungen zur Laufzeit asynchron prüfen, erkennen sie einen ungültigen oder fehlenden Token-Bereich sofort. Wird eine Lücke gefunden, zeigen Sie ein übersichtliches, professionelles Banner an, das darauf hinweist, dass eine administrative Zustimmung erforderlich ist. Das Banner enthält einen direkten Link zu Ihrem geführten Onboarding oder zur Zustimmungs-URL. Aus einem frustrierenden Supportticket wird so eine Selbstbedienungslösung für den Kunden.
Konfiguration auslagern und das SPFx-Paket frei von Geheimnissen halten
Mandanten-IDs, Client-IDs, API-Endpunkte oder Client-Geheimnisse fest im SPFx-Paket zu hinterlegen, ist ein gravierender Sicherheitsverstoß und zugleich eine betriebliche Sackgasse. Wenn Sie diese Angaben in den Code einbauen, müssen Sie für jeden Kunden, den Sie onboarden, dutzende eigene Builds verwalten.
Der richtige Ansatz ist, das SPFx-Paket vollständig mandantenunabhängig zu gestalten. Speichern Sie Ihre Konfigurationseinstellungen an einem mandantenbezogenen Ort, etwa in einer zentralen SharePoint-Konfigurationsliste, in einer externen API oder in Azure App Configuration. Benötigen Ihre Backend-Dienste Anwendungsgeheimnisse, verwalten und speichern Sie diese sicher in Azure Key Vault und betten sie nicht in clientseitige Code-Bundles ein.
Einmal paketieren, überall bereitstellen: Die Strategie mit einer einzigen Pipeline
Sobald Ihr Code konfigurationsgesteuert und frei von Geheimnissen ist, können Sie eine Bereitstellungsstrategie mit einer einzigen Pipeline einsetzen. Das bedeutet: Sie kompilieren und paketieren Ihre Lösung nur einmal zu einer einzigen .sppkg-Datei und stellen genau dieses Paket in allen Kundenmandanten bereit.
Wo sinnvoll, können Sie mit mandantenbezogenen Bereitstellungen arbeiten. So veröffentlichen Sie Ihre Lösung in zentralen App-Katalogen und automatisieren Ihre CI/CD-Pipelines für Erstellen, Bündeln, Paketieren und Veröffentlichen, ohne manuell Code-Forks anlegen zu müssen. Das vereinfacht die Versionsverwaltung erheblich und stellt sicher, dass jeder Kunde Code aus exakt demselben getesteten Binärstand ausführt.
Überwachung, Telemetrie und frühzeitiges Erkennen von Fehlern
Wenn Sie Lösungen verwalten, die in dutzenden verschiedenen Kundenmandanten laufen, können Sie sich nicht darauf verlassen, dass Kunden jeden Fehler melden. Sie brauchen proaktive Transparenz über den Zustand Ihrer Anwendung. Eine zentrale Telemetrie ist dafür unverzichtbar.
Konfigurieren Sie Ihre SPFx-Komponenten so, dass sie strukturierte Telemetriedaten ausgeben, darunter Mandanten-IDs, Korrelations-IDs, aktive Funktionen und Fehlermeldungen. Diese Daten senden Sie direkt an Application Insights oder an Azure Monitor-Dashboards. Warnmeldungen für wiederkehrende Authentifizierungsfehler oder Graph-Zeitüberschreitungen ermöglichen es Ihrem Entwicklungsteam, Probleme zu erkennen und zu beheben, bevor Ihre Kunden sie überhaupt bemerken.
Häufige Fallstricke und ihre Behebung
Auch bei sorgfältiger Planung tauchen bestimmte Hürden in Mehrmandantenszenarien immer wieder auf. Hier sind die häufigsten Symptome, mit denen Entwickler konfrontiert werden, und wie Sie sie beheben:
- Symptom: Anmeldeschleifen oder Fehler mit der Meldung „funktioniert für meinen Mandanten, aber nicht für deren Mandanten.“
Ursache: Ihre App-Registrierung ist versehentlich auf einen einzelnen Mandanten beschränkt oder die Antwort-URL stimmt nicht überein.
Behebung: Stellen Sie den Typ Ihrer App-Registrierung auf mehrere Mandanten um, überprüfen und aktualisieren Sie Ihre Umleitungs-URIs und führen Sie den Ablauf für die administrative Zustimmung erneut aus. - Symptom: Microsoft Graph gibt leere Datensätze zurück.
Ursache: Die administrative Zustimmung des Mandanten fehlt oder Benutzer-/Gruppenfilter sind zu restriktiv.
Behebung: Starten Sie den Workflow für die administrative Zustimmung, testen Sie Ihre genauen API-Abfragen im Graph Explorer mit einem echten Kundenkonto und lockern Sie zu restriktive Abfragefilter. - Symptom: Benutzer können den Webpart nicht zu ihren modernen Seiten hinzufügen.
Ursache: Das Paket wurde nicht mandantenweit bereitgestellt, oder organisationsweite App-Richtlinien blockieren es.
Lösung: Prüfen Sie den Bereitstellungsstatus im App-Katalog und kontrollieren Sie die mandantenweiten Einstellungen für Microsoft 365-Apps sowie die Bereitstellungsrichtlinien. - Symptom: Für kleine Konfigurationsänderungen müssen Sie die Lösung neu kompilieren und erstellen.
Ursache: Fest codierte Bezeichner, URLs oder Endpunkte.
Lösung: Lagern Sie Ihre Konfigurationswerte in eine SharePoint-Liste oder einen sicheren Konfigurationsspeicher aus und rufen Sie sie zur Laufzeit dynamisch ab.
Governance, Sicherheitsgrundlagen und Least Privilege
In Unternehmensumgebungen ist Sicherheits-Governance unverzichtbar. Um Ihre Kunden zu schützen und die Compliance zu wahren, sollten Sie folgende Grundprinzipien beachten:
- Fordern Sie immer nur die absolut notwendigen delegierten Berechtigungen (Scopes) an und überprüfen Sie diese regelmäßig.
- Speichern Sie niemals Geheimnisse im Klartext. Nutzen Sie Azure Key Vault und rotieren Sie Geheimnisse nach einem festen Zeitplan.
- Verwenden Sie Richtlinien für App-Berechtigungen in Microsoft Teams und SharePoint, um die Sichtbarkeit von Apps auf bestimmte Benutzergruppen zu beschränken.
- Führen Sie ein Zustimmungsregister, in dem dokumentiert ist, welche Kundenmandanten zugestimmt haben, wann die Zustimmung erteilt wurde und welche Berechtigungen genehmigt wurden.
- Passen Sie das visuelle Erscheinungsbild an die Kundenumgebungen an, indem Sie die Design-APIs von SharePoint nutzen, anstatt statische, mandantenspezifische CSS-Dateien auszuliefern.
Validierungsplan vor dem Go-Live beim Kunden
Bevor Sie eine Kundenbereitstellung freigeben und sie als erfolgreich abschließen, durchlaufen Sie einen gründlichen Validierungsplan, damit es keine bösen Überraschungen gibt.
- Testen Sie Ihre Microsoft Graph-Aufrufe im Zielmandanten des Kunden ausführlich mit dem Graph Explorer, und zwar mit genau demselben Konto und denselben Berechtigungen.
- Führen Sie eine kontrollierte Pilotphase auf einer einzelnen, dafür vorgesehenen Websitesammlung mit einer kleinen Gruppe der Zielbenutzer durch.
- Prüfen Sie Versionsverlauf und Rollback-Verfahren direkt im SharePoint-App-Katalog des Kunden.
- Simulieren Sie Szenarien mit offline gegangenen oder abgelaufenen Token, um sicherzustellen, dass Ihre individuellen Fehlermeldungen und Wiederherstellungsabläufe reibungslos funktionieren.
Häufige Fragen
Benötige ich Anwendungsberechtigungen für SPFx?
In der Regel nicht. SPFx läuft vollständig im delegierten Benutzerkontext. Anwendungsberechtigungen erfordern zusätzliche administrative Genehmigungen und spezielle Architekturmuster. Verwenden Sie sie nur dann, wenn Hintergrundverarbeitung außerhalb einer Benutzersitzung erforderlich ist.
Kann ich die Zustimmung pro Mandant umgehen?
Nein. Das Sicherheitsmodell von Microsoft verlangt, dass der Administrator jedes Mandanten die angeforderten Berechtigungen einer mandantenübergreifenden App ausdrücklich genehmigt. Sie können diesen Prozess vereinfachen, aber nicht vollständig umgehen.
Wie behalte ich eine einzige Codebasis für viele Kunden bei?
Gestalten Sie Ihre Lösung vollständig mandantenunabhängig, lagern Sie Konfigurationsdaten aus, automatisieren Sie Ihre Paketierungs- und Bereitstellungspipelines und nutzen Sie Feature-Flags, um kundenspezifische Schalter dynamisch zu steuern.
Wie finde ich „Es ist leer“ schneller heraus?
Protokollieren Sie Ihre Microsoft Graph-Antworten zusammen mit Prüfungen der Berechtigungen und zeigen Sie einen Hinweis direkt in der Oberfläche an, wenn eine Zustimmung fehlt oder der Scope nicht ausreicht. Ergänzen Sie ihn um einen direkten Link, über den sich das Problem sofort beheben lässt.
Fazit
Die Beherrschung des Administratorzustimmungs-Ablaufs und der mandantenübergreifenden Authentifizierung für SPFx-Lösungen unterscheidet Amateurlösungen von Produkten auf Unternehmensniveau. Wer eine mandantenübergreifende Entra ID-App einrichtet, geführte Onboarding-Prozesse aufbaut, die Konfiguration auslagert und proaktive Telemetrie einführt, kann die Unsicherheit bei Bereitstellungen beseitigen und jedem Kunden einen reibungslosen Ablauf bieten. Mehr über die Praxis beim Umgang mit diesen Identitätsherausforderungen erfahren Sie in unserer vollständigen Diskussion in der Podcast-Episode Fix Multi-Tenant SPFx Authentication. Vielen Dank fürs Lesen und viel Erfolg beim Programmieren!