WebService Authentifizierung

Status
Nicht offen für weitere Antworten.

TeamBob

Aktives Mitglied
Hi
Also meine WebSerive braucht natürlich auch eine gewisse Sicherheit. Das bereits bestehende Project wozu ich einen WS entwickeln soll besitzt bereits eine Passwortabfrage. Es soll möglich sein das man sich beim starten des WS indentifizieren muss mit einen gegeben Username und Passwort. Ich weis jedoch nicht ob das so einfach geht und ich einfach in meine WS den bereits vorhanden security log einbinden kann oder nicht. Ich habe schon im Netz rumgeschaut aber kein passendes Tut. gefunden nur für .Net oder MS usw.
Ich benutze Eclipse WS mit Tomcat als server und einer MYSql Datenbank dazu.
Ich hoffe jemand kann mir bei dem Thema weiterhelfen.
Danke
 

mvitz

Top Contributor
Der Webservice den man für Atlassian Jira benutzen kann löst das folgendermaßen:

Es gibt eine Webservicemethode wo du Username/Passwort an den Server schickst, zurück bekommst du einen sogenannten Authtoken.
Diesen Authtoken, musst du dann für jede weitere Anfrage mitschicken. Evtl. kannst du das ja so lösen.

Ansonsten müsstest du bei jeder Abfrage dir Username/Passwort mitschicken lassen und bevor du die eigentliche Aufgabe erledigst prüfen ob beides gültig ist -> mehr Overhead.

Ansonsten, wenn der Webservice nur Lokal (LAN) aufgerufen wird, könnte man das evtl. auch über IPs lösen.
 

TeamBob

Aktives Mitglied
hmm...
Also würde es möglich sein die Security Methode vom Project zu verwenden die bereits eine passwort abfrage macht.
Man müsste diese im WS nur aufrufen und so verändern das diese als Antwort eine AuthToken mitsenden der ja dann wahrscheinlich im SOAP Header gespeichert wird, sodass man ein gewissen session hat oder sehe ich das jetzt falsch.
Hast du genau Tipps wie man dies umsetzen könnte?
Kannst mir ja mal ne Pm mit deiner ICQ-NR. schicken, dann kann man das näher besprechen...
Naja danke dir
 

mvitz

Top Contributor
Da ich mich bei der Sache nur einen Client entwickelt habe kann ich dir eben per Pseudocode zeigen, wie das geht. Ist eigentlich keine Session, sondern ein immerwährendes senden des Tokens. Sessions gibt es für einen Webservice meines wissens nach nicht.

Pseudocode:
[HIGHLIGHT="Java"]WebService service = new WebService();
String authToken = service.login("test", "geheim");
Document doc = service.getDocument(authToken, "ichWillDasDokument");
service.logout(authToken);[/HIGHLIGHT]

Wie das intern geregelt wird, kann ich dir nicht sagen, ich weiß auch nicht, ob der Authtoken jedesmal derselbe ist oder sich ändert. (Das kann ich aber am Montag nachgucken, wenn bedarf besteht).

Ansonsten machst du das so:

Nach dem Aufruf login, passiert auf dem Server:
1) Username vorhanden?
2) Password passt zum Usernamen?
3) zufälliges authToken generieren
4) authToken + Zeitstempel abspeichern
5) bei jedem Methoden aufruf gucken, ob authToken vorhanden
6) aufruf bearbeiten + neuen Zeitstempel für authToken abspeichern
6) wenn logout aufgerufen wird, authToken löschen, ansonsten authToken nach x minuten löschen
 

TeamBob

Aktives Mitglied
ok das sind schonmal sehr interessante Informationen und Hilfen.
Also es wäre echt eine riesen Hilfe, wenn du mir Montag dazu mehr
schreiben könntest. Also sprich nicht nur den Pseudocode
sondern alles was du so darüber hast. Das würde mir echt helfen.
Danke ich freue mich..
 

TeamBob

Aktives Mitglied
Naja ich bin jetzt immernoch nicht soviel weiter mit meiner WebService Authentifizierung, weil ich einfach nicht weis wie ich bei der ganzen Sache ansetzen sollte.

Also der User muss sich irgendwie anmelden mit einen Passwort und einen Username und diese muss überprüft werden und dann die dazugehörigen rechte bekommen. Wie schon gesagt eine Username / Passwort abfrage besteht schon im Project aber im WS funktioniert das ja irgendwie anders. Dieser Status dann muss ja dann auch irgendwie weitergegeben werden sodass ich das irgendwie übergeben. Weil bei der Suchanfrage muss man bis jetzt ein Suchbegriff eingeben und seine ID. Die ID sollte dann wegfallen und es sollte dann die ID übergeben werden die er bei der anmeldung bekommmen hat, sodas ihn ein status zugeorndet werden kann usw. Ich weis aber gar nicht wie ich das übergebe ohne das komplette XML-File auseinander zunehmen.
Wie gesagt ich habe gar keinen Ansatz, vielleicht könnt ihr mir ja helfen.
Danke
 

mvitz

Top Contributor
Wie gesagt, entweder gibts du dem Benutzer in der Anmeldung einen Key (oder auch ID) zurück und dieser muss diese dann jedesmal mitschicken. (So macht das auch Jira, habe das heute nachgeschaut. Hier muss man sich einloggen, bekommt einen Key zurück und muss diesen Key immer mitschicken.) Ander Möglichkeit wäre evtl. per IP.
 

TeamBob

Aktives Mitglied
hmm....
Hast du den vielleicht irgendwelche Qullcodes für mich?
Weil ich weis gar nicht wie ich das angehen soll im dem Bereich
 

mvitz

Top Contributor
Nein Quellcode kann ich dir leider keinen geben. Ich würde es wie gesagt so machen:

1. User loggt sich ein:
Code:
token = login(username, password);
1.1 Server macht folgendes:
Code:
String login(username, password) {
  boolean canLogin = canLogin(username, password);
  if (canLogin) {
    String token = calculateToken(username, password);
    addTokenToList(token);
  }
}
2. User ruft methode auf:
Code:
result = suche(dokumentname, token);
2.1 Server macht folgendes:
Code:
Document suche(dokumentname, token) {
  if (checkToken(token)) {
    return findeDokument(dokumentanem);
  } else {
    throw new Exception("Nicht erlaubter Zugriff!");
  }
}
Code:
boolean checkToken(token) {
  if (tokenMap.exists(token)) {
    return true;
  }
  return false;
}
 

TeamBob

Aktives Mitglied
hmm....
Ich sehe schon wie du das meinst, muss ich da jetzt extra einen server programmieren oder wo schreibe ich das denn hin.
 

mvitz

Top Contributor
Auf den Server, der deinen Webservice ausführt?

Evtl brauchst du dann dafür noch ne Datenbank anstelle der Map.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Zertifikat Authentifizierung am Webservice SOA 0
P SOAP Webservice mit HTTP Basic Authentifizierung SOA 1
T Error beim Versuch, einen Webservice zu kontaktieren SOA 4
J SOA WebService JAX-WS Java-Klasse per wsimport generieren lassen SOA 3
K Webservice: 4 counts of IllegalAnnotationExceptions SOA 0
P JBOSS 7 und Restful Webservice SOA 1
N WebService Ausgabe einer ArrayList SOA 2
N Web Services Client aus externen WebService erstellen SOA 4
I SOAP Webservice Methoden und Parameter auslesen SOA 3
F [WebService] Array von eigenen Objekten SOA 0
M JAVA Webservice Währungsrechner DRINGEND Hilfe SOA 1
A Up-/ Download von Dateien zu WebService SOA 6
D WebService Technik - Aufwand Änderung des Application Server SOA 3
R Webservice Timeout Konfiguration SOA 3
D SOAP Webservice (SAP) SOA 3
MQue WebService Versionierung SOA 9
L [AXIS2] OutOfMemory Exception bei Übertragung von größerer Datei via Webservice SOA 3
A Funktion mit Map als WebService SOA 4
T Webservice serviceName im Handler ermitteln SOA 3
N Webservice Einbinden wsdl SOA 7
M Edit und Remove über Webservice SOA 3
F Client Problem gegen Webservice SOA 3
P Java Webservice mit JWS Bindingnamen customizen SOA 4
L wie ArrayList an Webservice geben? SOA 3
B Webservice Config / SoapStub: Best Practice SOA 3
S Objektübertragung Fehler über Webservice SOA 10
E Webservice durch Java ansprechen SOA 7
L Webservice HTTPS Netbeans SOA 2
G NullPointerException bei Parameterübergabe an Webservice mittels kSoap2 SOA 2
M Webservice per URL ansprechen SOA 14
M Webservice Client erstellen und XML Request senden SOA 3
T Verwendung von Eclipse Projekten im Axis2 Webservice SOA 8
S Webservice als "CronJob" SOA 4
M Webservice (JaxWS) extern verfügbar machen SOA 5
M Welches WebService Framework ist denn das beste FRAMEWORK? SOA 5
D Webservice fürs Internet sichtbar machen SOA 2
W WebService aus einer HTML-Seite SOA 9
T WebService innerhalb von Seam-Projekt, komplexe Datentypen SOA 6
N JAX-WS WebService und Tomcat 7 SOA 11
E Trennung von Daten und WebService und Wiederverwendung der Daten SOA 2
D Sicherheit bei REST-Webservice SOA 19
G WebService, was darf der Client alles sehen SOA 19
M Nutzen des Webservice AWSECommerceService SOA 1
S AXIS2 Webservice: Umgang mit komplexen Datentypen SOA 5
G Webservice Contract first SOA 8
G WebService -> ServletFilter SOA 2
G WebService Concurrency SOA 19
M Fehler beim Veröffentlichen eines Webservice SOA 6
G WebService Types SOA 7
G OpenLigaDB Webservice Client SOA 4
G WebService WSDL SOA 3
A PHP WebService aus Java aufrufen SOA 2
R Proxy WebService erstellen SOA 3
G JPA/ Webservice: Passwort Feld einer Klasse fürs Lesen "verschleiern" SOA 10
G WebService mit wsdl erstellen SOA 4
P WebService SOA 6
H Webservice: BindingProvider SOA 6
D WebService DB abfrage SOA 4
mabe83 EJB Klassen für Webservice nutzen SOA 2
S Webservice-Client-Klasse gibt immer null zurück SOA 3
G WebService mit komplexen Objekten SOA 5
C Problem mit Java Webservice - SOAPBinding.Style - Wrapper class fehlt SOA 1
T Rest Webservice der 2 verschiedene XML Objekte(JaxB) entgegennimmt SOA 10
S Webservice, Vererbung und Netbeans SOA 3
E Lesen der kompletten SOAP als WebService Provider/Server SOA 4
mabe83 Suche Hilfe zum Thema Webservice + EJB SOA 3
T WebService erstellen SOA 28
T Krankes Vorhaben: Von VB auf Java Webservice SOA 10
M Webservice RuntimeModelerException? SOA 5
G Webservice mit Java aufrufen SOA 2
G WebService: mehrere methoden mit demselben Namen SOA 4
T einfacher Webservice SOA 3
G Webservice im JBoss: runtime modeler error SOA 3
V webservice von aussen (webbrowser) ansprechen SOA 2
V Webservice, allgemeine Fragen SOA 9
G Alfresco - WebDav oder WebService SOA 2
0 Webservice nutzen (rpc/enc style) SOA 2
R XML verschicken mit Webservice Server Client SOA 2
R Webservice aufrufen mit SOAP Style.DOCUMENT ? SOA 5
G Webservice zugreifen SOA 6
G Deploy Apache CXF WebService mit Eclipse SOA 2
G Webservice mit JSON SOA 8
T Webservice über Tomcat loggen SOA 5
thE_29 WebService - JAXBElement - richtige Klasse? SOA 2
L Probleme mit komplexen Datentypen in einen Webservice SOA 2
O brauche hilfe bei java/webservice geschichte SOA 29
M Webservice/ Axis/ Bea Weblogic Server 8.1 SOA 12
E Webservice konfigurieren SOA 2
Y Webservice erstellen SOA 4
F Tutorial zu WebService mit JBoss, Eclipse und Jax-ws? SOA 3
C Webservice im Unternehmen SOA 4
L webservice frage (eclipse/wtp, wsdl) SOA 12
U Webservice mit Axis, Hello World Beispiel SOA 2
J Frage zu Webservice SOA 3
L WebService TestClient Problem SOA 2

Ähnliche Java Themen

Neue Themen


Oben