ASP.Net Core SAML-Authentifizierung

Ich versuche, einer ASP.Net Core-Lösung die SAML 2.0-Authentifizierung hinzuzufügen. Ich kann keine Dokumentation zu diesem Thema finden, daher bin ich mir nicht sicher, wo ich anfangen soll. Es gibt wahrscheinlich Dokumentation, aber ich möchte nicht drei Tage damit verbringen, Experte zu werden.

Von dem, was ich sehe, hat ASP.Net Core etwas von den alten OWIN-Assemblys / Namespaces geändert. Es gibt Bibliotheken von Drittanbietern, die die SAML 2.0-Implementierung vereinfachen, z. B. Kentor.AuthServices.

Ich bin nicht sicher, wie ich dies mit ASP.Net 5 RC 1 / ASP.Net Core kombinieren soll. Verwenden Sie beispielsweise die AspNet * -Tabellen in SQL.

ASP.Net 5 RC 1 enthält mehrere Bibliotheken zur Implementierung der Authentifizierung (Client).

Beispielsweise

Microsoft.AspNet.Authentication.OAuth Microsoft.AspNet.Authentication.Facebook Microsoft.AspNet.Authentication.Google Microsoft.AspNet.Authentication.Twitter

m diese zu implementieren, müssen Sie eine einfache Erweiterungsmethode in @ aufrufeStartup.cs:

app.UseIdentity()
.UseFacebookAuthentication(new FacebookOptions
{
    AppId = "ID",
    AppSecret = "KEY"
})
.UseGoogleAuthentication(new GoogleOptions
{
    ClientId = "ID",
    ClientSecret = "SECRET"
})
.UseTwitterAuthentication(new TwitterOptions
{
    ConsumerKey = "KEY",
    ConsumerSecret = "SECRET"
});

Wenn dies erledigt ist, zeigt das ASP.Net-Beispielprojekt automatisch soziale Schaltflächen für die Anmeldung / Verwaltung des Kontos an:

Im Backend-Code werden die Authentifizierungsanbieter mit @ abgerufevar otherLogins = _signInManager.GetExternalAuthenticationSchemes().Where(auth => userLogins.All(ul => auth.AuthenticationScheme != ul.LoginProvider)).ToList();. Dies bedeutet, dass die Authentifizierungsanbieter an einem Ort registriert sind, der sie durch Aufrufen von @ verfügbar mach_signInManager.GetExternalAuthenticationSchemes().

Wie kann ich die SAML 2.0-Authentifizierung in ASP.Net 5 RC1 / ASP.Net Core implementieren?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage