2009-06-23 17 views
5

Tengo un sitio web con los usuarios y sus datos en consecuencia.¿Cuál es la forma más segura de implementar Web Services/API?

¿Cuál es la forma más segura de implementar servicios web/API de manera que las credenciales de inicio de sesión de los usuarios y, a su vez, los datos sean seguros? oAuth no es realmente una opción, porque el uso no necesariamente estará en otras aplicaciones web.

Mi preocupación es que tener el nombre de usuario y la contraseña como entrada es peligroso para ser transmitido claramente, y un token también podría ser robado y reutilizado maliciosamente.

¿Necesito encontrar mi propio método de cifrado y descifrado de datos, o hay una práctica común ya en uso?

El punto es que es lo más abierto posible para cualquier persona en el mundo, pero seguro por definición, no obstante. La documentación estará disponible para que todos la utilicen.

Respuesta

4

Siempre hay el estándar WS-Security:

WS-Security (Wikipedia)

.NET tiene sus implementaciones en .NET 1.1 y .NET 2.0 a través de las mejoras del servicio web de Microsoft:

WSE 2.0 (.NET 1.1)
WSE 3.0 (.NET 2.0)

Proporciona varios métodos para encriptar el sobre SOAP antes de enviarlo por el cable, con seguridad t Transmitir los datos dentro.

+0

me ganaste ... +1 ;-) – fretje

3

¿Qué ocurre con el uso de una conexión SSL?

3

No escriba su propia encriptación.

¿Qué pasa con un poco de SSL? Con los clientes WSDL/SOAP "normales" (asmx), no es raro que use un encabezado SOAP para esto (a través de SSL).

Con WCF, esto se formaliza en TransportWithMessageCredential (solo búsqueda). Por supuesto, puede usar certificados, federación, kerberos, etc.

Además de la seguridad del transporte (SSL), WCF también es compatible con seguridad basada en mensajes, con la función adicional de que puede encriptar solo la seguridad encabezados Personalmente, me gusta mantenerlo simple, con TransportWithMessageCredential (es decir, SSL).

0

¿Por qué no utiliza la norma WS-Security para eso?

Editar: Solo quiero agregar a la respuesta de Justin, que también se implementa en WCF.

0

Cualquier método de autenticación que se comparta con un tercero está abierto a la explotación, debe dibujar una línea en algún lugar. Usar los servicios HTTP/S y WS- * para asegurar la conexión es probablemente su mejor enfoque. Si el servicio solo será accedido por sistemas conocidos con direcciones IP fijas, entonces use el cortafuegos para asegurar aún más su caja contra interferencias externas.

+0

Abrir con la documentación que lo respalda. –

Cuestiones relacionadas