2009-02-17 23 views
7

Estamos buscando proteger un grupo de servicios web ASP.Net 2.0 .asmx. El que alojará los servicios web ya está autenticado.
¿Es posible proteger los servicios web mediante la autenticación de formularios? Cuáles son los pros y contras y otras formas posibles de lograr esto. Ciertamente no queremos pasar un nombre de usuario/pwd o token en cada llamada al método web.¿Es posible proteger un servicio web con Autenticación de formularios?

Respuesta

5

Lo que ocurre con la autenticación de formularios es que está diseñada para personas, mientras que un servicio web está diseñado para ser consumido por una aplicación cliente. Si bien es posible hacer la autenticación de esta manera, es la forma incorrecta de pensar.

El nivel de seguridad necesario obviamente depende de la sensibilidad de los datos con los que está trabajando, pero supongo que son al menos algo sensibles (pero menos que las transacciones bancarias). Podrías quizás usar SSL y pasar un nombre de usuario y contraseña como Jle sugirió, mientras escribía esto, o podrías necesitar una clave api como lo hace flickr.

Otra opción más segura es solo pasar el nombre de usuario y la contraseña una vez (y con la seguridad de ssl) y dar un token que sea válido por un período de tiempo. Esto tiene la ventaja de proteger la información de contraseña y evitar la sobrecarga constante de ssl.

Como se mencionó, depende en gran medida de qué tan sensible es la información que está tratando de proteger.

0

Es posible, pero deberá redirigir a los usuarios a una página de inicio de sesión. Otra opción para pasar username/pw es usar el servicio web en ssl. Si encriptas la conexión, la autenticación básica puede usarse sin problemas.

0

Debería poder usar WSE para proteger su servicio mediante la autenticación de formularios, aunque personalmente nunca tuve que hacerlo.

Éstos son algunos de los recursos que utilizan WSE:

a no usar WSE que había necesidad de poner en práctica algo así como algunos de los otros presponders han aludido , aunque no estoy seguro de qué tan confiable sería:

2

WSE está obsoleto. No lo use a menos que no tenga otra opción.

Casi todas las funciones de WSE son implementadas mejor por WCF. Las capacidades restantes, aquellas no implementadas por WCF, son obsoletas por sí mismas (DIME, por ejemplo).

Cuestiones relacionadas