2014-11-25 7 views
7

Verwendung Dies bezieht sich auf, aber ich bin mir ziemlich sicher nicht duplizieren, meine Frage: Looking for a secure and robust STS implementationErstellen eines benutzerdefinierten WS-Federation Identity Provider einen WCF-Dienst

Da das fragen, einige Eingaben von Unternehmen, und einige der Forschung, hat mich dazu gebracht zu glauben, dass ich anstelle der Implementierung eines sicheren Token-Dienstes zum Umhüllen meines eigenen Identitätsanbieters die Ausgabe von Token an den Identity-Provider selbst delegieren kann.

Der Identitätsanbieter ist ein WCF-Dienst, der eine Sammlung von Ansprüchen zurückgibt, wenn er einen Benutzer basierend auf einigen identifizierenden Daten für den Benutzer erfolgreich authentifiziert. Z.B.

[ServiceContract(Namespace = "http://namespace")] 
public interface IIdService 
{ 
    [FaultContract(typeof(IdServiceFault))] 
    [OperationContract] 
    ICollection<Claim> Authenticate(string idDatum1, string idDatum2); 
} 

wo Claim ist Microsoft.IdentityModel.Claims.Claim. Ich bin derzeit mit einem Beispiel nur Qualität STS-Implementierung, wie ein Website-Projekt, aber wenn möglich, möchte ich einfach die Aufgabe des Ausgeben und Signieren Tokens in den Identity-Provider, und schließlich qualifizieren sie als WS-Federation Identity Provider, den ich später in die Provider meiner Azure Access Control aufnehmen kann.

Wenn dies möglich ist, was muss ich im WCF-Dienst tun?

Antwort

3

"Man knackt nicht einfach einen WS-Federation Identity Provider" - es gibt eine Menge notwendiger Komplexitäten, meist um die Sicherheit, Integrität und Beweisbarkeit der geltend gemachten Ansprüche zu gewährleisten.

Sie wollen dieses Zeug NICHT falsch sehen - schauen Sie sich an, was kürzlich bei Target, Home Depot, Sony und anderen passiert ist!

Ich empfehle Ihnen dringend, Michele Leroux Bustamantes "Building A Custom Security Token Service" article zu lesen und erneut zu lesen, bis Sie die Rolle eines STS und die verschiedenen damit verbundenen Komplexitäten gründlich verstehen.

Hinweis: Um einen sicheren STS zu erstellen, müssen Sie SAML, WS-Sicherheit, WS-Trust und WS-Federation unterstützen und SSL für den sicheren Transport von Token und Daten verwenden. Sie müssen die verschiedenen Stufen des Kommunikationsprotokolls, die für die Zusammenführung von Identitätsinformationen erforderlich sind, sorgfältig implementieren.

Sobald Sie das Thema vertieft haben, werden Sie viel besser verstehen, warum es wahrscheinlich eine gute Idee ist, einen STS als Fassadenservice zu erstellen, der neben/in Ihrem bestehenden Identitätsdienst sitzt - anstatt Ihren bestehenden Service mit der beträchtlichen Komplexität zu verseuchen, die mit dem Aufbau eines STS verbunden ist.

Wenn das alles wie eine Menge Arbeit scheint, ist es (und es sollte - Sicherheit ist wirklich, wirklich schwer!).

Ich würde stark empfehlen, dass Sie Thinktecture Identity Server in Erwägung ziehen, statt Ihr eigenes zu bauen. Die ehrfürchtige Dominick Baier & Team haben einen tollen Job für den Bau eines robusten, gut entwickelt, Open-Source Identity Server durchgeführt, die WS-Fed sowie OpenID, OAUTH unterstützt usw.

+0

„Man muss nur nicht klopfen zusammen ein WS-Federation Identity Provider "- weiß ich das nicht @Rich. Ich suche, eine zu ersetzen, die "zusammen geklopft" worden ist, mit einer zwielichtigen VS Web site Projektschablone, und diese Frage war eine meiner ersten Möglichkeiten der Forschung in diesem Feld. Danke für die Information. – ProfK

+0

"Weiß ich das nicht" - Freut mich zu hören, dass Ihnen einige der Probleme bekannt sind;) –