Wie authentifiziere und autorisiere ich jeden WCF-Anruf?

8

Ich habe WPF-Client-WCF-Dienste, die in IIS gehostet werden. Bei der Authentifizierung denke ich an die Authentifizierung des Zertifikats oder des Benutzernamens. Client ruft einige Methoden in WCF auf und übergibt einige Nachrichten.

  1. Bei jedem Anruf, der bei WCF eingeht, ich möchte den Benutzer authentifizieren.
  2. Um eine Nachricht in db zu platzieren, muss ich wissen, wer der Anrufer ist, wie sein Benutzername und einige andere Eigenschaften des Benutzers lauten. Wie man diese Informationen [kann ein kleines Objekt sein] bei jedem Anruf?
iraSenthil 17.02.2011, 17:10
quelle

1 Antwort

9

Dies ist das empfohlene Standardverhalten - jeder Aufruf an den WCF-Dienst ruft eine neue Instanz des Dienstes ab, und jeder Aufruf wird authentifiziert und autorisiert.

Stellen Sie sicher, dass in WCF nicht der Sitzungsmodus aktiviert ist und gehen Sie nicht den Pfad eines WCF-Singletons durch.

Behalten Sie einfach einen normalen WCF-Dienst "pro Anruf" bei - kein Problem.

Wenn Sie sich in einem Unternehmens-LAN befinden, können Sie auch daran denken, Windows-Anmeldedaten für die Authentifizierung zu verwenden (dies ist die Standardeinstellung für wsHttpBinding und netTcpBinding ).

Es gibt einen sehr umfangreichen WCF-Sicherheitsleitfaden mit vielen Beispielen und Anleitungen zur Einrichtung bestimmter WCF-Szenarien Sicherheit.

Ich würde Ihnen auch empfehlen, Die Grundlagen der WCF-Sicherheit für ein großartiges Intro zu lesen WCF und seine Sicherheitsmechanismen.

Ein bisschen fortgeschrittener ist die Idee von WCF-Sicherheit deklarieren , in der Juval Lowy fünf vorstellt Sicherheitsszenarien (das ist eine sehr würdige Lektüre!) und kapselt sie in Sicherheitsattribute ein, die auf Ihre Serviceverträge angewendet werden.

    
marc_s 17.02.2011, 17:30
quelle

Tags und Links