AuthPlugin
Deze functie is geheel verwijderd in versie MediaWiki 1.33 (na eerst ontraden te zijn in MediaWiki 1.27).
Superseded door AuthManager. Zie de update gids. |
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.