2012-06-12 12 views
6

Tenemos varios clientes que usan nuestra aplicación web (no intranet), algunos clientes quieren que su inicio de sesión se integre con sus organizaciones Active Directory. Solo quieren que el usuario inicie sesión en su cuenta de Windows y pueda acceder a la aplicación web sin ingresar credenciales de usuario.Inicio de sesión único para la aplicación .NET integrado con Active Directory

He leído algunos artículos sobre ADFS, pero todavía no estoy seguro de cómo integrarlos o implementarlos. ¿Alguna solución propuesta?

Gracias!

+0

¿Su aplicación está interna o alojada en la nube? – bloudraak

+0

alojado en la nube. – Sabby62

+0

La pregunta es demasiado abierta. Parece que no has leído mucho sobre ADFS; de lo contrario, no harías preguntas como "cómo implementarlo". Acaba de descargar ADFS, instalarlo cerca de Active Directory, exponerlo y hacer que su aplicación web tenga en cuenta la federación. Hay buenos libros sobre eso, como el e-book gratuito de MS, "Identidad basada en reclamos y control de acceso". Por favor, lea el libro electrónico, haga preguntas más específicas y obtendrá sus respuestas. –

Respuesta

0

Más detalles necesarios según los comentarios.

Hay una buena fuente aquí: AD FS 2.0 Content Map.

El "e-book" es here.

Me imagino un escenario en el que enlazará su aplicación en la nube a Azure ACS, sus clientes instalarán ADFS sobre su AD y federarán sus ADFS con ACS. Eso le daría la funcionalidad que necesita.

Update después de comentario:

AD FS sólo pueden autenticarse en AD. No puede autenticarse contra un DB. Puede obtener atributos de un DB de SQL Server que luego puede transformar en reclamos, es decir, puede usar una base de datos SQL para la autorización.

Si desea autenticarse en una base de datos SQL, puede elegir entre dos opciones.

  1. Crear una costumbre STS
  2. utilizar un STS "costumbre" existentes como Identity Server que permite esta funcionalidad.
+0

Se necesita más información sobre lo siguiente: Actualmente, el usuario ha iniciado sesión en la aplicación web al verificar las credenciales almacenadas en la base de datos. ¿Es posible implementar algo como una cuenta de usuario de Active Directory asigna a una determinada cuenta en la base de datos y tiene los mismos roles y funciones que en la base de datos. – Sabby62

1

Su pregunta no establece explícitamente si usted está limitado a usar ADFS para implementar SSO. ADFS es ciertamente una forma de hacer esto. Es posible que desee ver OpenID-LDAP (estaba en www.openid-ldap.org, pero el proyecto ahora está desaparecido) y otros identity providers como alternativas para implementar SSO.

Una alternativa es implementar un proveedor de OpenID que use autenticación de Windows integrada. Pueden instalarlo en su DMZ exponiéndolo a Internet, en lugar de ADFS. Puede permitir el inicio de sesión único desde Internet Explorer y Chrome.

La implementación de un proveedor de OpenID no es una cuestión trivial. Tendrás que prestar mucha atención a la seguridad. Fortunally, hay una serie de marcos como DotNetOpenAuth que pueden ayudarle.

Al usar OpenID, su aplicación "en la nube" actuará como una base de datos de OpenID y obtendrá un identificador reclamado entre otros atributos del proveedor de OpenID. Debe almacenar esto en su base de datos para identificar de manera única al usuario. Puede optar por implementar el proveedor de OpenID de modo que también le brinde a la aplicación en la nube la información mínima como dirección de correo electrónico, nombre de la persona, etc.

La ventaja de utilizar OpenID es que su aplicación "en la nube" puede seguir brindando soporte otros proveedores bien conocidos de OpenID como Google y Yahoo sin muchos cambios.

Al final, tendrá que preguntar a sus clientes con qué tecnologías se sienten cómodos. Descubrirá que la falta de confianza (un rasgo comercial) entre las organizaciones suele ser más el desafío que la tecnología.

3

Si desarrolla una aplicación basada en .NET, Microsoft proporciona una biblioteca llamada WIF, que se usa para comunicarse con AD FS de forma cómoda (configuración + pequeñas adaptaciones de código para obtener las notificaciones del mensaje de autenticación proporcionado por el AD FS).

Hay pocos protocolos compatibles con AD FS 2.0 y WIF, para que el SSO funcione, los más comunes son (afaik) SAML 2.0 y WS-Federation. Ambos se basan en mensajes XML, pero no es necesario que conozca los detalles si usa WIF.

Para WS - Federation, la biblioteca WIF proporciona un complemento para Visual Studio, que le permite configurar su sitio como parte dependiente con su AD FS.

PUEDE utilizar las credenciales dentro de su base de datos para identificar a los usuarios, en realidad puede customize AD FS toda la página de inicio de sesión y eventos de autenticación. Sin embargo, la instalación básica requiere que cada usuario se defina dentro de su Active Directory. También puede usar su base de datos como una tienda de reclamaciones (otra base de datos que AD FS utilizará para proporcionar a las aplicaciones confiables información sobre los usuarios). Tenga en cuenta que si tiene la intención de utilizar un anuncio publicitario detrás de AD FS, su servicio AD FS debe poder acceder y LDAP consultarlo, lo cual no estoy seguro de que funcione para usted, si sus usuarios inician sesión en su dominio local que el AD FS no está familiarizado con.


SI no es necesario que admita los protocolos estándar de SSO de la industria (SAML 2.0 que he mencionado), no estoy seguro de que la implementación de AD FS sea una buena solución. Te obliga a trabajar de cierta manera, lo cual no siempre es tan cómodo.

+0

El enlace WIF está muerto. Camino a ir a Microsoft. – Maslow

+0

@Maslow Se corrigió el enlace. – techvice

Cuestiones relacionadas