Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:webapps:portfolio]] 

OpenSchulportfolio

„openSchulportfolio“ ist eine auf der Software DokuWiki basierende Lösung zur Erstellung und Pflege des Schulportfolios auf Wiki-Basis.→ OpenSchulportfolio
„Schu-Q-Wiki“ ist ein für das LS (Landesinstitut für Schulentwicklung BW) angepasste Version von OpenSchulportfolio für die Qualitätsentwicklung. → Schu-Q-Wiki
Dort findet man auch eine Installationsanleitung: Installationsanleitung

  • OpenSchulportfolio benötigt keine Datenbank
  • Alles wird in Textdateien abgespeichert. Dadurch lässt es sich einfach installieren und kopieren.
  • OpenSchulportfolio sollte an LDAP angebunden werden und die Benutzerverwaltung vollständig über die Schulkonsole abgewickelt werden.
  • die Projekt-Gruppe: „p_portfoliored“ umfasst die Redakteure des Portfolios
  • die Projekt-Gruppe: „p_portfolioadm“ umfasst alle Administratoren des Portfolios
  • die Gruppe „teachers“ darf alle Seiten des Portfolio ansehen, aber nicht bearbeiten
  • alle anderen User des LDAP dürfen nur die Wiki-Seiten „allusers“ ansehen

OSP auf einem externen Linux-Server mit LDAPs-Authentifizierung und lokaler Authentifizierung

Ist der Linuxmuster.net Server nur über DSL angebunden, so ist der externe Zugriff auf das intern betriebene OSP (via DEB-Paket installiert) relativ langsam. Daher kann es sinnvoll sein, das OSP auf einem externen vServer / Root-Server zu betreiben. Um sicherzustellen, dass die bisherige Authentifizierung 1:1 weiterhin auch für das externe OSP genutzt wird, kann dieses so eingerichtet werden, dass die Authentifizierung via LDAPs gegen den linuxmuster.net - Server erfolgt. Zudem kann gleichzeitig die lokale Authentifizierung weiterhin genutzt werden, um so z.B. externen Beteiligten ebenfalls Zugriff auf das OSP zu gewähren.

Um beide Authentifizierungsmechanismen parallel nutzen zu können, ist in der Konfiguration der sog. chained Authentifizierungsmodus einzustellen. Diese ist mit den aktuelleren Versionen ab hicupp.11 zu realisieren.

Quellen

Zur internen Installation auf dem linuxmuster.net Server:

linuxmuster.net 5.1

stable release im Repository openml5-stable:

OSP 12.11-hiccup.8 DEB

OSP ist wie folgt zu installieren:

apt-get install 
linuxmuster-portfolio

linuxmuster.net 6

Es kann die Version aus openml5-stable verwendet werden. Hierzu in der etc/apt/sources.list.d eine neue Datei anlegen (z.B. linuxmuster-osp.list) mit folgendem Inhalt:

# Basispaket Linuxmuster.net 5.1 stable - mit OSP stable release 12.11.hiccup.8
deb http://pkg.linuxmuster.net/ openml5-stable/
deb-src http://pkg.linuxmuster.net/ openml5-stable/

danach sind die Quellen einmal zu aktualisieren und anschließend OSP wie folgt zu installieren:

apt-get update
apt-get install linuxmuster-portfolio

Ist OSP nun installiert, so sollten unter linuxmuster.net 6 die Einträge für o.g. Quellen wieder auskommentiert werden.

testing release als Download unter:

Portfolio 13.03-fishlegs

Dieses herunterladen und manuell installieren:

dpkg --install /pad/zum/paket.deb

Downloadquellen für externe Installation

Stable Release: Tar-Archiv OSP 12.11-hiccup.8

Testing Release:Tar-Archiv OSP 13.03

Zum Update bestehender externer Installation gibt es eigene ZIP-Pakete, die auf der OSP - Seite zu finden sind.

Laden Sie sich das benötigte Archiv herunter und entpacken Sie dieses.

Ablauf der Installation

  1. Einrichten des externen LDAPs-Zugriffs auf den internen linuxmuster.net Server
  2. Testen des externen LDAP-Zugriffs mithilfe eines PHP-Skripts
  3. Herunterladen des ZIP-Archivs.
  4. Entpacken des ZIP-Archivs
  5. Upload des entpackten Ordners portfolio in den DocumentRoot-Ordner des Web-Servers
  6. Anpassen der Dateiberechtigungen für den hochgeladenen Ordner und die enthaltenen Dateien
  7. Anpassen der OSP-Konfigurationsdateien, damit beide Authentifizierungsmechanismen angewendet werden.
  8. Testen des Zugriffs
  9. Anpassen des Portfolios und Test der Plugins.

Vorbereitende Maßnahmen am linuxmuster.net Server

Um vom externen OSP-Server eine LDAPs-Authentifizierung gegen den internen linuxmuster.net Server durchführen zu können, ist es erforderlich, dass Anfragen auf dem Port 636 auf den linuxmuster.net Server weitergeleitet werden und dieser eine entsprechende Antwort zurückliefert. Diese sollte nach erfolgreichem Funktionstest auf eine externe IP-Adresse begrenzt werden, damit nur Anfragen des externen OSP-Servers weitergeleitet werden.

Hierzu sind:

  1. Der LDAPs-Port (636) im Router und im IPCOP /IPFire auf den internen Server weiterzuleiten.
  2. Auf dem IPCOP / IPFire Regeln (siehe nachstehende Bilder für IPCOP) zu definieren.

Auf dem Router ist eine Portweiterleitung für Port 636 auf die externe Netzwerkkarte des IPCop (rot) / IPFire einzurichten. im IPCop sind unter Firewall → Port-Weiterleitung folgende Regeln einzurichten:

Port Forwarding LDAPs

Hinweis: Anstelle des roten Pfeils ist die IP-Adresse des externen Servers einzutragen, der LDAPs anfragen schicken darf.

Zusätzlich ist im IPCop unter Firewall → Block Outgoing Traffic folgende Regel einzutragen.

 BOT LDAPs Einstellungen

Die IP-Adresse des anfragenden Servers ist rot durchgestrichen.

Installation des OSP auf dem externen Linux-Server

Web-Server / Document-Root

Nachdem das o.g. TAR-Arcghiv heruntergeladen und entpackt wurde, ist der Ordner portfolio samt Unterordner und Dateien in das DocumentRoot Verzeichnis des Web-Serveres des externen Servers zu entpacken. Die Dateien können via FTP/sFTP oder SCP übertragen werden.

Wird Ubuntu 12.04 in Verbindug mit Apache2 verwendet, so ist das Document-Root Verzeichnis auf

/var/www

voreingestellt. Das Verzeichnis portfolio ist in dieses Verzeichnis oder in das Verzeichnis des eingerichteten vHosts zu kopieren.

Das DocumentRoot Verzeichnis des Apache2 wird in

/etc/apache2/sites/enabled 

festgelegt. Dort findet sich eine Konfigurationsdatei für den aktivierten vHost.

Diese könnte wie folgt aussehen (Umleitung aller Anfrage auf SSL etc.):

<VirtualHost  *:80>
ServerAdmin webmaster@myvhost.de
# redirect port 80 access to ssl access via port 443
       # apache mod rewrite has to be enabled
      RewriteEngine On
      RewriteCond %{HTTPS} !=on
      RewriteRule ^/(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R]
      #  
DocumentRoot /var/www/myvhost.de/htdocs
ServerName myvhost.de
ServerAlias www.myvhost.de
DirectoryIndex index.php index.xhtml index.html index.htm
      <Directory />
             Options FollowSymLinks
             AllowOverride None
     </Directory>
      <Directory /var/www/myvhost.de/htdocs>
              Options FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
      </Directory>
      
   ScriptAlias /cgi-bin/ /var/www/myvhost.de/cgi-bin
    <Directory "/var/www/myvhost.de/cgi-bin">
        AllowOverride None
        Options ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
# Horde einbinden
Alias /horde  /var/www/horde

ErrorLog /var/www/myvhost.de/log/error_myvhost.de.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/myvhost.de/log/access_myvhost.de.log combined
#ServerSignature On

</VirtualHost>

# SSL config for myvhost.de
#
<VirtualHost *:443>
#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on
      #   A self-signed (snakeoil) certificate can be created by installing
      #   the ssl-cert package. See
      #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
      #   If both key and certificate are stored in the same file, only the
      #   SSLCertificateFile directive is needed.
      SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
      SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
ServerAdmin webmaster@myvhost.de
DocumentRoot /var/www/myvhost.de/htdocs
ServerName myvhost.de
ServerAlias www.myvhost.de
DirectoryIndex index.php index.xhtml index.html index.htm
      <Directory />
             Options FollowSymLinks
             AllowOverride None
     </Directory>

Dateiberechtigungen des OSP auf dem Web-Server

Der Benutzer, unter dem der Daemon Apache2 läuft ist unter Ubuntu i.d.R. www-data. Da OSP von PHP ausgeführt wird, benötigt der PHP-Prozess Schreibrechte für diese Dateien. Der Benutzer www-data muss also im Ordner portfolio Schreibrechte für die Dateien besitzen.

Die folgenden Berechtigungen müssen geändert werden damit OSP funktioniert:

  • data/ und data/tmp/ Verzeichnis: Für alle Dateien in und unterhalb dieser Verzeichnisse müssen für www-data Schreibrechte eingeräumt werden.
  • lib/plugins/ Verzeichnis: Für die Funktion des plugin-Managers benötigt www-data Schreibrechte auf dieses Verzeichnis.
  • lib/ Verzeichnis: Dieses Verzeichnis muss für alle lesbar sein, um die Stylesheets angezeigt zu bekommen. Die Berechtigung '755' wird hierfür empfohlen.
  • conf/ Verzeichnis: Für die folgenden Dateien muss wwwrun Schreibrechte besitzen:
    • local.php
    • users.auth.php und acl.auth.php sind für die ACL Web-Konfiguration und den Plugin-Usermanager erforderlich.

Um unter Ubuntu diese Berechtigungen zu setzen, können folgende Kommandos verwendet werden: Hier könnten die folgenden Kommandos verwendet werden:

  • data Verzeichnis:
    • deinwiki> chmod 775 data/ _ _ _ _*
    • deinwiki> chgrp www-data data/
  • Web-Konfiguration zulassen:
    • deinwiki/conf> chgrp www-data local.php;chmod 664 local.php
  • Benutzer-/ACL-manager zulassen:
    • deinwiki/conf> chgrp www-data {users.auth.php,acl.auth.php};chmod 664 {users.auth.php,acl.auth.php}
  • Plugin manager zulassen:
    • deinwiki/lib> chgrp www-data plugins/
    • deinwiki/lib> chmod 775 plugins/

In Verzeichnissen wo das setgid Bit gesetzt ist, gehören neu erstellte Dateien und Verzeichnisse zur selben Gruppe wie das Verzeichnis in dem sich die Dateien befinden. Die folgenden Beispiele zeigen, wie man eine solche Konfiguration für den Benutzer www-data, der zur Gruppe www-data gehört, einrichten kann.

  • data Verzeichnis:
    • deinwiki> chmod 775 data/
    • deinwiki> chown www-data:www-data data/
  • alles unterhalb des data-Verzeichnisses:
    • deinwiki> chmod 2775 {attic,cache,index,locks,media,meta,pages,tmp}
    • deinwiki> chown www-data:www-data {attic,cache,index,locks,media,meta,pages,tmp}

Anpassen der Grundkonfiguration des OSP

Ziel ist es nun, den externen OSP-Server so anzupassen, dass sowohl eine LDAPs-Authentifizierung gegenüber dem internen linuxmuster.net Server erfolgt und zudem eine lokale Anmeldung möglich ist.

Hierzu ist die Datei

/var/www/myvhost.de/htdocs/portfolio/conf/local.php 

anzupassen.

Diese Datei könnte wie folgt aussehen:

$conf['title'] = 'Mein OSP';
$conf['lang'] = 'de';
$conf['template'] = 'portfolio2';
$conf['license'] = '';
$conf['recent'] = 35;
$conf['breadcrumbs'] = 7;
$conf['youarehere'] = 1;
$conf['dformat'] = '%d.%m.%Y %H:%M';
$conf['sneaky_index'] = 1;
$conf['useacl'] = 1;
$conf['authtype'] = 'chained'; //chained, ldap, plain 
//es erfolgt zuerst der Versuch via LDAP anzumelden, falls dies scheitert wird eine lokale Anmeldung versucht
$conf['auth']['chained']['authtypes'] = 'ldap,plain';
$conf['auth']['chained']['usermanager_authtype'] = 'plain';
$conf['auth']['chained']['find_auth_by_password'] = 'false';
$conf['defaultgroup'] = 'users';
$conf['superuser'] = 'admin,@portfolioadm';
//lokaler Benutzer dessen md5 Kennwort in users.auth.php abgelegt wird
$conf['manager'] = 'admin';
$conf['rememberme'] = 0;
$conf['disableactions'] = 'register,resendpwd';
$conf['updatecheck'] = 0;
$conf['autoplural'] = 1;
$conf['compress'] = 0;
$conf['plugin']['selectsearch']['searchnamespaces'] = '|Alles^M
portfolio|Portfolio^M
hilfe|Hilfe';
$conf['plugin']['tag']['pagelist_flags'] = 'default';
$conf['plugin']['include']['showcomments'] = 0;
$conf['plugin']['include']['showlinkbacks'] = 0;
$conf['plugin']['task']['datefield'] = 0;
$conf['plugin']['task']['tasks_formposition'] = 'top';
$conf['plugin']['archiveupload']['manageronly'] = 1;
$conf['tpl']['portfolio2']['sitetitle'] = 'My OSP';
$conf['tpl']['portfolio2']['schoolname'] = 'My OSP School';
$conf['openregister'] = '0';
$conf['plugin']['include']['noheader'] = '1';
// end auto-generated content
// Eine der LDAP Optionen durch entfernen der "//" 
// aktivieren - bevorzugt LDAPS zur 
// verschlüsselten Übertragung der Benutzerdaten verwenden
// ldap ssl
$conf['auth']['ldap']['server']   = 'ldaps://url.meinesservers.de:636';
$conf['auth']['ldap']['version'] = '3';
// AENDERN an die eigene Schule anpasssen
$conf['auth']['ldap']['usertree']    = 'ou=accounts,dc=linuxmuster,dc=local';
$conf['auth']['ldap']['grouptree']   = 'ou=groups,dc=linuxmuster,dc=local';
$conf['auth']['ldap']['userfilter']  = '(&(uid=%{user})(objectClass=posixAccount))';
$conf['auth']['ldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))';
$conf['auth']['ldap']['groupdelprefix'] = "p_";

Anpassen der Konfiguration innerhalb des OSP

Nachdem Sie OSP erfolgreich auf einem externen Server installiert und konfiguriert haben, sollte nun sowohl eine lokale Anmeldung als admin als auch eine Anmeldung mit einem LDAP-Nutzer des internen linuxmuster.net Servers möglich sein. Anders als bei dem intern installierten OSP haben Sie nun als admin einen Benutzer-Manager mit dessen Hilfe Sie für weitere externe Nutzer Accounts anlegen können und unter der Zugangsverwaltung haben Sie die Möglichkeit, für die Namensräume Berechtigungen für einzelne Nutzer und/oder für Nutzergruppen festzulegen.

Hinweise zur Definition dieser ACLs finden Sie unter:

 [[anwenderwiki:webapps:portfolio]] anwenderwiki/webapps/portfolio.txt · Zuletzt geändert: 2013/04/11 22:16 von 127.0.0.1