Ich versuche ein System zu erstellen, das mit ADFS und Ansprüchen arbeitet. Im Moment ist dies nur eine "Spielzeug" -Implementierung.Delegierungstoken erstellen - kann keinen SecurityTokenService erstellen
Ich habe eine sehr einfache MVC-Webanwendung erstellt, sie mithilfe des Assistenten "Identity and Access ..." in Visual Studio eingerichtet, um mit einem ADFS 2.0-Server zu kommunizieren und sie auf einem IIS-Server bereitzustellen. Alles funktioniert gut, und ich kann die erhaltenen Ansprüche prüfen und auflisten.
Der nächste Schritt besteht darin, einen Web-API-basierten REST-Dienst zu erstellen (der Back-End-Dienste darstellt, von denen die MVC-Anwendung abhängt). Daher möchte ich die Anmeldeinformationen an diesen Back-End-Server weitergeben kann geeignete Autorisierungsentscheidungen treffen.
Also ist der erste Schritt für mich, das Delegationstoken zu erstellen (und ich werde dann hoffentlich herausfinden, was ich damit machen soll, um den Restanruf zu machen). Ich habe dies bekam:
//We need to take the bootstrap token and create an appropriate ActAs token
var rst = new RequestSecurityToken
{
AppliesTo = new EndpointReference("https://other-iis.example.com/Rest"),
RequestType = RequestTypes.Issue,
KeyType = KeyTypes.Symmetric,
ActAs = new SecurityTokenElement(((BootstrapContext)((ClaimsIdentity)User.Identity).BootstrapContext).SecurityToken)
};
var sts = new SecurityTokenService(); //This line isn't valid
var resp = sts.Issue(System.Threading.Thread.CurrentPrincipal as ClaimsPrincipal, rst);
Aber das Problem ist, dass SecurityTokenService
abstrakt ist. Ich kann keine Typen finden, die von dieser Klasse in entweder System.IdentityModel
oder System.IdentityModel.Services
abgeleitet sind, und das oben erwähnte enthält keinen Verweis auf den ADFS-Server, den ich zu einem bestimmten Zeitpunkt natürlich bereitstellen muss.
Natürlich kann es sein, dass ich auch die falsche Route hinunterfahre oder nur einen kleinen Stolperstein treffe und nicht einen viel größeren in der Ferne auftauchen sehe, also wäre jeder Ratschlag auch zu schätzen.
Ich habe sehe zum Beispiel Identity Delegation Scenario, aber das nutzt CreateChannelActingAs
, die ich glaube nicht funktionieren wird, wenn ich in eine Ruhe Dienst bin im Gespräch (oder es wird?), Und scheint auch nicht für .NET 4.5 zu gelten.
Ich möchte keine STS implementieren - ich möchte mit dem ADFS sprechen und es veranlassen, ein Delegationstoken auszugeben - ich kann nicht scheinen, einen Weg zu finden, das zu tun. –