<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>riecken.de &#187; Authentifizierung</title>
	<atom:link href="http://riecken.de/index.php/tag/authentifizierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://riecken.de</link>
	<description>Gedanken zu Bildung, Lehre und Schule</description>
	<lastBuildDate>Wed, 16 May 2012 06:40:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<meta xmlns="http://www.w3.org/1999/xhtml" name="robots" content="noindex,follow" />
		<item>
		<title>Evaluationssystem: Kopplung des LDAP mit Moodle</title>
		<link>http://riecken.de/index.php/2009/01/evaluationssystem-kopplung-des-ldap-mit-moodle/</link>
		<comments>http://riecken.de/index.php/2009/01/evaluationssystem-kopplung-des-ldap-mit-moodle/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 12:08:24 +0000</pubDate>
		<dc:creator>Maik Riecken</dc:creator>
				<category><![CDATA[Tech-Talk]]></category>
		<category><![CDATA[Authentifizierung]]></category>
		<category><![CDATA[koppeln]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[verbinden]]></category>

		<guid isPermaLink="false">http://riecken.de/?p=394</guid>
		<description><![CDATA[Vorausgesetzt wird, dass Moodle auf dem gleichen Server wir der eingerichtete und mit Daten befüllte slapd läuft. Schematisch ist diese Anleitung ganz allgemein verwendbar, um Moodle ein einen openLDAP-Server zu koppeln. Die &#8220;Bulkuploadleute&#8221; brauchen diese Anleitung nicht&#8230; Zunächst einmal müssen wir sicherstellen, dass die Authentifizierng über openLDAP überhaupt in Moodle aktiviert ist. Dazu klicken Sie [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Vorausgesetzt wird, dass Moodle auf dem gleichen Server wir der eingerichtete und mit Daten befüllte slapd läuft. Schematisch ist diese Anleitung ganz allgemein verwendbar, um Moodle ein einen openLDAP-Server zu koppeln. Die &#8220;Bulkuploadleute&#8221; brauchen diese Anleitung nicht&#8230;</p>
<p style="text-align: justify;">Zunächst einmal müssen wir sicherstellen, dass die Authentifizierng über openLDAP überhaupt in Moodle aktiviert ist. Dazu klicken Sie im Administrationsmenu</p>
<blockquote><p>Website-Administration =&gt; Nutzer/innen =&gt; Authentifizierung =&gt; Übersicht</p></blockquote>
<p style="text-align: justify;">auf das geschlossene Auge bei &#8220;<em>LDAP-Server&#8221;</em>, so es denn noch geschlossen ist. Durch das Aktivieren der LDAP-Aurhentifizierung bleiben übrigens alle übrigen Authentifizierungsmethoden funktionsfähig. Jetzt erscheint im Menu</p>
<blockquote>
<p style="text-align: justify;">Website-Administration =&gt; Authentifizierung</p>
</blockquote>
<p style="text-align: justify;">ein neuer Eintrag mit dem Namen &#8220;<em>LDAP-Server</em>&#8220;, den es anzuklicken gilt. Es folgt eine umfangreiche Konfigurationsseite. Ich hangle mich mich jetzt nur durch die Felder hindurch, die geändert oder mit Daten befüllt werden müssen. Alle anderen Felder bleiben jungfräulich. Es werden folgende Angaben aus dem vorherigen Schritt benötigt:</p>
<ul>
<li>Wert der Variablen $organisation (evaluation)</li>
<li>Wert der Variablen $domain (schuldomain)</li>
<li>Wert der Variablen $tld (tld)</li>
</ul>
<p>Ich nenne zunächst das Konfigurationsfeld gefolgt von einem Pfeil (=&gt;), hinter dem der einzutragende Inhalt steht.</p>
<p><span id="more-394"></span></p>
<p><strong>Grundkonfiguration</strong></p>
<p>Host-URL =&gt; ldap://localhost</p>
<p>Version =&gt; 3 (wenn es nicht klappt: 2)</p>
<p>LDAP-Codierung =&gt; utf-8</p>
<p>Kennwörter verbergen =&gt; ja</p>
<p>Nutzertyp =&gt; posixAccount (rfc2307)</p>
<p>Kontexte =&gt; ou=evaluation,dc=schuldomain,dc=tld (bitte an eigene Werte anpassen)</p>
<p>Suchkontexte suchen =&gt; ja</p>
<p>Objekt Class =&gt; objectClass=posixAccount</p>
<p style="text-align: justify;">Wir haben jetzt Moodle mitgeteilt, in welchem Teil des LDAP-Baumes (Kontext) es mit welchen Einstellungen nach Nutzerinnen suchen muss. Jetzt kümmern wir uns darum, wie er mit den gefundenen Daten umgehen soll, was hauptsächlich dazu dient, dass auch beim ersten dem Einloggen bereits vollständige Propfile vorliegen.</p>
<p style="text-align: justify;"><strong>Data Mapping</strong></p>
<p style="text-align: justify;">Alle im folgenden erwähnten Felder sind zusätzlich mit den Einstellungen &#8220;Bei jedem Login&#8221;, &#8220;Nie&#8221;, &#8220;gesperrt&#8221; über die jeweiligen Dropdownmenus zu versehen.</p>
<p style="text-align: justify;">Vorname =&gt; givenName</p>
<p style="text-align: justify;">Nachname =&gt; sn</p>
<p style="text-align: justify;">E-Mail-Adresse =&gt; mail</p>
<p style="text-align: justify;">Stadt/Ort =&gt; postalAddress</p>
<p style="text-align: justify;">Sprache =&gt; preferedLanguage</p>
<p style="text-align: justify;">Beschreibung =&gt; description</p>
<p style="text-align: justify;">Damit sollten sich die mittels des Scriptes generierten Nutzer/innen am System so anmelden können, dass keine Ergänzung der Profilfelder notwendig ist.</p>
<p style="text-align: justify;">Für die Profis:</p>
<p style="text-align: justify;">Das LDAP-Script (eval_to_ldap.php ) füllt im LDAP für jede Zufalls-ID eine Art &#8220;Objekt&#8221;, welches verschiedene Attribute (fakultativ und obligatorisch) enthält. Dieser Objekttyp heißt &#8220;posixAccount&#8221; und wir haben jetzt Moodle mitgeteilt, welches Attribut des Objektes er für welche Nutzereigenschaft verwenden soll, indem wir die Attributnamen einem Feld zugewiesen haben. Das ist eine spannende Fähigkeit von Moodle, da ich im LDAP Attribute ändern kann, die Moodle dann durch die Art des Datamappings ohne Rumgepfusche in der Datenbank sofort anzeigt.</p>
<p style="text-align: justify;">Wir zeigen auf diese Weise etwa über das fakultative Attribut &#8220;gecos&#8221; die Klasse eines Schülers mit an, die sich ja jedes Jahr ändert. Die Verwaltung erfolgt dabei zentral im Schulverwaltungssystem, welches mit unserem LDAP gekoppelt ist. So lassen sich Personendaten und Moodledatenbank sinnvoll trennen.</p>
<p style="text-align: center;"><a title="zur vorherigen Seite" href="http://riecken.de/?p=381" target="_self">zurück</a> | vor</p>
]]></content:encoded>
			<wfw:commentRss>http://riecken.de/index.php/2009/01/evaluationssystem-kopplung-des-ldap-mit-moodle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Asymmetrische Verschlüsselung mit SSH</title>
		<link>http://riecken.de/index.php/2008/10/asymmetrische-verschlusselung-mit-ssh/</link>
		<comments>http://riecken.de/index.php/2008/10/asymmetrische-verschlusselung-mit-ssh/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 08:05:51 +0000</pubDate>
		<dc:creator>Maik Riecken</dc:creator>
				<category><![CDATA[Tech-Talk]]></category>
		<category><![CDATA[auth]]></category>
		<category><![CDATA[Authentifizierung]]></category>
		<category><![CDATA[Einrichtung]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Key]]></category>
		<category><![CDATA[Schlüssel]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://riecken.de/?p=268</guid>
		<description><![CDATA[Es gibt zwar zu diesem Thema viele Tutorials im Netz, jedoch konnte ich mir bisher keines so richtig merken. Was kann man damit eigentlich anstellen? Normalerweise logge ich mich in einen Server mit einem Benutzernamen und einem Passwort ein. Der Server überprüft dann, ob mein eingegebener Benutzername zum auf dem Server gespeicherten Passwort (meist ein [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt zwar zu diesem Thema viele Tutorials im Netz, jedoch konnte ich mir bisher keines so richtig merken.</p>
<p><strong>Was kann man damit eigentlich anstellen?</strong></p>
<p style="text-align: justify;">Normalerweise logge ich mich in einen Server mit einem Benutzernamen und einem Passwort ein. Der Server überprüft dann, ob mein eingegebener Benutzername zum auf dem Server gespeicherten Passwort (meist ein Hash) passt und gewährt mir im positiven Fall dann Zugriff. Das lässt sich eigentlich ganz gut mit einem Zahlenschloss an einem Fahrrad vergleichen: Nur wer die korrekte Kombination kennt, kann dieses Schloss öffnen. Bei einem Fahrradschloss kann ich als böser Bube jedoch durch Ausprobieren die korrekte Kombination herausfinden. Das ist lediglich eine Frage der Zeit. Je einfacher mein Passwort aufgebaut ist (etwa &#8220;3333&#8243;, desto weiniger Zeit wird der Angreifer benötigen.</p>
<p style="text-align: justify;">Aufgrund dieser Problematik wurde im Serverbereich die Authentifizierung via Schlüssel (Key) erfunden. Das Verfahren ist eigentlich sehr pfiffig: Der Benutzer generiert zunächst einmal zwei Schlüssel: Einen privaten und einen öffentlichen. Bei der Anmeldung am Server geschieht nun folgendes:</p>
<p style="text-align: justify;">Der Benutzer sendet seinen Benutzernamen, der aber mit mit seinem privaten Schlüssel verschlüsselt (unkenntlich gemacht) ist. Der Server besitzt den öffentlichen Schlüssel und den Benutzernamen des Benutzers. Bei ihm kommt nun eine kryptische Zeichenkette an, die er nur mit dem öffentlichen Schlüssel wieder in den Benutzernamen umwandeln kann. Die öffentliche Schlüssel muss zu dem privaten Schlüssel passen. Zudem taugt der öffentliche Schlüssel nur zur Entschlüsselung, nicht jedoch zur Verschlüsselung.</p>
<p style="text-align: justify;">Um ganz genau zu sein (Danke Markus&#8230;):</p>
<p style="text-align: justify;">Speziell bei SSH ist es nun so, dass die asymmetrische Verschlüsselung nach diesem Verfahren nur verwendet wird, um einen Schlüssel für eine performantere synchrone Verschlüsselung auszuhandeln. Nach dem Handshake machen Server und Client also &#8220;ihr eigenes Ding&#8221;.</p>
<p style="text-align: justify;"><strong>Vorteil:</strong></p>
<p style="text-align: justify;">Nur wer im Besitz des privaten Schlüssels ist, kann sich am Server anmelden. Das Ausprobieren von Passworten ist theoretisch nicht denkbar (man müsste die Verschlüsselung imitieren), aber praktisch immens schwierig und zeitaufwendig.</p>
<p style="text-align: justify;">Ein Bild für dieses Verfahren ist z.B. ein Fahrradschloss mit Schlüssel. Der private Schlüssel hängt am Schlüsselbund des Benutzers. Die Schlossmechanik selbst ist der öffentliche Schlüssel und weit aufwendiger zu imitieren als etwa eine Zahlenkombination herauszufinden.</p>
<p style="text-align: justify;">Natürlich kann man mit dem Verfahren nicht nur Benutzernamen, sondern alle möglichen Texte verschlüsseln. &#8211; z.B. auch E-Mails. Den öffentlichen Schlüssel kann man gefahrlos weitergeben, sodass sich den jeder Empfänger herunterladen kann.</p>
<p style="text-align: justify;">Hier einmal ein einfaches Schaubild:</p>
<p style="text-align: justify;"><a href="http://riecken.de/wp-content/uploads/2008/10/asymmetrische_verschlusselung.png"><img class="aligncenter size-medium wp-image-269" title="asymmetrische_verschlusselung" src="http://riecken.de/wp-content/uploads/2008/10/asymmetrische_verschlusselung-300x171.png" alt="" width="300" height="171" /></a></p>
<p style="text-align: justify;"><strong>Wie funktioniert das nun praktisch?</strong></p>
<p style="text-align: justify;"><span id="more-268"></span></p>
<p style="text-align: justify;">Zunächst muss man in einem Linuxsystem als normaler Benutzer (Clientbenutzer) einen privaten und einen öffentlichen Schlüssel generieren. Das funktioniert über den Befehl:</p>
<p style="text-align: justify;"><em>ssh-keygen -d</em></p>
<p style="text-align: justify;">Dabei wird ein Passwort abgefragt. Man kann seinen privaten Schlüssel zusätzlich durch ein Passwort schützen, d.h. nur derjenige, der dieses Passwort besitzt, darf mit diesem Schlüssel verschlüsseln. Möchte man z.B. via Script vom fremden Server Dateien holen oder schreiben (eine typischen Anwendung),  darf kein Passwort vergeben werden und gleichzeitig muss der private Schlüssel gegen unbefugten Zugriff verstärkt gesichert werden.</p>
<p style="text-align: justify;">Durch diesen Befehl entstehen zwei Dateien im Homeverzeichnis des gerade eingeloggten Benutzers:</p>
<p>1. /.ssh/id_dsa.pub (öffentlicher Schlüssel)<br />
2. /.ssh/id_dsa (privater Schlüssel)</p>
<p>Nur der erste Schlüssel darf verteilt werden, also das System verlassen!</p>
<p>Jetzt muss der öffentliche Schlüssel auf den Server gelangen., auf den man sich per Key einloggen möchte.</p>
<p>Damit sind die Arbeiten auf dem Client abgeschlossen.</p>
<p><strong>Teil 2: Arbeiten auf dem Server</strong></p>
<p>Man sollte sich zunächst überlegen, unter welchen Benutzernamen (Serverbenutzer) man sich auf dem Server einloggen möchte. Es ist nicht immer empfehlenswert, dass das der Rootbenutzer ist.</p>
<p>Man loggt sich zunächst auf dem Server mit dem gewünschten Benutzer ein und kopiert die Datei id_dsa.pub  vom Client in das Homeverzeichnis des Serverbenutzers. Danach legt man dort mit</p>
<p><em>touch $HOME/.ssh/authorized_keys</em></p>
<p>die Datei &#8220;authorized_keys&#8221; an und kopiert mit</p>
<p><em>cat $HOME/id_dsa.pub &gt;&gt; $HOME/.ssh/authorized_keys</em></p>
<p style="text-align: justify;">den öffentlichen Schlüssel in diese Datei. Anschließend sollte man auf dem Server mit</p>
<p style="text-align: justify;"><em>rm $HOME/id_dsa.pub</em></p>
<p style="text-align: justify;">Die kopierte Schlüsseldatei wieder löschen.</p>
<p style="text-align: justify;"><strong>Teil 3: Generalprobe</strong></p>
<p style="text-align: justify;">Man loggt sich jezt als Clientbenutzer auf dem Client ein. Anschleßend überprüft man durch:</p>
<p style="text-align: justify;"><em>ssh serverbenutzer@server.tld</em></p>
<p style="text-align: justify;">ob das alles funktioniert. Hat man einen Schlüssel ohne Passwort erzeugt, sollte man jetzt auf dem Server als</p>
<p style="text-align: justify;"><em>serverbenutzer</em></p>
<p style="text-align: justify;">eingeloggt sein. Das funktioniert nicht, wenn man auf dem Client als ein anderer Benutzer eingeloggt ist weil da das Schlüsselpaar eben nur für einen Nutzer gilt.</p>
]]></content:encoded>
			<wfw:commentRss>http://riecken.de/index.php/2008/10/asymmetrische-verschlusselung-mit-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LDAP: Schulfotoseitenzugriff auf Schulöffentlichkeit beschränken</title>
		<link>http://riecken.de/index.php/2008/08/ldap-schulfotoseitenzugriff-auf-schuloffentlichkeit-beschranken/</link>
		<comments>http://riecken.de/index.php/2008/08/ldap-schulfotoseitenzugriff-auf-schuloffentlichkeit-beschranken/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 13:03:05 +0000</pubDate>
		<dc:creator>Maik Riecken</dc:creator>
				<category><![CDATA[Tech-Talk]]></category>
		<category><![CDATA[Authentifizierung]]></category>
		<category><![CDATA[Foto]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[Schutz]]></category>

		<guid isPermaLink="false">http://riecken.de/?p=141</guid>
		<description><![CDATA[Bilder von Schülerinnen und Schülern sind oft ein Problem &#8211; vor allem dann, wenn man sie veröffentlich und das vielleicht sogar noch so tut, dass Namen einem bestimmten Foto zugeordnet werden können. In einigen Bundesländern ist das sogar strikt verboten. Auch hier kann LDAP abmildern: Man nutzt ein Schul-LDAP als &#8220;Zapfstelle&#8221; für eine HTTP-basierte Authentifizierung, [...]]]></description>
			<content:encoded><![CDATA[<p>Bilder von Schülerinnen und Schülern sind oft ein Problem &#8211; vor allem dann, wenn man sie veröffentlich und das vielleicht sogar noch so tut, dass Namen einem bestimmten Foto zugeordnet werden können. In einigen Bundesländern ist das sogar strikt verboten.</p>
<p>Auch hier kann LDAP abmildern: Man nutzt ein Schul-LDAP als &#8220;Zapfstelle&#8221; für eine HTTP-basierte Authentifizierung, die vielen bestimmt bekannt ist (.htaccess).</p>
<p>Mit meinem Lieblingswebserver (lighty) geht das sehr leicht &#8211; das auth-Modul muss allerdings aktiviert sein.</p>
<blockquote><p>server.modules                += ( &#8220;mod_auth&#8221; )</p>
<p>auth.backend                 = &#8220;ldap&#8221;</p>
<p>auth.backend.ldap.hostname   = &#8220;127.0.0.1&#8243;<br />
auth.backend.ldap.base-dn    = &#8220;ou=ldapbaum,dc=foo,dc=tld&#8221;<br />
auth.backend.ldap.filter     = &#8220;(uid=$)&#8221;</p>
<p>$HTTP["host"] == &#8220;subdomain.fuer.fotos&#8221; {<br />
auth.require = (   &#8220;&#8221; =&gt; (<br />
&#8220;method&#8221;  =&gt; &#8220;basic&#8221;,<br />
&#8220;realm&#8221;   =&gt; &#8220;Anmeldung bitte mit Schulogin und -passwort fuer die Seite &#8220;,<br />
&#8220;require&#8221; =&gt; &#8220;valid-user&#8221;<br />
)<br />
)<br />
}</p></blockquote>
<p>&#8230; und schon ist nach einem <em>/etc/init.d/lighttpd force-reload</em> der Zugriff auf die Seite <em>http://subdomain.fuer.fotos</em> mit allen Unterseiten nicht mehr ohne Anmeldung möglich, wenn lokal der LDAP-Server oder eine Kopie bzw. Replikation davon mitläuft. So kann sich der der potentielle Kinderschänder nicht mehr ohne Weiteres sein nächstes Opfer anhand des letzten Schwimmwettbewerbsbildes auswählen &#8211; es sei denn, er kommt selbst von der Schule (zugegebenermaßen eine sehr düstere Option). Ingesamt nett und simpel.</p>
<p>Wenn man das jetzt noch mit WebDAV und Moodle kombiniert, kann man sogar einzelnen Lehrkräften Schreibrechte in bestimmten Moodleordnern einräumen. Da Lighty reguläre Ausdrücke unterstützt, müsste das sogar recht schmerzfrei gehen. Aber das ist eine andere Geschichte&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://riecken.de/index.php/2008/08/ldap-schulfotoseitenzugriff-auf-schuloffentlichkeit-beschranken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moodle und Benutzerverwaltung&#8230;</title>
		<link>http://riecken.de/index.php/2008/08/moodle-und-benutzerverwaltung/</link>
		<comments>http://riecken.de/index.php/2008/08/moodle-und-benutzerverwaltung/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 09:02:53 +0000</pubDate>
		<dc:creator>Maik Riecken</dc:creator>
				<category><![CDATA[Moodle]]></category>
		<category><![CDATA[Tech-Talk]]></category>
		<category><![CDATA[Authentifizierung]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[Moode]]></category>
		<category><![CDATA[zentral]]></category>

		<guid isPermaLink="false">http://riecken.de/?p=140</guid>
		<description><![CDATA[&#8230; ist in meinen Augen so gar nicht gelungen, da immer wieder gleiche Probleme auftreten: Moodle aktzeptiert z.B. nur Datensätze, die eine &#8211; im Format gültige E-Mailadresse &#8211; enthalten. Nun besitzt nicht jeder Schüler oder jede Schülerin eine solche &#8211; von Lehrkräften einmal ganz zu schweigen. Das führt oft dazu, dass die Admins &#8220;Fantasieadressen&#8221; erfinden [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; ist in meinen Augen so gar nicht gelungen, da immer wieder gleiche Probleme auftreten:</p>
<ol>
<li>Moodle aktzeptiert z.B. nur Datensätze, die eine &#8211; im Format gültige E-Mailadresse &#8211; enthalten. Nun besitzt nicht jeder Schüler oder jede Schülerin eine solche &#8211; von Lehrkräften einmal ganz zu schweigen. Das führt oft dazu, dass die Admins &#8220;Fantasieadressen&#8221; erfinden &#8211; im allerschlimmsten Fall mit einem gültigen Domainanteil &#8211; womit man mit seiner Server-IP schnell auf gängigen Blacklists landet und dann kaum Mails mehr verschickt werden können.</li>
<li>Moodle loggt exzessiv Benutzeraktivitäten (eigentlich jeden Klick) &#8211; das Bewusstsein für Datenschutz scheint mir gerade in angloamerikanischen Kontexten nicht so sensibel entwickelt. In Deuschland gilt der Grundsatz der Datensparsamkeit. Man kann rechtlichen Problemen vorbeugen, indem man die Eltern entsprechende Einverständniserklärungen unterschreiben lässt, was einen erheblichen Aufwand bedeutet. Die Anzeige einer Information vor der erstmaligen Anmeldung, welche Daten in welchem Umfang erhoben werden, dürfte bei Minderjährigen rechtlich ins Leere laufen. Dieses Problem wird immer wieder gerne wegdiskutiert mit dem Argument, dass man sich zwischen dem pädagogisch Sinnvollen und der Gängelung durch rechtliche Kontexte kreativ bewegen muss. Fakt ist aber leider, dass Moodle nicht das Prinzip der Datensparsamkeit erfüllt.</li>
<li>Interoperabilität zwischen verschiedenen Moodlesystemen (und dadurch zwischen Schulen) wird durch MNET &#8211; das Moodlenetwork möglich. Ich war bisher immer entschieden zu doof, das zu konfigurieren. Außerdem ist mir nie ganz klargeworden, welche Daten da tatsächlich ausgetauscht werden.</li>
</ol>
<p>Es folgt eine kleine Spinnerei, wie derartige Probleme technisch gut in den Griff zu bekommen sind. Das erfordert jedoch einiges an Brain 2.0 &#8211; denn die Lösung heißt in meinen Augen LDAP.<span id="more-140"></span></p>
<p>Moodle kann dank LDAP-basierter Authentifizierung seine Nutzer weitgehend in einem LDAP-Baum verwalten. Moodle verwendet für Nutzerdatensätze weitgehend das inetorgperson-Schema, was schonmal sehr gut zu LDAP passt. Desweiteren kann Moodle Nutzerinnen und Nutzer aus mehreren LDAP-Bäumen gleichzeitig verwalten. Darin könnte ein Ansatz liegen, der die genannten drei Probleme weitgehend erschlägt.</p>
<p>Man organisiert einen LDAP-Baum, mit folgendem Aufbau:</p>
<p><tt><br />
- rootdn<br />
--- moodlessysteme<br />
------- Schule1<br />
----------- Schüler<br />
----------- Lehrer<br />
------- Schule2<br />
----------- Schüler<br />
----------- Lehrer<br />
------- Schule3<br />
-----------  ....<br />
---- ldap-Admins<br />
------- schule01<br />
------- schule02<br />
------- schule03<br />
</tt></p>
<p>Die ldap-Admins haben jeweils Schreibrechte im gleichnamigen Unterbaum (und nur dort), sodass man sie innerhalb des jeweiligen Moodles als Binduser einsetzen und Nutzer durch Moodle im LDAP anlegen lassen kann.</p>
<p>Der konkrete Nutzer kann sein Profil trotzdem überarbeiten (die nicht gesperrten Felder) und die werden dann im LDAP automatisch aktualisiert. Der Datenimport erfolgt zweckmäßigerweise über das ldif-Format, was sich leicht auch aus Excel-Tabellen (cvs) oder einer bestehenden Moodlenutzerdatenbank einfach generieren lässt. Ein solches LDAP kann &#8220;nebenbei&#8221; auch als Adressbuch für die Schulverwaltung dienen.</p>
<p>Das Datamapping von Moodle ermöglicht nun zusätzlich eine Anonymisierung, etwa unter Zuhilfenahme der im inetorgperson-Schema befindlichen GID und UID-Nummer (die man dann z.B. mit einem zusätzlichen statischen Schlüssel versehen innerhalb des Moodlesystems anzeigt).  Somit ist eine genaue Nutzerzuordnung trotz Logging erstmal nur durch den Admin des openLDAP/AD möglich &#8211; so wie ansonsten auch &#8211; was dem Kontrollbedürfnis vieler deutscher Lehrerinnen und Lehrer vielleicht widerspricht. Wenn sich ein Schüler oder eine Schülerin selbst &#8220;outet&#8221;, kann man dagegen natürlich nichts tun. Generell kann man aber anonym bleiben.</p>
<p>Was wird nun aber noch möglich?</p>
<ol>
<li>In Kombination mit einem LDAP-fähigen MTA können auf dem Server quasi &#8220;von selbst&#8221; (virtuelle User) gültige E-Mailaccounts angelegt werden, die sich z.B. via IMAP/POP3 (dovecot) extern mit dem LDAP-Passwort (was gleich dem Passwort für Moodle ist) verwalten lassen (Weiterleitungen sind auch möglich).</li>
<li>Der Datenschutz kann so granular erfolgen, wie es das jeweilige Anforderungsprofil erfordert. Attribute für die anonymisierten Daten lassen sich auch in das inetorgperson-Schema integrieren und dann in Moodle mappen. Dennoch werden im zentralen LDAP folgende personenbezogene Daten mindestens gespeichert aber nicht zwangsläufig angzeigt: Vorname, Name, Schule.</li>
<li>Nutzen verschiedene Schulen den gleichen LDAP-Dienst, genügt ein einfaches Hinzufügen des jeweiligen LDAP-Kontextes in das betreffende Moodle, damit Nutzer von Schule A Kurse von Schule B nutzen können. Das erfolgt idealerweise über ein Webinterface, was sich z.B. über das Adminpasswort des jeweilige Moodlesystems erreichen lässt &#8211; das Austragen ist dann genauso einfach &#8211; das sind simple MySQL-Querys.</li>
<li>Die Schule kann so jeden Dienst nutzen, der LDAP-fähig ist &#8211; das sind viele CMS- und Groupwarelösungen ebenso wie z.B. Mediawiki. Passwort und Login sind für jeden Nutzer dann immer gleich (so kann ich z.B. auch Person &#8220;zentral&#8221; sperren, indem ich ihr Passwort auf einen ungültigen Wert setze).</li>
</ol>
<p>Dummerweise müssen die verschiedenen Schule dazu in einem zentralen LDAP organisiert sein. Das erfordert nach meinen Erfahrungen <strong>persönlichen Kontakt und Vertrauen</strong>, ist also überregional wahrscheinlich schwieriger zu handhaben als regional begrenzt.</p>
<p>Daher habe ich in einem meiner jüngst abgegebenen Projekte dieses System lediglich verhältnismäßig zufriedenstellend erprobt, jedoch nicht mehr realisiert. Es ist ein wenig Aufwand &#8211; insbesondere die Migration bestehender Systeme in ein LDAP &#8211; der sich aber lohnen dürfte, da sich so alle Möglichkeiten auftun, die LDAP eben bietet (und das Windowspendant AD momentan so populär macht).</p>
]]></content:encoded>
			<wfw:commentRss>http://riecken.de/index.php/2008/08/moodle-und-benutzerverwaltung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

