Jump to content

AuthPlugin

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

Authenticatie-plugin-interface tot MediaWiki 1.26.

Bestaande authenticatie-plugins

Er zijn bestaande authenticatie-plugins voor veel gevallen zoals IMAP en LDAP. Een lijst Category:User identity extensions met deze extensies.

Nieuwe authenticatie-plugin maken

Als u uw eigen plug-in wilt schrijven, raadpleeg dan het brondocument in de MediaWiki brondocumentatie (zie ook de laatste broncode)

Maak een Instantie van een subklasse van AuthPlugin en stel $wgAuth in om te authenticeren via een externe bron.

Het standaardgedrag is om niets te doen en de lokale gebruikersdatabase te gebruiken voor alle authenticatie. Een subklasse kan vereisen dat alle accounts extern geauthenticeerd worden, of alleen als een back-up gebruiken; u kunt ook transparant interne wiki accounts maken bij de eerste inlog die extern geauthentificeerd kan worden.

Fall-back

Zoals hierboven vermeld, kan een subklasse terugvallen op lokale (d.w.z. mediawiki db) authenticatie. Het doet dit door false terug te geven wanneer de strict() methode wordt aangeroepen. Het $wgUser object gaat vervolgens verder met het vergelijken van het opgegeven wachtwoord met het wachtwoord in de database.

Zie dit fragment van includes/User.php voor details, methode checkPassword():

if( $wgAuth->authenticate( $this->getName(), $password ) ) {
    return true;
} elseif( $wgAuth->strict() ) {
    /* De plugin Auth toestaat geen lokale authenticatie toe */
    return false;
} elseif( $wgAuth->strictUserAuth( $this->getName() ) ) {
    /* De plugin Auth staat geen lokale authenticatie voor deze gebruikersnaam toe */
    return false;
}
if ( self::comparePasswords( $this->mPassword, $password, $this->mId ) ) {
    return true;

Zoals u kunt zien, is het zelfs mogelijk voor AuthPlugin om alleen bepaalde gebruikers toe te staan terug te vallen op hun lokaal opgeslagen wachtwoorden door false terug te sturen wanneer de strictUserAuth() daarna wordt aangeroepen.

Opmerkingen

  • De gebruikersnaam wordt door MediaWiki vertaald voordat het wordt doorgegeven aan de functie: Eerste letter wordt hoofdletter, onderstreepje '_' wordt spatie ' '.
  • Als autoCreate () waar is (MediaWiki moet een lokaal account voor de gebruiker maken) wordt de updateExternalDB ($user) toch aangeroepen. Ik denk dat dit is om de plugin te laten synchroniseren met de gebruikersinstellingen met de externe database. updateExternalDB () moet weer waar zijn om de instellingen in het lokale account te laten opslaan.
  • AuthPlugin->userExists (...) wordt niet aangeroepen wanneer de gebruiker al in de wiki DataBase is opgeslagen.

Installatie

Zet de bestanden in de map voor extensies (bij voorkeur een submap), dan iets toevoegen als het hieronder aan uw LocalSettings.php

require_once( "$IP/extensions/MyAuthPlugin/MyAuthPlugin.php" );
$wgAuth = new MyAuthPlugin();

Externe sessies

Om de inlogstatus te controleren aan de hand van een extern sessiebeheerschema, gebruikt u UserLoadAfterLoadFromSession (sinds MediaWiki 1.14).

De verouderde opties zijn de AutoAuthenticate hook (MediaWiki 1.5 - 1.12) en UserLoadFromSession (Media Wiki 1.13 - 1.26).

Deze hooks kunnen worden gebruikt om een instelling een-keer-aanmelden te implementeren, naast het eenvoudige delen van accounts.

Zie ook