Authentifizierung mit phpMyAdmin

Und alles was mit phpMyAdmin seine Verwandtschaft findet hat hier seinen Platz.

Authentifizierung mit phpMyAdmin

Postby Oderdeich » 21. December 2010 12:21

Hallo,
ich habe Apache, PHP, MySQL und phpMyAdmin nicht mit XAMPP sondern von Hand installiert und konfiguriert. Für Apache habe ich Listen = 8080 konfiguriert, weil Port 80 bereits belegt ist. Es sind keine virtuellen Hosts konfiguriert. Es läuft auch alles soweit, nur beim Einloggen in phpAdmin habe ich mit autth_type = 'http' Probleme. Es erscheint das Window zum Einloggen. Ich gebe den Benutzernamen und das Passwort für MySQL ein. phpMyAdmion zeigt anschließend wieder das Window zum Einloggen an. Und so geht das immer weiter. Wenn ich das Window schließe, zeigt phpMyAdmin folgenden Fehler an: "Falscher Benutzername/Passwort. Zugriff verweigert". Auf dem Einlogg-Window steht über den beiden Textboxen für die Eingabe von Benutzername und Passwort "http://localhost:8080 verlangt einen Benutzernamen und ein Passwort. Ausgabe der Website: "phpMyAdmin localhost"". Wenn ich jedoch auth_type = 'config' festlege und den Benutzernamen und das Passwort für MySQL durch $cfg['Servers'][$i]['user'] ="root'' und $cfg['Servers'][$i]['password'] ="drrainer'' vorgebe, dann ist alles bestens. Ich möchte aber autth_type = 'http' verwenden, weil es aus meiner Sicht einfach sicherer ist.

Betriebssystem: Window 7 Prof. 32 Bit
Apache: 2.2.17
PHP: 5.3.4
phpMyAdmin: 3.3.8.1
MySQL: 5.1

Hat jemand eine Idee?

Viele Grüße von Oderdeich aus Berlin.


Meine config.inc.php:
-------------------------

Code: Select all
<?php

/* Your phpMyAdmin URL.
 *
 * Complete the variable below with the full URL ie
 *    http://www.your_web.net/path_to_your_phpMyAdmin_directory/
 *
 * It must contain characters that are valid for a URL, and the path is
 * case sensitive on some Web servers, for example Unix-based servers.
 *
 * In most cases you can leave this variable empty, as the correct value
 * will be detected automatically. However, we recommend that you do
 * test to see that the auto-detection code works in your system. A good
 * test is to browse a table, then edit a row and save it.  There will be
 * an error message if phpMyAdmin cannot auto-detect the correct value.
 *
 */
$cfg['PmaAbsoluteUri'] = 'http://localhost:8080/phpMyAdmin/';

/*******************************************************************************
 * Server(s) configuration
 *
 * The $cfg['Servers'] array starts with $cfg['Servers'][1].  Do not use
 * $cfg['Servers'][0]. You can disable a server configuration entry by setting host
 * to ''. If you want more than one server, just copy following section
 * (including $i incrementation) several times. There is no need to define
 * full server array, just define values you need to change.
 *
 */
$cfg['Servers'] = array();

$i = 0;

/*
 * First server
 */
$i++;

/*
 * MySQL hostname or IP address
 *
 * @global string $cfg['Servers'][$i]['host']
 */
$cfg['Servers'][$i]['host'] = 'localhost';

/**
 * Use SSL for connecting to MySQL server?
 *
 * @global boolean $cfg['Servers'][$i]['ssl']
 */
$cfg['Servers'][$i]['ssl'] = false;

/*
 * How to connect to MySQL server ('tcp' or 'socket')
 *
 */
$cfg['Servers'][$i]['connect_type'] = 'tcp';


/*
 * MySQL user
 *
 */
$cfg['Servers'][$i]['user'] = '';

/*
 * MySQL password (only needed with 'config' auth_type)
 *
 */
$cfg['Servers'][$i]['password'] ='';

/*
 * Authentication method (valid choices: config, http, signon or cookie)
 *
 */
$cfg['Servers'][$i]['auth_type'] = 'http';

/*
 * End of servers configuration
 */

?>
Oderdeich
 
Posts: 4
Joined: 21. December 2010 11:16

Re: Authentifizierung mit phpMyAdmin

Postby Nobbie » 21. December 2010 12:37

Was ist in httpd.conf für den "ServerName" konfiguriert?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Authentifizierung mit phpMyAdmin

Postby Oderdeich » 21. December 2010 14:31

Hallo Nobbie,

in der httpd.conf habe ich ServerName localhost:8080 konfiguriert.

Gruß, Oderdeich
Oderdeich
 
Posts: 4
Joined: 21. December 2010 11:16

Re: Authentifizierung mit phpMyAdmin

Postby Nobbie » 21. December 2010 17:43

Funktioniert denn der auth_type "cookie"? Das wäre ja auch eine sichere Variante.

P.S.: Das ist ja gar keine Xampp Installation. Wie hast Du PHP konfiguriert? Als Modul? Als CGI? VIelleicht fcgi?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Authentifizierung mit phpMyAdmin

Postby Oderdeich » 22. December 2010 17:41

Hallo Nobbie,

PHP wird bei mir als CGI verwendet. Ich kann mir aber nicht vorstellen, dass das für mein Problem relevant ist. Ich verstehe nicht, warum es bei auth_type = 'config' läuft und bei auth_type = 'http' nicht. Der Unterschied liegt ja nur in der Quelle für User und Passwort. Bei 'config' werden beide Informationen der config.inc.php entnommen und bei auth_type = 'http' werden die Werte beim Start von phpMyAdmin einem Window entnommen. Die Authentifizierung gegenüber MySQL ist in beiden Fällen dann wieder gleich. Spielen Zeichensätze dabei eventuell eine Rolle?

Viele Grüße aus Berlin von Oderdeich.
Oderdeich
 
Posts: 4
Joined: 21. December 2010 11:16

Re: Authentifizierung mit phpMyAdmin

Postby Nobbie » 22. December 2010 20:42

Oderdeich wrote:PHP wird bei mir als CGI verwendet. Ich kann mir aber nicht vorstellen, dass das für mein Problem relevant ist


Dann hast Du wieder etwas gelernt - diese Authorisierung funkioniert nicht im CGI Modus. Das ist keine "echte" Apache Authorization, sondern via PHP Script und manipulierte HTTP Header. Das funktioniert nur, wenn PHP als Modul geladen ist.

Oderdeich wrote:Ich verstehe nicht, warum es bei auth_type = 'config' läuft und bei auth_type = 'http' nicht.


Weil "config" ganz normal UserID und Passwörter aus einer Datei ausgelesen werden, "http" ist aber nicht "echt" HTTP, sondern (wie oben schon beschrieben), ein "Simulation" via PHP Script. Die Daten müssen von einem Browserdialog an Apache übermittelt werden und wenn PHP als CGI gestartet wird, liegt dazwischen ein sog. "Transaktionsschritt" und da gehen diverse Daten verloren.

Oderdeich wrote:Der Unterschied liegt ja nur in der Quelle für User und Passwort. Bei 'config' werden beide Informationen der config.inc.php entnommen und bei auth_type = 'http' werden die Werte beim Start von phpMyAdmin einem Window entnommen.


Nein, nein, das ist erheblich schwieriger und komplexer, was dort stattfindet. Die Daten kommen einfach nicht im PHP Script an. Das ist mir hier zu aufwändig, das im Einzelnen zu erläutern.

Selbtverständlich kannst Du aber eine "echte" Authorisierung bauen, lasse in config.inc.php den Type auf "config" und erzeuge ein eigene .htaccess Datei im phpmyadmin Ordner, wo Du ein .htpasswd referenzierst, welches die gleichen Userdaten (UserID und Passwort des MySQL Users) beinhaltet. Dann funktioniert es, egal ob CGI oder Modul.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Authentifizierung mit phpMyAdmin

Postby Oderdeich » 23. December 2010 11:38

Hallo Nobbie,
danke für deine ausführliche Antwort. Ich werde die Änderung in Apache einbauen und PHP als Modul laden. Du hast recht, ich habe nicht viel Ahnung von den inneren Zusammenhängen und ich habe wirklich was gelernt von dir. Ich bin zwar auch Entwickler, aber ich entwickle nicht mit PHP sondern mit C# und Visual Studio 2010 von Microsoft. Ich brauche Apache und PHP nur, damit ich phpMyAdmin und den MySQLDumper für die MySQL-Administration anwenden kann. Ein richtiges Web-Projekt habe ich noch nie gemacht. Vielen Dank noch mal, ich werde mich jetzt an die Lösung machen. Ich wünsche dir ein frohes Fest und ein gesundes und erfolgreiches Jahr 2011.

Grüße aus Berlin von Oderdeich.
Oderdeich
 
Posts: 4
Joined: 21. December 2010 11:16


Return to phpMyAdmin

Who is online

Users browsing this forum: No registered users and 5 guests