Jump to content

AuthPlugin

From mediawiki.org
This page is a translated version of the page AuthPlugin and the translation is 92% complete.

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();

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.

Siehe auch