Zwei Methoden zur Kontrolle des Zugriffs auf .NET-Webdienste

Es besteht auch die Möglichkeit, die Benutzerauthentifizierung über IIS durch das Betriebssystem ausführen zu lassen. Auf diese Weise schützen die Standardauthentifizierungsfeatures von IIS den Zugriff auf das virtuelle Verzeichnis, in dem sich der Webdienst befindet, und verlangen eine Benutzer-ID und ein Passwort für den Zugriff auf das Verzeichnis. Der Client des Benutzers wird eine Benutzer-ID und ein Passwort benötigen, um den Dienst nutzen zu können, was für Entwickler, die den Dienst in Anspruch nehmen, lästig sein kann. Diese Methode erspart dem Webdienst-Entwickler jedoch das Erstellen einer Überprüfungsroutine und die Pflege einer Liste gültiger Schlüssel.

Ein Vorteil der Authentifizierung in IIS durch das Betriebssystem ist, dass der Webdienst ohne Bezug auf Benutzerüberprüfung codiert und getestet werden kann, ohne eine Überprüfung zu erfordern. Ist der Dienst dann einsatzbereit, kann die Standardauthentifizierung für das virtuelle Verzeichnis aktiviert werden. Ab diesem Zeitpunkt regelt dann IIS alle Authentifizierungsfälle noch bevor der Webdienst erreicht wird.

Während die programmgesteuerte Überprüfung erfordert, dass sowohl Client als auch Webdienst Teile der Überprüfungslogik bereitstellen, bedeutet die Authentifizierung durch das Betriebssystem, dass eine Authentifizierungslogik nur bei dem Client existiert. Die Clientanwendung muss das Objekt System.Net.NetworkCredential zum Verkapseln der Benutzer-ID und des Passwortes erstellen. Nachdem die Clientanwendung die Credentials-Eigenschaft des Webdienstes auf das von ihr erstellte NetworkCredential -Objekt setzt, lässt sich die Webdienstmethode normal aufrufen. Außerdem kann die Credentials-Eigenschaft auch auf einer Anwendungsebene gesetzt werden, so dass die Daten nur einmal während der Lebensdauer einer Anwendung weitergegeben werden müssen.

Der Autor der Clientanwendung, der dafür verantwortlich ist, die für die Nutzung des Dienstes erforderlichen Informationen zu erstellen, hat mehrere Möglichkeiten: die Benutzer-ID und das Passwort in der Anwendung festcodieren, die Eingabe der Benutzer-ID und des Passworts durch den Benutzer zwingend vorgeben, oder die Benutzer-ID und das Passwort einer Datenbank entnehmen. Die erste der genannten Möglichkeiten wird in Listing B aufgezeigt. Zu beachten ist, dass keinerlei Schlüssel an die Webdienstmethode weitergegeben werden muss, wenn diese aufgerufen ist.

Während die Authentifizierung durch das Betriebssystem etliche Vorteile hat, so ist sie trotzdem nicht perfekt. Die Pros und Contras der Standardauthentifizierung sind unter anderem:

Vorteile der Überprüfung durch das Betriebssystem

  • Im Webdienst keine Codierung erforderlich – Die Authentifizierung durch das Betriebssystem kann für jeden bestehenden Webdienst ohne das Schreiben von zusätzlichem Code realisiert werden, da die Überprüfung durch das Betriebssystem ausgeführt wird, bevor der Webdienst erreicht wird.
  • Vereinfachte Funktionen – Jede Funktion benötigt nur ihre jeweiligen Betriebsdaten. Gesonderte Schlüsselparameter oder eine Überprüfungsfunktion sind nicht erforderlich. Die Clientanwendung muss nicht bei jedem Aufruf des Webdienstes einen Schlüssel weitergeben.

Nachteile der Überprüfung durch das Betriebssystem

  • Administrator erforderlich – Ein kompetenter Administrator ist erforderlich, um die Standardauthentifizierung zu aktivieren und um die Dienstanwender- und Passwortlisten auf dem neuesten Stand zu halten.
  • Für den Cliententwickler komplizierter – Die Clientanwendung muss den Benutzernamen und das Passwort irgendwie speichern und abrufen. Ob das nun in der Anwendung festcodiert ist, bei der Laufzeit gelesen oder durch den Benutzer eingegeben wird: Wichtig ist sicherzustellen, dass diese Informationen weitergegeben werden.

Keine perfekte Antwort

Leider gibt es noch keine perfekte Lösung, um den Zugriff auf Webdienste zu sichern, doch ist die übliche Methode die, dass ein Client irgendwelche Überprüfungsinformationen an den Dienst weiterleiten muss. Wie man das erreicht, ist von entscheidender Bedeutung. Eine der beiden hier beschriebenen Methoden kann für bestimmte Situationen durchaus die beste Lösung darstellen.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Zwei Methoden zur Kontrolle des Zugriffs auf .NET-Webdienste

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *