CGIHTTPServer - Authentifizierung

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Vortec
User
Beiträge: 52
Registriert: Dienstag 10. Dezember 2002, 11:54

CGIHTTPServer - Authentifizierung

Beitragvon Vortec » Sonntag 8. Mai 2005, 18:23

Hallo,

ich suche eine Möglichkeit via CGIHTTPServer bzw. BaseHTTPServer meinen Usern einen Login zu ermöglich. Wie dieser Login ausschaut ist mir relativ egal, es kann also ein Form auf der Seite selbst oder eine Basic HTTP (aufpoppendes Fenster)-Lösung sein. Wenn jemand so etwas schonmal gemacht hat oder sonstige Tips geben kann, wäre ich für jede Antwort dankbar.

Grüße,
Vortec
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 8. September 2005, 21:03

Da bietet IMHO CGIHTTPServer bzw. BaseHTTPServer keine Möglichkeiten für...
Du must es einfach per CGI selber Programmieren... Im einfachsten Fall eine Text-Datei mit den Usernamen und Passwörtern ablegen und diese abgleichen...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Donnerstag 8. September 2005, 23:31

jens hat geschrieben:Da bietet IMHO CGIHTTPServer bzw. BaseHTTPServer keine Möglichkeiten für...
Du must es einfach per CGI selber Programmieren... Im einfachsten Fall eine Text-Datei mit den Usernamen und Passwörtern ablegen und diese abgleichen...


Da muss ich doch wiedersprechen.
CGIHTTPServer hat doch sicher eine Funktion, die Requests entgegen nimmt.
Da kann man doch eine HTTP Authentifizierung im Header mitsenden.
Muss aber erstmal sehen, wie der Header dahingehend aussehen müsste...
TUFKAB – the user formerly known as blackbird
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 9. September 2005, 06:28

blackbird hat geschrieben:CGIHTTPServer hat doch sicher eine Funktion, die Requests entgegen nimmt. Da kann man doch eine HTTP Authentifizierung im Header mitsenden.


Hmmm! Daran habe ich überhauptnicht gedacht... Es ist doch immer wieder erstaunlich, wie einfach doch HTTP und andere Protokolle funktionieren...

Hab spontan das gefunden:
http://php3.de/manual/de/features.http-auth.php
http://www.ietf.org/rfc/rfc2617.txt

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Beitragvon roschi » Freitag 16. Mai 2008, 23:38

hallo!

ich wollte dieses thema mal wieder aufgreifen...
ich bin gerade dabei, etwas zu schreiben, das ich dann mittels cgi auf einem server ausfuehren will. nun brauche ich aber auch authentifizierung. und wie aus diesem thread bereits hervorging, gibt es wohl die moeglichkeit, eine authentifizierungsaufforderung an den browser zu senden. sind das dann diese huebschen fenster, die sich im firefox, internet explorer, ... oeffnen, und zur eingabe von benutzername und passwort auffordern? wenn ja, wie genau koennte man so etwas realisieren? aus den o. g. links bin ich nicht so recht schlau geworden. :(

mfg
roschi
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Samstag 17. Mai 2008, 12:40

Die einfachste Sache wäre per .htaccess einen Login zu regeln: http://httpd.apache.org/docs/2.0/howto/auth.html

Ansonsten bieten Frameworks wie z.B. django alles was man braucht.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Samstag 17. Mai 2008, 15:45

jens hat geschrieben:Die einfachste Sache wäre per .htaccess einen Login zu regeln: http://httpd.apache.org/docs/2.0/howto/auth.html
Ansonsten bieten Frameworks wie z.B. django alles was man braucht.

Hallo!

Ja, das ist wirklich ein Grund von CGI abzulassen. Sobald du mit Authentifizierung und Sessions zu tun hast, ist CGI einfach zu weit unten. Das ist der richtige Zeitpunkt auf ein Framework wie Django, oder wenns kleiner sein soll, auf CherryPy umzusteigen.

mfg
Gerold
:-)

PS: http://www.python-forum.de/post-99357.html

.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Beitragvon roschi » Sonntag 18. Mai 2008, 09:15

hallo!

ja, der login muss ja nicht unbedingt mit cgi gemacht werden. aber wie wird denn z. b. dieser geregelt?
http://opensvn.csie.org/kruvion/

ich nutze auch kein apache, weil ich was haben moechte, was aus reinem python besteht. wie macht denn apache das?

mfg
roschi
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Sonntag 18. Mai 2008, 09:22

Das ist eine {Basic,Digest} Access Authentication und funktioniert mit HTTP-Headern. Wird im bereits von Jens verlinkten RFC-2617 beschrieben.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Sonntag 18. Mai 2008, 14:39

Wenn der Browser einen 401-Statuscode erhält, poppt er afaik automatisch einen entsprechenden Dialog auf.
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Beitragvon Trundle » Sonntag 18. Mai 2008, 14:49

Y0Gi hat geschrieben:Wenn der Browser einen 401-Statuscode erhält, poppt er afaik automatisch einen entsprechenden Dialog auf.

Der Server schickt noch einen ``WWW-Authenticate``-Header mit. Ohne bringt der Browser den Dialog nicht.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Sonntag 18. Mai 2008, 19:08

Jener Header ist afaik dafür da, zwischen Basic/Digest/Sonstwas-Auth zu unterscheiden. Abhängig davon könnte der Browser natürlich unterschiedlich reagieren. Ob mit oder ohne diesen der gewünschte Dialog aufpoppt oder nicht, ist allerdings insofern irrelevant, weil nur mit beidem (Statuscode und der Header) zusammen ein Schuh draus wird.
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Beitragvon roschi » Freitag 23. Mai 2008, 16:06

hallo!

entschuldigt bitte, dass ich mich so lange nicht gemeldet habe.

ja, aber wie kann ich nun einen solchen statuscode und header senden?
es waere schoen, wenn ihr code posten wuerdet.

mfg
roschi

PS: danke, dass ihr mir schon soweit geholfen habt!
Zuletzt geändert von roschi am Samstag 11. Oktober 2008, 20:09, insgesamt 1-mal geändert.
Fuer Alle, die in Python einsteigen wollen, kann ich das Buch A Byte of Python nur waermstens empfehlen!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 23. Mai 2008, 17:42

Mit CGI?

Code: Alles auswählen

print "Key: Value"


Ansonsten hängt es natürlich ab ob du ein Framework benutzt oder nicht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Beitragvon roschi » Freitag 23. Mai 2008, 18:59

hallo!

ich nutze kein framework. ich moechte nur eine authentifizierungsaufforderung senden, und dann pruefen, ob die eingaben korrekt waren. (ja, mit cgi)

wenn ja: seite anzeigen
wenn nein: fehler

mfg
roschi
Zuletzt geändert von roschi am Samstag 11. Oktober 2008, 20:08, insgesamt 1-mal geändert.
Fuer Alle, die in Python einsteigen wollen, kann ich das Buch A Byte of Python nur waermstens empfehlen!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder