[InfoCon]

Information & Consulting

[Infos][Dienstleistungen][Logbook]
 

Logbuch

Paßwortschutz für Webseiten mit PostgreSQL

Die einzige Möglichkeit, eine Website mit einem Paßwortschutz zu versehen bestand früher darin, mit htpasswd Paßwort-Dateien anzulegen und die Berechtigungen in Dateien zu konfigurieren. Das ist schon lange nicht mehr state-of-the-art. Heutzutage liegen die Berechtigungen in einer Datenbank und werden dort bequem online verwaltet.

Für den Webserver Apache gibt es dazu die Module mod_auth_mysql und mod_auth_pgsql. Beide Module funktionieren ähnlich. In der Datei ».htaccess« bzw. in der Konfiguration des Webservers werden jeweils die Datenbank, die Tabellen und die Spalten sowie ggf. WHERE-Klauseln definiert.

   AuthName NAME
   AuthType Basic

Auth_PG_user USER Auth_PG_pwd PASS Auth_PG_database DB Auth_PG_pwd_table htpasswd Auth_PG_grp_table htgroup Auth_PG_uid_field login Auth_PG_pwd_field passwd Auth_PG_pwd_whereclause "AND enabled = 'true'" Auth_PG_grp_user_field login Auth_PG_grp_group_field gid

<Limit GET POST PUT HEAD> require group webaccess </Limit>

Prinzipiell sieht die Konfiguration für die Authentifizierung gegen eine PostgreSQL-Datenbank wie oben aus. Mit Hilfe der WHERE-Klauseln lassen sich die Berechtigungen leichter regeln als über Dateien. Accounts müssen nicht gleich gelöscht werden, sondern können erst einmal deaktiviert werden, wenn ein Nutzer keinen Zugriff mehr auf bestimmte Bereiche erhalten soll.

   AuthBasicAuthoritative Off
   AuthUserFile /dev/null

Leider pfuscht in das System allerdings der herkömmliche Mechanismus für die Authentifizierung von Webseiten und die Paßwörter werden immer noch mit einer Datei vergleichen. Bei beiden Modulen ist es daher erforderlich diese beiden Zeilen ebenfalls in die Konfigurationsdatei zu schreiben und damit den bisherigen Mechanismus zu deaktivieren. Die Paßwortdatei muß zudem unbedingt auf /dev/null gesetzt werden.

Eigentlich sollte die Option Auth_PG_authoritative (bzw. Auth_MySQL_Authoritative beim Modul für MySQL), die auch voreingestellt ist, ausreichen. Das ist leider nicht der Fall und die Dokumentation schweigt sich dazu auch aus. Wenn man das nicht weiß, sucht man sich leicht einen Wolf.

30.10.2008 10:10 | mysql | permanent link

Zum Kontakformular

© InfoCon   Datenschutz