Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: joshuax112 am 24.07.07 - 14:40:59

Titel: Authentication gegen LD WebService
Beitrag von: joshuax112 am 24.07.07 - 14:40:59
Hallo,

ich habe einen WebService geschrieben und möchte diesen nun gerne absichern. Leider finde ich im Netz zum Teil die Auskunft, dass dies erst im nächsten Release möglich ist bzw. man über JS gehen sollte. Gibt es auch einen "einfachen" Weg sich am WebService anzumelden?

Vielen Dank, Joshi
Titel: Re: Authentication gegen LD WebService
Beitrag von: joshuax112 am 24.07.07 - 16:25:28
-edit funktioniert gerade nicht-

Als Client möchte ich ein Javaprogramm einsetzen.
Titel: Re: Authentication gegen LD WebService
Beitrag von: datenbanken24 am 26.07.07 - 11:35:05
Schon der Domino 6 Server unterstützt die
BASE64 Standard Authorization.

Man kann sich also z.B. per Java problemlos am Domino Webserver anmelden,
und ?CreateDocument, ?SaveDocument und ?DeleteDocument Befehle absetzen,
die dann genau mit den Rechten des Benutzers ausgeführt werden.


String base64 = "Basic " +  new sun.misc.BASE64Encoder().encode( userDB24.getBytes() );
URLConnection connection = url.openConnection();
connection.setRequestProperty( "Authorization", base64 );
connection.setUseCaches( false );
connection.setDoOutput( true );   

Is' ne rattenscharfe Geschichte.

Gruß,
Uwe
Titel: Re: Authentication gegen LD WebService
Beitrag von: flaite am 26.07.07 - 12:46:48
Du mußt einfach in der ACL der Datenbank default die Leserrechte wegnehmen.

Ich würd jakarta HTTP Client von jakarta.commons benutzen anstatt URLConnection. 
geht damit wesentlich einfacher:
- SSL
- Anmeldung beim outbound HTTPProxy
- automatisches Folgen von Redirection HTTP Responses
- Komprimierung
- vieles andere mehr
- Unterstützung von verschiedenen Zeichensätzen 

Im download (http://jakarta.apache.org/commons/httpclient/downloads.html, beachte: http://jakarta.apache.org/commons/httpclient/dependencies.html) finden sich brauchbare Beispiele und in für Java Programmierer an sich recht sinnvollen jakarta commons Büchern wird das ausreichend beschrieben (leider oft noch die etwas schlechtere 2.0 Version).

Ich konnte das auch in Domino 6 als SOAP Client verwenden, der einen Webservice von SAP NetWeaver konsumierte.

Client Authentification sollte immer zusammen mit SSL verwendet werden, weil sonst per sniffer Passwörter ausgelesen werden können. Base64 ist einfach kein Verschlüsselungsmechanismus sondern reine Konvertierung. Es gibt auch eigene Webservice Authentifizierungs-Mechanismen, die aber heutzutage meist nur teilweise implementiert sind und auch nicht nötig sind, weil die SSL/Basic Authentification Verbindung für die meisten Fälle ausreicht.

Ich halte es ausserdem für fragwürdig, ob die Domino SOAP Implementierung zur Zeit überhaupt Sinn macht. Ich hab mich in einem Fall dazu entschieden einfach einen Agenten zu schreiben, der ein XML Dokument entgegennimmt und parsed. Das ganze firmiert unter dem Namen POX (Plain Old XML) Webservice.

Gruß Axel
Titel: Re: Authentication gegen LD WebService
Beitrag von: joshuax112 am 03.08.07 - 09:04:45
Hallo und vielen Dank für die ausführlichen Antworten. Ich versuchen es so umzusetzen.

Vielen Dank und euch ein schönes, baldiges Wochenende,
  Joshi