net mvc hacer form como asp and asp.net-core saml-2.0

mvc - ASP.Net Core SAML autenticación



security asp net mvc (1)

Que yo sepa, no hay implementación de SAML2 para ASP.NET Core. Estoy planeando hacer un Coreware ASP.NET Core para Kentor.AuthServices (soy el mantenedor), pero es solo planes todavía.

Ahora hay un prototipo funcional de un middleware ASP.NET Core en https://github.com/KentorIT/authservices/pull/489 . Se incluirá en el lanzamiento oficial cuando se hayan agregado las pruebas.

También es importante saber que si bien este middleware sería compatible con el modelo de seguridad Core de ASP.NET, solo se ejecutaría en .NET Framework completo y no en .NET Core. La razón es que SignedXml y el soporte de SAML2 en System.IdentityModel aún no están disponibles en .NET Core.

Estoy tratando de agregar la autenticación SAML 2.0 a una solución Core de ASP.Net. No puedo encontrar ninguna documentación sobre el tema, por lo que no estoy seguro de por dónde empezar. Probablemente haya documentación por ahí, pero no quiero pasar 3 días convirtiéndome en un experto en esto.

Por lo que puedo ver, ASP.Net Core ha cambiado algo de los antiguos ensamblados / espacios de nombres de OWIN. Existen bibliotecas de terceros para simplificar la implementación de SAML 2.0, como Kentor.AuthServices .

No estoy seguro de cómo combinar esto con ASP.Net 5 RC 1 / ASP.Net Core. Por ejemplo, haciendo uso de las tablas AspNet * en SQL.

ASP.Net 5 RC 1 viene con varias bibliotecas para implementar la autenticación (cliente).

Por ejemplo:

Implementar esto es cuestión de llamar a un método de extensión simple en Startup.cs :

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

Una vez hecho esto, el proyecto de muestra ASP.Net muestra automáticamente los botones sociales para iniciar sesión / administrar cuenta:

En el código de fondo, los proveedores de autenticación se recuperan utilizando var otherLogins = _signInManager.GetExternalAuthenticationSchemes().Where(auth => userLogins.All(ul => auth.AuthenticationScheme != ul.LoginProvider)).ToList(); . Esto significa que los proveedores de autenticación están registrados en algún lugar que los hace disponibles llamando a _signInManager.GetExternalAuthenticationSchemes() .

¿Cómo puedo implementar la autenticación SAML 2.0 en ASP.Net 5 RC1 / ASP.Net Core?