Hallo!
Beim normalen Verfahren liegen die in der ".htaccess" und ".htuser".
Wo wird die Liste mit den Usern beim DAA angegeben?
Im Prinzip genauso, wenn auch der Apache verlangt, dass die Passwörter in einem speziellen Format vorliegen in der .htuser (oder wie Du die Datei auch nennst) liegen - siehe unten.
Folgende Konfiguration für den Apache 1.3 oder 2.0 aktiviert Digest Auth (entsprechendes Modul im Apachen vorausgesetzt):
AuthType Digest
AuthName "Geheim"
AuthDigestDomain /pfad/wo/du/bist
AuthDigestFile /pfad/zu/.htusers
Require valid-user
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
Zur Erklärung:
AuthType Digest
Digest statt Basic, sollte einleuchten.
AuthName "Geheim"
Genauso wie bei Basic.
AuthDigestDomain /pfad/wo/du/bist
Das ist etwas komplizierter und hängt mit den Interna des Digest-Auth-Algorithmusses zusammen. Im einfachsten Fall gibst Du da einfach den serverrelativen URI an, unter dem Dein geschützter Bereich zu erreichen ist, d.h. wenn Du unter http://example.com/privat/ den geschützten Bereich erreichen kannst, dann gibst Du AuthDigestDomain /privat an.
AuthDigestFile /pfad/zu/.htusers
Das ist wieder ganz analog zu Basic Auth, nur, dass die Direktive AuthDigestAuth heißt.
Require valid-user
Genauso wie Basic Auth, Du kannst hier selbstverständlich auch sowas machen wie Require user bob oder was weiß ich - das gleiche was auch mit Basic Auth funktioniert.
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
Das sorgt dafür, dass das auch mit dem IE funktioniert, weil der IE vor Version 7 zu blöd[tm] ist, Digest Auth korrekt umzusetzen.
Der eigentliche Witz ist nun, dass die .htuser oder wie Du die Datei auch nennst anders aussehen muss für Digest Auth. Dafür gibt's (das wird mit dem Apache mitgeliefert) ein Utility namens »htdigest« (ähnlich wie »htpasswd«). Zusätzlich zu Benutzername und Passwort benötigt man bei Digest Auth vorab bereits den Namen, der auch bei AuthName steht. Sprich: Wenn Du bei AuthName "Geheim" angegeben hast, dann benötigst Du dies ebenfalls um die Datei anzulegen.
Auf der Kommandozeile kannst Du nun folgendes eingeben, um zum Beispiel einen User mit dem Namen 'testuser' für den Bereich 'Geheim' anzulegen:
Für den ersten User:
htdigest -c dateiname "Geheim" testuser
Für alle weiteren User:
htdigest dateiname "Geheim" weitereruser
Dort wirst Du dann auch nach dem Passwort gefragt.
Wenn Du die Datei manuell anlegen willst: Das Format ist folgendes:
username:realm:passwort
Wobei username der Benutzername ist, realm der Name des Bereich (also das was bei AuthName steht, nur ohne Anführungszeichen).
Das kodierte Passwort ergibt sich aus MD5(username + ':' + realm + ':' + passwort_im_klartext). Wenn Du also manuell einen User 'hans' mit dem Passwort 'peter' anlegen willst und Deinen geschützen Bereich "Interner Bereich" genannt hast (AuthName), dann ergibt sich folgende Zeile für Deine .htuser:
hans:Interner Bereich:4fdd2d83a738c81bfa575148c78e6c7c
Wobei 4fdd2d83a738c81bfa575148c78e6c7c nichts anderes ist als MD5('hans:Interner Bereich:peter') in Hex-Darstellung.
Für Apache 2.2 brauchst Du (weil sich dort einiges zu Authentifizierung und Authorisierung geändert hat) eine etwas andere Konfiguration - die .htuser-Datei bleibt aber gleich:
AuthType Digest
AuthName "Geheim"
AuthDigestDomain /pfad/wo/du/bist
AuthDigestProvider file
AuthUserFile /pfad/zu/.htusers
Require valid-user
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
Beachte bitte, dass Digest Auth nicht wirklich gut unterstützt wird (MD5-sess wird zum Beispiel weder vom Apache noch von irgend einem mir bekannten Browser korrekt umgesetzt) und dass man zum Beispiel für den IE < 7 eben diesen "Hack" braucht, damit es überhaupt funktioniert.
Als Alternative zu Digest Auth (ich nehme an, Du willst nicht, dass User + Passwort im Klartext über die Leitung wandern) bietet sich übrigens SSL + Basic Auth an, das macht zumindest in den Browsern selbst keine Probleme.
Viele Grüße,
Christian