• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SoapClient - Authentifizierung

Puccini

Neues Mitglied
Hi,

ich will mir einen kleinen Webservice bauen um meine user-anmeldungen zu bündeln.
Dabei dachte ich, ist es sicher sinnvoll, wenn nicht jeder meinen Webservice einfach so aufrufen kann.

Ich hab folgendes im manuel gefunden:
Code:
For HTTP authentication, the [I]login[/I] and        [I]password[/I] options can be used to supply credentials.

Kann ich damit einen user übergeben der nur den webservice nutzen darf???
oder was ist damit gemeint?

Sonst müsste ich das irgendwie anders abfangen...
z.B. beim aufruf der Class des Service einen md5-hash übergeben, falls der nicht stimmt, wird die klasse nicht erzeugt.

Danke euch.
 
Es gibt mehrere Möglichkeiten der Authentifizierung.
Zum einen kannst du das Verzeichnis, in dem sich der Webservice befindet, mit .htaccess / .htpasswd schützen. Der Aufruf müsste dann mit http://user:[email protected]/soap/service.wsdl gehen. Das ganze ist natürlich nicht besonders sicher.
Zum anderen kannst du natürlich eine Benutzerdatenbank hinterlegen und die Angabe von Benutzernamen und Passwort als Parameter bei jeder Anfrage verlangen. Das sieht dann bei mir in der WSDL z.B. so aus:

Code:
  <message name="GetNewOrders0Request"> 
    <part name="Username" type="xs:string"/> 
    <part name="Password" type="xs:string"/> 
    <part name="Kassensystem" type="xs:string"/> 
  </message> 
  <message name="GetNewOrders0Response"> 
    <part name="return" type="xs:string"/> 
  </message> 
  <message name="SendOrderStatus1Request"> 
    <part name="Username" type="xs:string"/> 
    <part name="Password" type="xs:string"/> 
    <part name="OrderID" type="xs:int"/> 
    <part name="StatusCode" type="xs:string"/> 
  </message> 
  <message name="SendOrderStatus1Response"> 
    <part name='success' type='xs:boolean'/> 
  </message>
 
Hm, so wie deine zweite möglichkeit hab ich das bisher auch.

ich mach das so:
der client baut den service auf mit soapclient.
dann muss als erstes die funktion authentication aufgerufen werden. da wird überprüft, ob der user + pw stimmen.

dann kann der client alle weiteren funktionen nutzen.
in jeder der funktionen wird dabei vorher überprüft, ob die authentifizierung geklappt hat, falls nicht wird eine exeption gewurfen.

:D
 
Zurück
Oben