Dieses Ticket dient der Analyse und Auswahl der ergänzenden MediaWiki-Extensions, die die Funktionalität des Shared-Tables-SSO erweitern (z.B. zentrale Rechte, globale Benutzerseiten).
Was getan werden muss
Die gängigen Erweiterungen, die auf der Shared-Tables-Strategie aufbauen, müssen identifiziert und auf ihre Notwendigkeit, Stabilität, Kompatibilität und Wartungsaufwand hin bewertet werden.
- Identifikation der Kandidaten: Eine Liste relevanter "Global"-Extensions (z.B. GlobalUserRights, GlobalUserPage, GlobalBlocking etc.) muss erstellt werden.
- Anforderungsabgleich: Jede Extension muss gegen unsere spezifischen Anforderungen geprüft werden:
- Benötigen wir global synchronisierte Rechte?
- Ist eine globale Benutzerseite erwünscht?
- Welche Auswirkungen hat die Extension auf die Performance beider Wikis?
- Kompatibilitätsprüfung: Es muss sichergestellt werden, dass die ausgewählten Extensions mit der gewählten MediaWiki-Version und der Wikibase-Erweiterung kompatibel sind.
- Entscheidungsfindung: Es wird eine finale Auswahl der Erweiterungen getroffen, die in den folgenden Implementierungsschritten installiert und konfiguriert werden.
Warum wir das tun
Ein reines Teilen der Benutzer- und Session-Tabellen (Shared-Tables) reicht oft nicht aus, um ein nahtloses SSO-Erlebnis zu schaffen.
- Konsistente Benutzererfahrung: Erst die Global-Extensions sorgen dafür, dass sich der Benutzer beim Wechsel der Instanz nicht neu konfigurieren muss (z.B. dieselben Rechte, dieselbe Benutzerseite).
- Zentrale Administration: Die Entscheidung für GlobalUserRights würde es ermöglichen, Benutzergruppen und Administratoren zentral zu verwalten, was den Administrationsaufwand stark reduziert.
- Vermeidung von Wildwuchs: Die bewusste Auswahl verhindert die Installation unnötiger oder ungeeigneter Erweiterungen, die Wartungsprobleme verursachen könnten.
Ergebnis der Evaluierung und finale Auswahl
Die Prüfung der gängigen "Global"-Erweiterungen auf Basis der Shared-Tables-Strategie hat folgende Empfehlungen ergeben.
| Erweiterung | Funktion | Entscheidung | Begründung |
|---|---|---|---|
| GlobalUserRights | Zentralisiert die Zuweisung von Benutzergruppen und Rechten (z.B. Admin-Status, Bürokrat) über alle Wikis hinweg. | Implementieren | Essentiell für die zentrale Verwaltung der Administratoren und die Durchsetzung konsistenter Benutzerrechte auf beiden Instanzen. |
| GlobalUserPage | Zeigt die Benutzerseite aus dem Haupt-Wiki auch in der Wikibase-Instanz an, falls dort keine lokale Seite existiert. | Implementieren | Verbessert die Benutzerfreundlichkeit und sorgt für eine konsistente Identität über die Instanzen hinweg. |
| GlobalBlocking | Ermöglicht die zentrale Sperrung von Benutzern oder IP-Adressen für alle verbundenen Wikis. | Zurückstellen | Ist für den initialen Betrieb nicht zwingend erforderlich. Kann später bei Bedarf als eigenständiges Ticket hinzugefügt werden. |
| GlobalPreferences | Synchronisiert Benutzereinstellungen (z.B. Sprache, Oberfläche) über alle verbundenen Wikis. | Implementieren | Sehr empfehlenswert für eine nahtlose Benutzererfahrung. Reduziert den Konfigurationsaufwand für den Nutzer beim Instanz-Wechsel. |
| GlobalCssJs | Erlaubt die zentrale Definition und Nutzung von benutzerspezifischem CSS/JS für beide Wikis. | Implementieren | Wichtig für die einheitliche Anpassung der Oberfläche und zur Vereinfachung der Wartung des benutzerdefinierten Stylings. |
| GlobalBlocking | Ermöglicht die zentrale Sperrung von Benutzern oder IP-Adressen für alle verbundenen Wikis. | Zurückstellen | Ist für den initialen Betrieb nicht zwingend erforderlich und kann bei Bedarf nachgeliefert werden. |
| GlobalUsage | Zeigt die globale Nutzung einer Datei in allen verbundenen Wikis an. | Zurückstellen | Nicht relevant für die Kerneinführung der strukturierten Daten. |
Fazit und Konsequenz
Es werden die Erweiterungen GlobalUserRights, GlobalUserPage und GlobalPreferences zur Implementierung freigegeben. Das nächste Ticket muss die technische Umsetzung (Installation und Konfiguration) dieser drei Erweiterungen sowie die Konfiguration der nativen Shared-Tables ($wgSharedTables) umfassen.