MediaWikiAuthTool: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Client-Side)
Zeile 19: Zeile 19:
 
   require_once("class/Config.php");
 
   require_once("class/Config.php");
 
   require_once("class/AuthorizerClient.php");
 
   require_once("class/AuthorizerClient.php");
 
+
 
 
   $config = new Config();
 
   $config = new Config();
 
   $authorizer = new AuthorizerClient($config);
 
   $authorizer = new AuthorizerClient($config);
 
   $result = $authorizer->validate("aUsername", "aPassword");
 
   $result = $authorizer->validate("aUsername", "aPassword");
 
   if($result->success) { ... } else { ... }
 
   if($result->success) { ... } else { ... }
 
  
 
== Client-Server-Kommunikation ==
 
== Client-Server-Kommunikation ==

Version vom 16. April 2008, 20:23 Uhr

Übersicht

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 authentisieren. Das heisst, dass für diese andere Applikation keine Benutzerverwaltung implementiert werden muss. Zudem können alle schon bestehenden Benutzer von der MediaWiki-Datenbank verwendet werden.

Das Tool besteht aus 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. Auf der Client-Side können auch andere Sprachen verwendet werden, da es ein RESTful API ist.

Programmier-Dokumentation

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-Kommunikation

Der Server und der Client kommunizieren 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 - im positiven Falle - folgendermassen aus:

 <ValidationResult>
   <successful>true</successful>
   <message>An message</message>
 </ValidationResult>

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