HTTP User Authentication: Java Client -> Webserver

TiME-SPLiNTER

Aktives Mitglied
Hallo zusammen 🙂

Ich habe mal eine ganz Grundlegende Frage: Ich möchte ein Java Client schreiben, der mit einer API kommuniziert und um die API zu nutzen muss sich ein Benutzer beim Server ausweisen. Wie setzte ich das am sichersten um?

Eigentlich könnte ich ja über eine SSL-Verbindung bei jedem Request an den Server den Username und das Passwort mitsenden. Das sollte eigentlich sicher sein... aber es gibt sicher eine bessere Lösung? Ich finde es trotz SSL heikel Username und Passwort bei jedem Request an den Server mitzusenden.

Hab mich auch schon mal mit OAuth beschäftigt, aber dieses Verfahren ist ja nur dazu da, sicher zwischen Applikation und Server zu kommunizieren. Da müsste ich in jedem Request dann wieder Username und Passwort mitsenden...

Was gibt es da für Möglichkeiten, Lektüre, Tutorials, Libraries? Bin um jeden sinnvollen Tipp und Hinweis dankbar 😀.
 
Danke für deine Antwort 🙂. Ich habe dummerweise vergessen zu erwähnen, dass mit einem PHP-Script kommuniziert werden soll. Ich setzte auf dem Webserver kein JSF (EJBs) oder eine sonstige Java-Webtechnologie ein.

So wie ich die Dokumente durchgeschaut habe geht es in diesen aber nur um die Kommunikation zwischen einem Java Client und EJBs.
 
Also interpretiere ich das richtig, dass deiner Meinung nach keine Bedenken bestehen den Username und das Passwort bei jedem Request im "Klartext" zu übertragen, sofern ich eine SSL-Verbindung nutze?

Die HTTP Basic Authentication ist ja das, was man mit .htaccess und der .htpasswd erreichen kann. Wird diese Seite über den Browser aufgerufen, so wird das bis zum Browserneustart gespeichert. Verhält sich das beim Login über meinen Java-Client gleich?
 
Zuletzt bearbeitet:
Gut, vielen Dank für deine Antwort 😀. Das macht mir das ganze natürlich immens einfacher 🙂. Dann spielt es aber auch keine Rolle ob ich die HTTP Basic Authentication nutze oder bei jedem API Request den User mittels PHP validiere mit den Parametern (username, password) die beim Request des Java-Clients mitgesendet werden.
 
Eigentlich spielt es keine Rolle, ausser dass Http Authentication ein Standard ist.
Somit kannst du deine Applikation die Authorisisierungsfunktion des Servers nutzen und kann mittels PHP-API die Userdaten rausholen.

Wenn du Username/Passwort jedesmal mitgibst dann musst du die Security innerhalb der Applikation implementieren. Auch wird sich das 'Login' nicht mehr so ohne weiteres ersetzen lassen, da es kein Standard ist.
 

Zurück
Oben