Klara: http_auth mit mysql

Hallo

ich möchte http_auth zusammen mit mysql verwenden.

ich habe 2 Module gefunden mod_auth_mysql und mod_authz_dbm.

Die letzte Version von mod_auth_mysql kam irgendwann 2005 heraus. Wird das nicht mehr weiterentwickelt?

mod_authz_dbm kann man nicht in einer .htaccess Datei Konfigurieren, warum eigentlich?

Gibt es noch andere Möglichkeiten?

Klara

  1. Hallo,

    ich möchte http_auth zusammen mit mysql verwenden.

    ich habe 2 Module gefunden mod_auth_mysql und mod_authz_dbm.

    Die letzte Version von mod_auth_mysql kam irgendwann 2005 heraus. Wird das nicht mehr weiterentwickelt?

    Nein. Das Modul (mod_auth_mysql) ist für Apache bis 2.0 geschrieben worden. In Apache 2.2 hat sich etliches, was Authentifizierung angeht, komplett geändert, deswegen wurde für Apache 2.2 ein neues Modul (mod_authn_dbd, *nicht* mod_authz_dbm, das ist was anderes!) geschrieben, was allgemein Authentifizierung über Datenbanken erledigen soll (und auch multiple Datenbanken unterstützen soll).

    mod_authz_dbm kann man nicht in einer .htaccess Datei Konfigurieren, warum eigentlich?

    mod_authn_dbd kann man so halb in einer .htaccess-Datei konfigurieren. mod_authn_dbd beruht nämlich auf mod_dbd, was für Apache ab 2.2 allgemeines Datenbankmanagement macht - d.h. Datebankverbindungen aus Performancegründen ständig offen hält. Die Datenbankverbindung selbst muss daher in der zentralen Serverkonfiguration konfiguriert werden, damit das funktioniert. (Das müsste natürlich nicht so sein, aber die Apache-Entwickler haben es so implementiert und das ist der aktuelle Umfang von mod_dbd/mod_authn_dbd.) Das mod_authn_dbd und die SQL-Queries selbst kann man dagegen in der .htaccess einrichten, wenn denn mal die Datenbankverbindung bereits konfiguriert ist.

    Sprich: Wenn Du Apache bis Version 2.0.x hast, dann kannst Du noch mod_auth_mysql verwenden, was in der .htaccess konfiguriert werden kann. Wenn Du Apache ab 2.2.0 verwendest, dann kannst Du DB-Authentifizierung nicht mehr alleine nur in der .htaccess konfigurieren, weil mod_dbd sich nicht in der .htaccess konfigurieren lässt. Andere simple Möglichkeiten gibt es mit Apache selbst im Moment nicht, evtl. kannst Du Dich mit bestimmten Scriptsprachenmodulen wie mod_perl oder mod_lua manuell "einklinken" und das zu Fuß machen oder per FastCGI (mod_fastcgi oder mod_fcgid) die Authentifizierung erledigen, was aber nicht ganz trivial ist.

    Viele Grüße,
    Christian

    1. Hallo Chritian,

      erstmal danke für Deine Antwort!

      ich möchte http_auth zusammen mit mysql verwenden.

      ich habe 2 Module gefunden mod_auth_mysql und mod_authz_dbm.

      Die letzte Version von mod_auth_mysql kam irgendwann 2005 heraus. Wird das nicht mehr weiterentwickelt?

      Nein. Das Modul (mod_auth_mysql) ist für Apache bis 2.0 geschrieben worden. In Apache 2.2 hat sich etliches, was Authentifizierung angeht, komplett geändert, deswegen wurde für Apache 2.2 ein neues Modul (mod_authn_dbd, *nicht* mod_authz_dbm, das ist was anderes!) geschrieben, was allgemein Authentifizierung über Datenbanken erledigen soll (und auch multiple Datenbanken unterstützen soll).

      wird mod_authn_dbd im Apache 2.4 durch mod_authz_dbd ersetzt?
      mod_authz_dbd hat jemand zurückportiert, hat das jemand schon einmal getestet?
      Bei mod_authz_dbd kann man sich, wenn ich das richtig sehe, ausloggen.

      mod_authz_dbm kann man nicht in einer .htaccess Datei Konfigurieren, warum eigentlich?

      mod_authn_dbd kann man so halb in einer .htaccess-Datei konfigurieren. mod_authn_dbd beruht nämlich auf mod_dbd, was für Apache ab 2.2 allgemeines Datenbankmanagement macht - d.h. Datebankverbindungen aus Performancegründen ständig offen hält. Die Datenbankverbindung selbst muss daher in der zentralen Serverkonfiguration konfiguriert werden, damit das funktioniert. (Das müsste natürlich nicht so sein, aber die Apache-Entwickler haben es so implementiert und das ist der aktuelle Umfang von mod_dbd/mod_authn_dbd.) Das mod_authn_dbd und die SQL-Queries selbst kann man dagegen in der .htaccess einrichten, wenn denn mal die Datenbankverbindung bereits konfiguriert ist.

      bei ein Massenhoster wird es diese Mögliochkeit, denke ich, nicht geben, oder?

      Andere simple Möglichkeiten gibt es mit Apache selbst im Moment nicht, evtl. kannst Du Dich mit bestimmten Scriptsprachenmodulen wie mod_perl oder mod_lua manuell "einklinken" und das zu Fuß machen oder per FastCGI (mod_fastcgi oder mod_fcgid) die Authentifizierung erledigen, was aber nicht ganz trivial ist.

      hast Du für mod_fastcgi ein Beispiel? Hier wird php über mod_fastcgi ausgeführt.

      Klara

      1. Hallo,

        Nein. Das Modul (mod_auth_mysql) ist für Apache bis 2.0 geschrieben worden. In Apache 2.2 hat sich etliches, was Authentifizierung angeht, komplett geändert, deswegen wurde für Apache 2.2 ein neues Modul (mod_authn_dbd, *nicht* mod_authz_dbm, das ist was anderes!) geschrieben, was allgemein Authentifizierung über Datenbanken erledigen soll (und auch multiple Datenbanken unterstützen soll).

        wird mod_authn_dbd im Apache 2.4 durch mod_authz_dbd ersetzt?

        Nein. mod_authn_dbd und mod_authz_dbd komplementieren sich in Apache 2.4 (authN: AutheNtication, d.h. feststellen, *wer* am anderen Ende ist vs. authZ: AuthoriZation, d.h. feststellen, ob derjenige (der bereits bekannt ist) Zugriff hat oder nicht), mod_authn_dbd wird es weiterhin geben.

        mod_authz_dbm kann man nicht in einer .htaccess Datei Konfigurieren, warum eigentlich?

        mod_authn_dbd kann man so halb in einer .htaccess-Datei konfigurieren. mod_authn_dbd beruht nämlich auf mod_dbd, was für Apache ab 2.2 allgemeines Datenbankmanagement macht - d.h. Datebankverbindungen aus Performancegründen ständig offen hält. Die Datenbankverbindung selbst muss daher in der zentralen Serverkonfiguration konfiguriert werden, damit das funktioniert. (Das müsste natürlich nicht so sein, aber die Apache-Entwickler haben es so implementiert und das ist der aktuelle Umfang von mod_dbd/mod_authn_dbd.) Das mod_authn_dbd und die SQL-Queries selbst kann man dagegen in der .htaccess einrichten, wenn denn mal die Datenbankverbindung bereits konfiguriert ist.

        bei ein Massenhoster wird es diese Mögliochkeit, denke ich, nicht geben, oder?

        Sehr unwahrscheinlich.

        Andere simple Möglichkeiten gibt es mit Apache selbst im Moment nicht, evtl. kannst Du Dich mit bestimmten Scriptsprachenmodulen wie mod_perl oder mod_lua manuell "einklinken" und das zu Fuß machen oder per FastCGI (mod_fastcgi oder mod_fcgid) die Authentifizierung erledigen, was aber nicht ganz trivial ist.

        hast Du für mod_fastcgi ein Beispiel? Hier wird php über mod_fastcgi ausgeführt.

        Nein, habe ich gerade nicht, habe das auch noch nie selbst probiert, aber um Dich in die richtige Richtung zu stupsen: http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiAuthenticator Allerdings: Ob bzw. wie man das mit PHP zusammenbringen kann, kann ich aus dem Stehgreif nicht sagen.

        Viele Grüße,
        Christian