A través de la adquisición tenemos una serie de productos que requieren autenticación y autorización. Los productos incluyen sitios web y aplicaciones del lado del cliente, las aplicaciones del lado del cliente usan algunos servicios web. Somos una tienda .Net y los servidores ejecutarán Server 2008, ¿los clientes ejecutarán XP SP? y después.¿Es una buena idea usar Kerberos para autenticarse en sitios web y servicios web?
Los usuarios de los productos que no son parte de nuestra organización y van desde usuarios individuales con un PC independiente a los usuarios de organizaciones que ejecuta Active Directory, etc.
Actualmente no hay autenticación o identidad común tienda y estamos buscando a remediar eso. Nuestros objetivos son:
- Un único nombre de usuario y contraseña (o certificado) en todos los productos.
- Lo ideal sería un inicio de sesión único (fácil si estamos lanzando un sitio web desde una aplicación cliente, presumiblemente menos si un usuario inicia sesión en un sitio web primero y luego inicia la aplicación del lado del cliente).
- Además de lo habitual; robusto, escalable ...
Al igual que la mayoría de las empresas, tenemos recursos limitados y un calendario apretado.
Una ruta sugerida para la autenticación es Kerberos, que es probablemente la ruta ideal para que una aplicación cliente se autentique en un servicio web, pero me complace utilizarlo en un sitio web donde el usuario envíe un nombre de usuario y contraseña y el Servidor web sería responsable de la emisión de boletos (luego, almacenar el ticket en una cookie?). Siento que podemos estar mejor con una única tienda de identidades y nuestro propio servicio de autenticación que toma un nombre de usuario y una contraseña, se compara con un hash ordenado y luego emite un token de seguridad personalizado basado en el tiempo. Tal vez usar SqlMembershipProvider?
Gracias a todos los que han leído hasta aquí. ¿Es Kerberos la mejor opción para este escenario o debería buscar en otro lado? Si no es una buena opción, ¿por qué no?
También estamos buscando a AD LDS para la autorización, pero creo que este post es el tiempo suficiente ya ...
Si quiere ir al extremo, puede implementar SSL bidireccional y emitir certs privados a todos sus usuarios. Podría eliminar la necesidad de que los usuarios tengan la autenticación de nombre/pwd (su navegador simplemente entregaría sus credenciales al servidor) y este es el método más seguro posible. – Cuga
Me gustan tanto OpenID como certs, pero supongo que si fuéramos OpenID, querríamos tener nuestro propio servidor OpenID y no creo que tengamos el recurso/tiempo/presupuesto para hacerlo. Lo mismo se aplica a la emisión de nuestros propios certs. Hay un proveedor de certificados en nuestra industria que emite certificados sin costo para el usuario y conlleva responsabilidad por la autenticación inicial, etc. pero, cuando miramos por última vez, el costo de autenticar los certificados de los usuarios con ellos sopló el caso comercial para usar ellos. –
De cualquier forma, el problema que tengo en este momento es que la primera opción parece ser Kerberos, con lo que no me siento cómodo en un sitio web. Sin embargo, no puedo reunir ningún argumento en contra de usarlo de otra manera que no obtendremos todos los beneficios de Kerberos y no "huele" bien para la autenticación del sitio web. Ninguno de los cuales parece buenos argumentos. Es posible que Kerberos sea la solución correcta y me siento incómodo debido a mi falta de conocimiento. –