Support

neues Ticket Helpdesk News & Updates

Einrichtung des .htaccess/.htpasswd-Login [ID 469]

Vorwissen

Die .htaccess-Dateien stellen eine Lösung dar, um (in unserem Fall) serverseitig Verzeichnisse zu schützen. Mit Hilfe unseres PHP-Skriptes schreiben wir in diese Ordner temporäre Zugangsdaten, die den Zugriff auf den jeweiligen Ordner erlauben. Für die Einrichtung ist Erfahrung und Fachwissen im Umgang mit einer Webspace-Infrastruktur notwendig. Unser Support endet bei der Schnittstelle Schulportal | Webspace. Bitte haben Sie hierfür Verständnis.

Notwendigkeiten, die der Server/Webspace beherrschen muss

  • Ausführen von PHP-Skripten
  • Gewähren von Schreibrechten auf die entsprechenden Dateien
  • Umgang mit .htaccess-Dateien sowie .htpasswd-Dateien

Eigentlich alles drei keine besondere Herausforderung für einen heutigen Server/Webspace. Da es bei der Umsetzung jedoch um einen Kontakt zwischen zwei geschützten Systemen geht, sind bei der Einrichtung einige Punkte zu beachten, vor allem auch Erfahrung und Fachwissen.

Notwendigkeiten, die der Browser beherrschen muss

Um keine Login-Oberfläche anzuzeigen, wird der Login in den geschützten Bereich per JavaSkript realisiert. Daher ist es notwendig, dass im Browser JavaSkript aktiviert ist. Auch dies stellt heutzutage keine besondere Schwierigkeit dar, da die meisten Webseiten nur noch mit aktiviertem JavaSkript funktionieren (wie bspw. auch das Schulportal). 

Einrichtung des Verzeichnisschutzes

1) Dateien uploaden

Erstellen Sie auf ihrem Webspace ein neues Verzeichnis namens „schulportalschutz“. Entpacken Sie dort hinein die Dateien aus dem Download-Bereich des Schulportals (https://start.schulportal.hessen.de/sphdownloads.php#tab-5) . Diese sollte auf derselben (oder einer höheren) Ebene wie das zu schützende Verzeichnis liegen – auf keinen Fall jedoch auf einer anderen (Sub-)Domain.

2) Data-Unterordner

Achten Sie darauf, dass das Skript in den Unterordner "data" schreiben und lesen darf (schnelle Lösung: Setzen Sie die Rechte 777 per FTP-Client für diesen Ordner.). Dieser Unterordner wird benutzt, um die temporären Zugriffe zwischenzuspeichern. Ebenso findet sich dort die Datei ServerIPs.txt, in der die aktuellen IPs des Schulportal-Servers gespeichert sind. Diese dürfen nicht verändert werden, bei Zugriff über eine andere IP verweigert das Skript das Erstellen von Benutzerdaten.

3) Secret

Öffnen Sie die Datei config.inc.php und tragen Sie dort in Zeile 6 $conf['Secret'] = ' An-dieser-Stelle-das-eigene-Secret-einsetzen'; einen zufälligen, maximal 120 Zeichen langen Code zwischen den Hochkommas ein (bei Sonderzeichen kann es durch verschiedene Zeichensätze auf Ihrem und unserem Server zu Problemen kommen; daher am besten klein- und großgeschriebene Buchstaben sowie Zahlen verwenden).

Beispiel:  $conf['Secret'] = 'Ah4334asuZUlkkld4HGFdsf23Upoio5jai0sdu4ads';

Das dort eingetragene Secret müssen Sie später ebenso im Schulportal eintragen. Dies stellt die zweite Absicherungsstufe des Skriptes dar.

4) Zu schützenden Ordner vorbereiten

Für den zu schützenden Ordner (in unserem Beispiel heißt dieser „InfoE1“) durch .htaccess, der sich auf der gleichen Ebene wie der Ordner "schulportalschutz" befindet, lesen Sie zunächst in der config.inc.php ab Zeile 27 die Bedeutung der Angaben, und hinterlegen Sie anschließend ab Zeile 42 die notwendigen Daten:

$conf['Folders'][] = array(

             'Name'=> 'InfoE1',
             'Path' => './../InfoE1',
             'File'=> 'index.html',
             '.htaccess' => '.htaccess',
             
'.htpasswd' => '.htpasswd',
             'urlprotokoll' => 'https',
             'url'        => 'test-schule.de/InfoE1',
             'passwordFormat' => 'sha1'
)

6) Zugriff im Schulportal einrichten

Aktivieren Sie unter https://start.schulportal.hessen.de/verwaltung.php#tools das Tool ".htaccess-PHP-Secure-Login" und tragen Sie in den dortigen Einstellungen die folgenden Daten ein:

  • einen Namen für das Ziel (dies wird später auf der Kachel angezeigt)
  • eine Beschreibung, die das Ziel noch erläutert
  • die URL des Schulportalschutzes (nach unserem Beispiel aus 4: test-schule.de/schulportalschutz/) – bitte an „/“ am Ende denken
  • den eindeutigen Namen des Verzeichnisses, wie in der config.inc.php hinter Name definiert (nach unserem Beispiel: InfoE1)
  • das Secret, ebenso wie in config.inc.php definiert 

Abschließend können Sie dabei noch angeben, ob der Login auch den Benutzernamen (sowie bei Lehrkräften deren Kürzel) der im Schulportal angemeldeten Person beinhalten soll. Dies ist im Standard-Fall des .htaccess-Logins jedoch unnötig. Nach Klick auf „Speichern“ sollte der Zugriff funktionieren.

7) Falls es nicht klappt

  • Überprüfen Sie, ob das Skript auf den Unterordner "data" sowie auf die jeweiligen .htaccess- und .htpasswd-Dateien Lese- und Schreibzugriff hat.
  • Überprüfen Sie, ob das Secret im Schulportal und in der config.inc.php übereinstimmt
  • Überprüfen Sie, ob Ihre Angaben für die Ordner in config.inc.php jeweils richtig sind.
  • Es kann sein, dass in dem Ordner, auf den sie den Benutzer zugreifen lassen wollen, keine index.php oder index.html liegt und deshalb der Fehler 403 zurückgeliefert wird.  Setzen Sie daher die Variable $conf['ConnectFile'] in config.inc.php auf true.
  • Im Browser bleibt das Skript auf einer leeren Seite stehen oder es erscheint (in jedem anderen Browser) eine Meldung der folgenden Art: 

 

  • In diesem Fall befinden sich das Schulportalschutz-PHP-Skript und das eigentliche zu schützende Verzeichnis auf zwei unterschiedlichen Domains (dafür reichen auch verschiedene Subdomains). Dieses Verhalten zeigen die Browser, um unberechtigte Zugriffe zu vermeiden. Dies lässt sich nur abstellen, indem der Schulportalschutz und das zu schützende Verzeichnis auf der selben (Sub-)Domain liegen.