AuthPlugin
Deprecated: Diese veraltete Funktion sollte nicht mehr verwendet werden, ist jedoch noch für Gründe der Abwärtskompatibilität verfügbar. |
Authentication plugin interface (dt. Authentifizierungs-Erweiterungs-Schnittstelle) bis MediaWiki 1.26.
Exsistierende Authentication-Plugins
Es gibt bereits verschiedene Authentication Plugins für viele verschiedene Anwendungsfälle; IMAP, LDAP und andere. Category:User identity extensions ist eine Liste dieser Erweiterungen.
Neue Authentication Plugins erstellen
Wenn du deine eigene Erweiterung schreibst, schaue dir den Quellcode in der MediaWiki Dokumentation an (siehe auch: Der aktuelle Code)
Erstellen sie eine neue Instanz der Unterklasse AuthPlugin und setzten sie $wgAuth ein, um es gegen externe Zugriffe einzurichten.
Die Standardeinstellung ist, nichts zu tun und einfach die lokale Nutzerdatenbank zur Identifizierung zu nutzen. Eine Unterklasse kann erzwingen, dass sich alle Accounts extern identifizieren oder die Nutzerdatenbank als Fallback nutzen. Außerdem kann man Wikiaccounts erstellen, wenn sich jemand extern identifiziert.
Fall-back
Wie bereits erwähnt, kann die Unterklasse auch die lokale Datenbank als Fall-back nutzen. Dies geschieht, wenn die "Strict()" Methode false' zurückgibt. Das $wgUser object vergleicht dann das eingegebene Passwort mit der Datenbank.
Siehe auch: der Auszug aus includes/User.php für Deteils, die Methode checkPassword():
if( $wgAuth->authenticate( $this->getName(), $password ) ) { return true; } elseif( $wgAuth->strict() ) { /* Das Authentication Plugin erlaubt keine lokale Identifizierung */ return false; } elseif( $wgAuth->strictUserAuth( $this->getName() ) ) { /* Das Authentication Plugin erlaubt für diesen Benutzernamen keine lokale Identifizierung. */ return false; } if ( self::comparePasswords( $this->mPassword, $password, $this->mId ) ) { return true;
Es ist also möglich, mit dem Authentication Plugin nur betimmten Benutzer die Identifizierung über die lokale Datenbank zu ermöglichen, indem man false bei strictUserAuth() zurückgibt.
Anmerkungen
- Der Benutzername wird von MediaWiki angepasst, bevor er der Funktion übergeben wird: Der erste Buchstabe wird groß geschrieben, der Unterstrich '_' wird zum Lehrzeichen ' '.
- Wenn autoCreate() true zurückgibt, (MediaWiki solllte einen lokalen Account für den Benutzer anlegen) updateExternalDB( $user ) wird auch aufgerufen. updateExternalDB() muss true zurückgeben, damit MediaWiki die Einstellungen im lokalen Account speichert.
- AuthPlugin->userExists(...) wird nicht aufgerufen, wenn der Benutzer schon in der Datenbank ist.
Installation
Speicher die Dateien im Erweiterungsordner, dann füge etwas Ähnliches wie das Untere zu LocalSettings.php hinzu.
require_once( "$IP/extensions/MyAuthPlugin/MyAuthPlugin.php" );
$wgAuth = new MyAuthPlugin();
Externe Links
In order to check the login status against some external session management scheme, use the AutoAuthenticate hook (MediaWiki 1.5 - 1.12) or UserLoadFromSession (since MediaWiki 1.13). Du kannst auch UserLoadAfterLoadFromSession verwenden (seit MediaWiki 1.14) These hooks can be used to implement a single-signon setup, in addition to simple account sharing.