AuthPlugin

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

Rozhraní autentizačního pluginu až do MediaWiki 1.26.

Existující autentizační pluginy

Existují ověřovací pluginy pro mnoho případů, jako je IMAP, LDAP a další. Kategorie:Rozšíření identity uživatele uvádí tato rozšíření.

Vytváření nových ověřovacích pluginů

Pokud potřebujete napsat svůj vlastní plugin, podívejte se na zdrojový dokument na adrese Zdrojová dokumentace MediaWiki (viz také nejnovější zdrojový kód)

Vytvořte instanci podtřídy AuthPlugin a nastavte na ni $wgAuth pro ověření proti nějakému externímu zdroji.

Výchozí chování je nic nedělat a pro veškerou autentizaci používat místní databázi uživatelů. Podtřída může vyžadovat, aby se všechny účty ověřovaly externě, nebo ji používat pouze jako záložní. Také můžete transparentně vytvořit interní wiki účty při prvním přihlášení někoho, kdo může být autentizován externě.

Pokles

Jak bylo zmíněno výše, podtřída se může vrátit zpět k lokální (tj. mediawiki db) autentizaci. Dělá to tak, že při volání metody strict() vrací false. Objekt $wgUser poté pokračuje v porovnání zaslaného hesla s heslem ve své databázi.

Podrobnosti viz tento výňatek z includes/User.php, metoda checkPassword():

if( $wgAuth->authenticate( $this->getName(), $password ) ) {
    return true;
} elseif( $wgAuth->strict() ) {
    /* Auth plugin neumožňuje místní ověřování */
    return false;
} elseif( $wgAuth->strictUserAuth( $this->getName() ) ) {
    /* Auth plugin neumožňuje místní ověření pro toto uživatelské jméno */
    return false;
}
if ( self::comparePasswords( $this->mPassword, $password, $this->mId ) ) {
    return true;

Jak vidíte, je dokonce možné, že AuthPlugin umožní pouze určitým uživatelům vrátit se ke svým místně uloženým heslům vrácením false, když je příště voláno jeho strictUserAuth().

Poznámky

  • Uživatelské jméno je přeloženo MediaWiki předtím, než je předáno funkci: První písmeno bude velké, podtržítko '_' mezera ' '.
  • Pokud autoCreate() vrátí true (MediaWiki by měla vytvořit místní účet pro uživatele), updateExternalDB( $user ) se stejně zavolá. Myslím, že to má umožnit pluginu synchronizovat uživatelská nastavení s externí databází. updateExternalDB() musí vrátit true, aby MediaWiki uložila nastavení do místního účtu.
  • AuthPlugin->userExists(...) není voláno, pokud je uživatel již uložen v databázi wiki.

Instalace

Vložte soubory do složky rozšíření (nejlépe do podsložky), než do souboru LocalSettings.php přidejte něco podobného níže uvedenému

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

Externí relace

Chcete-li zkontrolovat stav přihlášení proti nějakému externímu schématu správy relací, použijte AutoAuthenticate háček (MediaWiki 1.5 - 1.12) nebo UserLoadFromSession (od MediaWiki 1.13). Můžete také použít UserLoadAfterLoadFromSession (od MediaWiki 1.14). Tyto háčky lze kromě jednoduchého sdílení účtu použít k implementaci nastavení jednotného přihlášení.

Související odkazy