Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: mind1 am 21.10.10 - 14:03:46
-
Hallo zusammen,
wir übertragen mit diversen Kunden XML per HTTP. Ein Kunde kann nun die Zugangsdaten nur per URL übertragen. Das läuft ja im Normalfall so:
http://username:password@www.irgendwo.de/datenbank.nsf
Nun ist das ja anscheinend bei Domino anders gelöst, nämlich
http://www.irgendwo.de/names.nsf?Login&Username=name&Password=pass&redirectto=http://www.irgendwo.de/datenbank.nsf
Leider funktioniert das aber so nicht, wenn ich per xmlhttprequest auf diese URL etwas sende. Lediglich mit einem herkömmlichen Browser bekomme ich den gewünschten Erffekt: Ein automatischer Login und das Aufrufen der redirect-URL. Wenn ich diesen Request sende, ist der Response-text immer der Quelltext der ganz normalen Login-Seite des Servers.
Weiss jemand, wie ich einen solchen Request korrekt senden kann? Es geht speziell um die Übertragung des Kennworts bzw des Benutzernamens per URL. Sonst übertrage ich die Kennwörter (wie es sich gehört) per Request-Header. Ich weiß auch, dass das unsicher ist - bitte keine Belehrungen!
Vielen Dank!
Gruß, Bernd
-
http://vinceschuurman.com/home/ndt4.nsf/%28LUBlogContent%29/200704151737
Ich tippe mal drauf, dass der Server bei einer Anmeldung auf diese Art und Weise nach der Anmeldung einen Redirect zur eigentlichen Seite und nicht gleich die XML-Struktur zurückschickt.
Prinzipiell: Domino löst das nicht "anders". http://username:password@www.example.com/ wird auch unter Domino unterstützt, wenn "Basic Authentication" (das hässliche Browser-Popup für die Anmeldung) und nicht "Session Authentication" (das mit den schönen HTML-Anmeldemasken und SSO) aktiviert ist.
Damit man für RSS, SOAP und Co. trotz "Session Authentication" die "Basic Auth." verwenden kann, gibt es seit Domino 7.0.2 die Web Site Rule “Override Session Authentication with basic authentication."
P.S: "irgendwo.de" gehört einem Hr. Stefan Busse, c/o Seist in München. Für Beispiele, ... sollte man als Domainnamen gemäß RFC 2606 (http://www.rfc-editor.org/rfc/rfc2606.txt) "example.com" verwenden.
-
Hallo martin,
faszinierend:
P.S: "irgendwo.de" gehört einem Hr. Stefan Busse, c/o Seist in München. Für Beispiele, ... sollte man als Domainnamen gemäß RFC 2606 (http://www.rfc-editor.org/rfc/rfc2606.txt) "example.com" verwenden.
wieder was gelernt
Gruß vom kalten und sonnigen Nürnberg nach VIENNA
Werner
-
@Hr. Busse: Sorry ;D
Vielen Dank, habe die Rule erstellt. Kann aber erst heute Abend die HTTP-Task restarten, sonst fliegen mir alle user raus. Refresh hat nicht geholfen.
Gruß, Bernd
-
Hallo zusammen,
jetzt funktioniert schonmal die Anmeldung per Browser. Allerdings komme ich bei SOAP nicht ohne den Header "Authorization" aus. Der wird anscheinend beim Browser autonatisch generiert und gesendet. Kann man daran noch was schrauben?
Gruß, Bernd
-
Womit schickt der denn die Anfrage an Deinen Server? Den Header für "Authentication" kann eigentlich jedes Tool entsprechend generieren.
-
Hallo zusammen
http://username:password@example.com/ ist soweit ich weiß kein "offizielles" Format. Die meisten Browser unterstützen das aber.
Im IE wurde das mit Version 6 oder 7 abgeschaltet und kann per Registry wieder aktiviert werden, Firefox bringt eine Warnung.
Was ich damit sagen will, ist, das wie auch immer du den Request absetzt, du nicht davon ausgehen sollst, dass dein Tool eine Adresse der Form http://username:password@example.com/ als Endpoint akzeptiert.
Du müsstest einen "Authorization" Header senden mit base64-codiertem Username/Passwort:
http://en.wikipedia.org/wiki/Basic_access_authentication
Gruß
Roland