AuthPlugin/cs

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ší. 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 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



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 (od MediaWiki 1.14). Tyto háčky lze kromě jednoduchého sdílení účtu použít k implementaci nastavení jednotného přihlášení.

