2010-12-15 16 views
1

So habe ich in den letzten paar Tagen meinen Kopf gegen die Wand geschlagen, zu versuchen zu verstehen, wie WCF Sicherheitsarchitektur funktioniert. Ich habe ein Ziel vor Augen und bin mir nicht sicher, ob ich in die richtige Richtung gehe.Brauchen Sie Hilfe zu verstehen, WCF Security Architecture

Das System

Wir verwenden eine Kombination von Active Directory und Datenbanken unserer Authentifizierung und Autorisierung zu verwalten. Clientanwendungen verwenden normalerweise ihre Windows-Anmeldeinformationen zum Authentifizieren, und die Anwendungen überprüfen anhand von Datenbanktabellen, ob diese Benutzer sich authentifizieren dürfen und ob sie berechtigt sind, die angeforderten Ressourcen zu verwenden. Im aktuellen Setup kommuniziert jeder Client direkt mit der Datenbank, um diese Überprüfungen durchzuführen.

Das Tor

Wir wollen einen Security Token Service verwenden, um den Client und bieten "high level" Berechtigungen für Top-Level-Ressourcen zu authentifizieren. Die Dienste, die Daten bereitstellen oder Aktionen ausführen, funktionieren, wenn das bereitgestellte SecurityToken gültig ist. Darüber hinaus würde das Token, wenn es kein bestimmtes Recht enthielt, den Token-Dienst abfragen, um festzustellen, ob der Benutzer Rechte hatte, die nicht geladen wurden, als das Token ursprünglich erstellt wurde. (Wir haben mehr als 300 Rechte in unserer Datenbank, und das zu recht kräftigen Token für Benutzer mit vielen Rechten führen könnte)

Was ich nicht Verstehen Sie

1) I das Token Erstellungsprozess zu verstehen, aber Ich bin ein wenig darüber verloren, wie der Client das Token erhält, speichert und an die Dienste sendet, die es verwenden will. Benötigt jeder "Worker" -Dienst ein eindeutiges Token (d. H. Der Aufruf von CalculatorService erfordert eine Version des Tokens und der SaveResultService erfordert das Generieren eines neuen Tokens?) Kann ich Tokens manuell anfordern, speichern und senden?

2) Auf welcher Seite wird der Token verifiziert? Muss sich mein "Worker" -Dienst mit dem Token-Dienst zur Überprüfung des Tokens in Verbindung setzen? Oder liest es einfach das Token und nimmt an, wenn es richtig signiert ist, dass das Token echt ist und aus dieser Perspektive funktioniert?

3) Ist es möglich, meine Token manuell zu verschlüsseln und sie auf der Clientseite zur Verwendung zu speichern, während sie gültig sind (wodurch Authentifizierungsversuche bei jedem Serviceaufruf vermieden werden) und ein Webclient das Token zwischen den Seitenladungen speichern kann und es bei aufeinanderfolgenden Aufrufen wiederverwenden?

Dank für das mit meinem Mangel an Verständnis helfen

Antwort

2

Sie durch die Proben für Windows Identity Foundation gehen sollte - es Anbieter, die Klassen und Implementierungen Ansprüche einzuwickeln erforderlich, die Sie für Auth und authz verwenden oder Abfrage kann.

http://msdn.microsoft.com/en-us/library/ee517291.aspx

Was Sie suchen, ist ein dauerhafter Token-Cache. - Token haben Lebensdauern und erfordern in der Regel eine Erneuerung, und WIF übernimmt die Erneuerung für die meisten Szenarien.

Sie können Token manuell anfordern und anhängen und die Proxys mithilfe von WIF zusammenfassen.

Verwandte Themen