{{tag> }} ====== OpenSchulportfolio ====== **"openSchulportfolio"** ist eine auf der Software [[https://www.dokuwiki.org/dokuwiki|DokuWiki]] basierende Lösung zur Erstellung und Pflege des Schulportfolios auf Wiki-Basis.-> [[http://www.openschulportfolio.de|OpenSchulportfolio]]\\ **"Schu-Q-Wiki"** ist ein für das LS (Landesinstitut für Schulentwicklung BW) angepasste Version von OpenSchulportfolio für die Qualitätsentwicklung. -> [[http://www.openschulportfolio.de/lscd-online/html/schuqwiki.html|Schu-Q-Wiki]]\\ Dort findet man auch eine Installationsanleitung: [[http://www.openschulportfolio.de/lscd-online/09_schuqwiki/installation_osp.pdf|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__: [[http://pkg.linuxmuster.net/openml5-stable/linuxmuster-portfolio_12.11-hiccup.8_all.deb|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: [[http://www.openschulportfolio.de/_media/downloads/betaversionen/linuxmuster-portfolio_13.03-fishlegs.1_all.deb|Portfolio 13.03-fishlegs]] Dieses herunterladen und manuell installieren: dpkg --install /pad/zum/paket.deb === Downloadquellen für externe Installation === Stable Release: [[http://pkg.linuxmuster.net/openml5-stable/linuxmuster-portfolio_12.11-hiccup.8.tar.gz| Tar-Archiv OSP 12.11-hiccup.8]] Testing Release:[[ http://www.openschulportfolio.de/_media/downloads/betaversionen/openschulportfolio-13.03-fishlegs.1-full.zip|Tar-Archiv OSP 13.03]] Zum Update bestehender externer Installation gibt es eigene ZIP-Pakete, die auf der [[http://www.openschulportfolio.de|OSP]] - Seite zu finden sind. Laden Sie sich das benötigte Archiv herunter und entpacken Sie dieses. ==== Ablauf der Installation ==== - Einrichten des externen LDAPs-Zugriffs auf den internen linuxmuster.net Server - Testen des externen LDAP-Zugriffs mithilfe eines PHP-Skripts - Herunterladen des ZIP-Archivs. - Entpacken des ZIP-Archivs - Upload des entpackten //Ordners portfolio// in den DocumentRoot-Ordner des Web-Servers - Anpassen der Dateiberechtigungen für den hochgeladenen Ordner und die enthaltenen Dateien - Anpassen der OSP-Konfigurationsdateien, damit beide Authentifizierungsmechanismen angewendet werden. - Testen des Zugriffs - 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: - Der LDAPs-Port (636) im Router und im IPCOP /IPFire auf den internen Server weiterzuleiten. - 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: {{ :anwenderwiki:fw_port_weiterleitung_ldaps.png?800 |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. {{ :anwenderwiki:ldap.jpg?800 | 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.): 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 Options FollowSymLinks AllowOverride None Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ScriptAlias /cgi-bin/ /var/www/myvhost.de/cgi-bin AllowOverride None Options ExecCGI -MultiViews -Indexes +SymLinksIfOwnerMatch Order allow,deny Allow from all # 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 # SSL config for myvhost.de # # 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 Options FollowSymLinks AllowOverride None === 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 **__2__**775 {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: * [[https://www.dokuwiki.org/de:acl| ACLs definieren]] * [[https://www.dokuwiki.org/acl| Rules to set ACLs ]]