c# asp.net single-sign-on

Implementación de inicio de sesión único de C#ASP.NET



single-sign-on (4)

Existen múltiples opciones para implementar SSO para una aplicación .NET.

Mira los siguientes tutoriales en línea:

Conceptos básicos del inicio de sesión único , julio de 2012

http://www.codeproject.com/Articles/429166/Basics-of-Single-Sign-on-SSO

GaryMcAllisterOnline: ASP.NET MVC 4, ADFS 2.0 y la integración de STS de terceros (IdentityServer2) , enero de 2013

http://garymcallisteronline.blogspot.com/2013/01/aspnet-mvc-4-adfs-20-and-3rd-party-sts.html

El primero usa ASP.NET Web Forms, mientras que el segundo usa ASP.NET MVC4.

Si sus requisitos le permiten usar una solución de terceros, también considere OpenID. Hay una biblioteca de código abierto llamada DotNetOpenAuth .

Para obtener más información, lea la publicación de blog de MSDN. Integre OpenAuth / OpenID con su aplicación ASP.NET existente utilizando Universal Providers .

¡Espero que esto ayude!

Tengo la tarea de implementar el inicio de sesión único para nuestros clientes como parte de nuestro próximo lanzamiento. El flujo existe de la siguiente manera:

  1. El usuario inicia sesión en el sistema de portal principal de su escuela utilizando una identificación / contraseña de estudiante que la escuela le proporcionó.
  2. El usuario hace clic en el enlace al producto de mi empresa.
  3. El usuario se dirige automáticamente a la página del panel como si acabara de iniciar sesión a través del formulario de inicio de sesión en nuestro sitio.

Por lo tanto, hay dos mecanismos por los cuales un usuario puede ser autenticado en nuestro sitio:

  1. Llegando a la página de inicio de nuestro producto, e ingresando usando el correo electrónico / contraseña que almacenamos en nuestro sistema local.
  2. Usar el inicio de sesión único en el que el alumno ya inició sesión en el sistema principal de la escuela con una identificación y contraseña de estudiante.

Si la implementación de nuestro producto está en ASP.NET (a diferencia de Java / Ruby), ¿deberíamos utilizar CAS, JOSSO u otro producto de inicio de sesión único de terceros? ¿O hay algo disponible para un entorno .NET que sería más simple para nosotros como compañía .NET?


Hay varios proveedores de Identity con soporte de SSO listos para usar, también productos de terceros **.

** El único problema con los productos de terceros es que cobran por usuario / mes y puede ser bastante caro.

Algunas de las herramientas disponibles y con API para .NET son:

Si decide utilizar su propia implementación, puede usar los marcos a continuación categorizados por lenguaje de programación.

  • DO#

    • IdentityServer3 (protocolos OAuth / OpenID, OWIN / Katana )
    • IdentityServer4 (protocolos OAuth / OpenID, ASP.NET Core )
    • OAuth 2.0 por Okta
  • Javascript

    • pasaporte-openidconnect (node.js)
    • oidc-provider (node.js)
    • openid-client (node.js)
  • Pitón

    • Pyoidc
    • Proveedor Django OIDC

Me gustaría ir con la aplicación IdentityServer4 y ASP.NET Core, es fácil de configurar y también puede agregar su propio proveedor de autenticación. Utiliza los protocolos OAuth / OpenID que son más nuevos que SAML 2.0 y WS-Federation.


Llego tarde a la fiesta, pero para la opción n. ° 1, me gustaría ir con IdentityServer3 (.NET 4.6 o inferior) o IdentityServer4 (compatible con Core ).

Puede reutilizar su tienda de usuario existente en su aplicación y conectarla para que sea la tienda de usuarios de IdentityServer. Luego los clientes deben apuntar a su IdentityServer como el proveedor de identificación abierta.


UltimateSAML SSO es un conjunto de herramientas .NET de OASIS SAML v1.x y v2.0. Ofrece una manera elegante y fácil de agregar soporte para Single Sign-On y Single-Logout SAML a sus aplicaciones ASP.NET, ASP.NET MVC, ASP.NET Core, Desktop y Service. La biblioteca ligera le ayuda a proporcionar acceso SSO a sitios web en la nube e intranet utilizando una única entrada de credenciales.

La revisión detallada de UltimateSAML SSO se puede encontrar aquí