Current time: 11-23-2024, 11:36 PM Hello There, Guest! (LoginRegister)


Post Reply 
mod_auth_mysql und ISP+Etch
Author Message
winex Offline
Junior Member
*

Posts: 16
Joined: Aug 2007
Reputation: 0
Post: #1
mod_auth_mysql und ISP+Etch
Hallo,

ist vielleicht etwas Offtopic, jedoch habe ich ein Problem und hoffe das ich hier hilfe finde.

Zur Sachlage:

Server läuft unter Debian Etch, mit ISP RC4.

Jetzt sollte ich von einen Kunden ein in PHP programiertes Serviceportal hosten. Dieser nutzt für die Authentifizierung die PHP funktion "$_SERVER['PHP_AUTH_USER]" in Verbindung mit MySql Abfrage.

Ich bin kein PHP Profi, jedoch ging ich nach meinen Informtionsstand "google" Wink davon aus, das es an den fehlenden Apache2 "mod_auth_mysql" in etch lag.

So habe ich diesen nachträglich kompiliert anhand dieser Anleitung:

http://www.marderhund.org/blog/index.php...ntication/

Das Problem bliebt jedoch weiterhin. Es erscheint zwar das Login Fenster, jedoch bewirkt die Eingabe des Login nix, stattdessen kommt das Login Fenster immer wieder.

In den Logs erscheint darüber nix.

Kann mir vielleicht jemand helfen?
04-06-2008 07:34 PM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #2
RE: mod_auth_mysql und ISP+Etch
es liegt daran, dass php via fastcgi gestartet wird.

das sollte in google helfen.

Ich habe bei mir die fastcgi_ispcp.conf ein wenig angepasst:
Code:
FastCgiConfig -minProcesses 1 \
                      -maxProcesses 400 \
                      -maxClassProcesses 5 \
                      -multiThreshold 80 \
                      -killInterval 60 \
                      -startDelay 5 \
                      -idle-timeout 300\
                      -pass-header Authorization

dieses -pass-header .... ist wichtig.
Danach muss man aber die PHP Applikation ein wenig anpassen, weil nun user und passwort in einer Variablen übergeben wird - mit base64 codierung oder so...
weiter bin ich nicht gekommen, hatte grad keine Zeit dazu...

/J
04-06-2008 08:12 PM
Visit this user's website Find all posts by this user Quote this message in a reply
winex Offline
Junior Member
*

Posts: 16
Joined: Aug 2007
Reputation: 0
Post: #3
RE: mod_auth_mysql und ISP+Etch
Danke für den Tip, hier noch das stück PHP-Code das für die Authentifikation zuständig ist.

Quote:// ---------------------------
// A U T H E N T I C A T I O N
// ---------------------------

function authenticate($admin="N", $bereich="all")

{
if(!isset($_SERVER['PHP_AUTH_USER']))
{
requireLogin("Sie müssen sich einloggen, um diese Seite zu erreichen");

} else {
$user = addSlashes(strip_tags(trim($_SERVER['PHP_AUTH_USER'])));
$pass = addSlashes(strip_tags(trim($_SERVER['PHP_AUTH_PW'])));

if($login = checkLogin($user, md5($pass)))

{
if($login["admin"] == "Y")

$login["str_admin"] = "Admin - ";

// Überprüfe den Adminstatus des Mitarbeiters

if($admin == "Y" && $login["admin"] == "N")

{
requireLogin("Sie müssen Adminstatus besitzen, um diese Seite zu betreten");


// Überprüfe den Arbeitsbereich des Mitarbeiters

} else if($login["admin"] == "N" && $bereich != "all" && $bereich != $login["bereich"]) {

requireLogin("Sie müssen ein Mitarbeiter aus dem Bereich $bereich sein, um diese Seite zu betreten");

// Falls Zugang gewährt, gib die Mitarbeiterdaten zurück
} else {
return $login;

}
} else {

// Falls die Mitarbeiterdaten in der Datenbank nicht gefunden werden konnten
requireLogin("Die angegebenen Daten sind ungültig");

}
}
}
04-06-2008 08:25 PM
Find all posts by this user Quote this message in a reply
Cube Offline
Member
***

Posts: 740
Joined: Apr 2007
Reputation: 9
Post: #4
RE: mod_auth_mysql und ISP+Etch
$_SERVER['PHP_AUTH_USER'] hat doch nichts mit MySQL zu tun, sondern speichert den Namen des gerade über die HTTP Authentifizierung angemeldeten Users.
Diese Variable funktioniert unter php über fastcgi nicht (worüber ich mich auch schon geärgert habe, wie so über vieles was unter fastcgi nicht geht).

Es gibt zwei Möglichkeiten:
- entweder du aktivierst -pass-header HTTP_AUTHORIZATION in der fastcgi-Config und greifst dann auf die Daten über $_SERVER['Authorization'] zu (wie schon joximu schrieb)
- oder du verwendest $_SERVER['REDIRECT_REMOTE_USER'] - damit kannst du aber nur PHP_AUTH_USER ersetzen, an das Passwort (PHP_AUTH_PW) kommst du auf diese Weise nicht ran.
(This post was last modified: 04-06-2008 08:31 PM by Cube.)
04-06-2008 08:31 PM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #5
RE: mod_auth_mysql und ISP+Etch
die Variable $_SERVER["Authorization"]) enthält sowas wie

string(18) "Basic Zm9vOmJhcg=="

das muss dann den String 'Zm9vOmJhcg==' mit base64 decodieren und erhälst 'foo:bar' als Antwort - und da ist foo der User und bar das Kennwort...

Das ganze klappt zumindest, wenn der Basic Algorithmus in der HTTP-Auth methode gesetzt ist zB: header('WWW-Authenticate: Basic realm="...."');

/J
04-06-2008 10:40 PM
Visit this user's website Find all posts by this user Quote this message in a reply
winex Offline
Junior Member
*

Posts: 16
Joined: Aug 2007
Reputation: 0
Post: #6
RE: mod_auth_mysql und ISP+Etch
Wie müsste dann der php-code oben aussehen damit das klappt?
04-06-2008 10:48 PM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #7
RE: mod_auth_mysql und ISP+Etch
wenn ich das fertig gemacht hätte, hätte ich ihn gleich gepostet, aber so musst du vielleicht selbst etwas überlegen...

das könnte ein Ansatz sein

Code:
$aAuth = explode(' ', $_SERVER['Authorization']);
if (($aAuth[0] == 'Basic') && (base64_decode($aAuth[1], true) == 'user:pass')) {

echo 'ich bin drin';

}

wäre noch zu vervollständigen..., du kannst das Ergebnis von base64_decode natürlich nochmals mit explode ':' aufteilen, dann hast du eingegebener User und Kennwort getrennt.

Gruss
J
04-06-2008 11:17 PM
Visit this user's website Find all posts by this user Quote this message in a reply
winex Offline
Junior Member
*

Posts: 16
Joined: Aug 2007
Reputation: 0
Post: #8
RE: mod_auth_mysql und ISP+Etch
Danke, werde mich mal versuchen. Wink

Übrigens suche ich für mein Business schon eine weile einen fähigen Helfer.
Bin hier in der Region Nürnberg. Wink
04-06-2008 11:32 PM
Find all posts by this user Quote this message in a reply
Zothos Offline
Release Manager
*****
Dev Team

Posts: 1,262
Joined: Feb 2007
Reputation: 10
Post: #9
RE: mod_auth_mysql und ISP+Etch
@joxi -idle-timout muss zum fastcgi-server! nicht zur config Tongue
04-07-2008 07:55 PM
Find all posts by this user Quote this message in a reply
joximu Offline
helper
*****
Moderators

Posts: 7,024
Joined: Jan 2007
Reputation: 92
Post: #10
RE: mod_auth_mysql und ISP+Etch
danke zothos - war halt mal früher so... werd ich dann irgendwann mal ändern... es ging ja um das -pass-header... :-)
(This post was last modified: 04-07-2008 09:18 PM by joximu.)
04-07-2008 09:18 PM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 3 Guest(s)