MediaWikiAuthTool: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
Zeile 9: Zeile 9:
  
 
* Client-Side
 
* Client-Side
+stillt pending+
+
Der Dateien der Client Applikation können in eine beliebige applikation eingebungen werden. Angepasst werden muss ebenfalls die Klass Config (class/Config.php). Angegeben werden muss der Server, auf welchem die Server-Side läuft ($remoteServer), die URI die auf die Datei aut.php zeigt ($remoteURI) und der Port auf welchem der Server erreichbar ist ($remotePort).
 +
Um den Client zu verwenden, einfach den folgenden Code einbinden:
 +
 
 +
 
 +
require_once("class/Config.php");
 +
 
 +
require_once("class/AuthorizerClient.php");
 +
 
 +
 
 +
$config = new Config();
 +
 
 +
$authorizer = new AuthorizerClient($config);
 +
 
 +
$result = $authorizer->validate("aUsername", "aPassword");
 +
 
 +
if($result->success) { ... } else { ... }
  
 
* Client-Server Communication
 
* Client-Server Communication

Version vom 21. Februar 2008, 18:09 Uhr

  • Ubersicht

Das MediaWikiAuthTool ist eine MediaWiki-Erweiterung, welche es einer anderen Applikation, welche auf einem beliebigen andern Server (Client-Side) läuft, user an der MediaWiki-Datenbank (Server-Side) zu Authentisiern. Das heisst für diese andere Applikation muss keine Userverwaltung implementiert werden und es könne alle schon bestehenden User von der MediaWiki-Datenbank verwendet werden.

Das Tool besteht auf einer Server- sowie einer Client-Side. Beides sind zwei kleine PHP Anwendungen welche (Server) auf dem MediaWiki-Server und (Client) auf einem beiliebigen anderen Server läuft. Die folgenden beiden Abschnitte beschreiben die beiden Sides.

  • Server-Side

Um den Server zu installieren, müssen die dateien der Server-Applikation in ein beliebiges Verzeichnis des Webservers das Machine, auf welcher das MediaWiki läuft, kopiert werden (die Datei aut.php muss von aussen via http erreichbar sein). Die Konfiguration des Server geschieht im Config file class/Config.php. Darin kann der name des Datenbankservers ($dbServerName) der name der Datenbank ($dbName) Datenbank-Username ($dbUserName) und dessen Passwort ($dbPassword) konfiguriert werden. Es kann auch angegeben werden, ob die Passwörter "salted" sind. alle diese informationen findet man in der LocaleSettings.php Datei des MediaWikis (liegt im Hauptverzeichnis des MediaWikis). Da Server-Side-Debuging mühsam ist und man sonst nicht so viel Rückmeldung bekommt von der Server-Side, gibt es eine Logger-Komponnente. Im Config file kann der Log-Level eingestellt werden. Mögliche werte sind: ALL, ERROR, ACCESS oder NONE. ALL bedeutet ACCESS und ERROR. NONE heisst der logger ist ausgeschalten.

  • Client-Side

Der Dateien der Client Applikation können in eine beliebige applikation eingebungen werden. Angepasst werden muss ebenfalls die Klass Config (class/Config.php). Angegeben werden muss der Server, auf welchem die Server-Side läuft ($remoteServer), die URI die auf die Datei aut.php zeigt ($remoteURI) und der Port auf welchem der Server erreichbar ist ($remotePort). Um den Client zu verwenden, einfach den folgenden Code einbinden:


require_once("class/Config.php");

require_once("class/AuthorizerClient.php");


$config = new Config();

$authorizer = new AuthorizerClient($config);

$result = $authorizer->validate("aUsername", "aPassword");

if($result->success) { ... } else { ... }

  • Client-Server Communication

Der Server und der Client kommunizeren miteinander über XML. Die Anfrage, welche der Client sendet sieht folgendermassen aus:

<?xml version="1.0" standalone="yes"?>

<ValidationRequest>

<UserName>aUserName</UserName>

<Password>usersPassword</Password>

</ValidationRequest>

Das Passwort wird UNVERSCHLÜSSELT übermittelt.


Die Antwort des Servers sieht folgendermassen aus:

<ValidationResult>

<successful>false</successful>

<message>An message</message>

</ValidationResult>

Der Tag <successful> enthält enweder den Wert "true" oder "false" welcher beschreibt ob die authentikation erfolgreich ist oder nicht.