2010-12-16 9 views
6

Tengo una API, que solo usan las aplicaciones móviles iphone, android y blackberry. No quiero que nadie más use la API o vea la API de SOAP.¿Cómo hacer que una API de servicio web público sea privada?

¿Cómo puedo hacer esto?

Nota: Si restrinjo la IP y hago que el servicio web sea privado, la aplicación móvil dejará de funcionar. Si la hago pública, cualquiera puede ver el servicio web.

Respuesta

9

Como punto de partida, puede deshabilitar la publicación WSDL. De esta forma, solo los clientes que ya hayan generado un proxy podrán descubrir y usar el servicio web. Por supuesto, el servicio aún sería público y cualquiera que sepa cómo formatear correctamente una solicitud SOAP podría llamarlo. Un segundo paso consistiría en introducir seguridad (claves privadas, HTTPS, certificados de cliente, etc.) para que solo los clientes confiables puedan consumir el servicio.

0

Cualquiera puede olfatear el tráfico y parodiar casi cualquier aspecto del mismo. Entonces no puedes bloquear eso, aunque encriptar el tráfico te ayudará un poco. Lo que podría do es restringir el acceso a los usuarios registrados, pero puede que no funcione bien si su aplicación permite el uso no registrado.

0

Es posible que se ejecute a través de HTTPS y requiera certificados de cliente. Depende de cuán bien las plataformas móviles involucradas admitan certificados de clientes personalizados. Por supuesto, si el certificado del cliente se copia desde la aplicación, entonces está tan abierto ...

3

La primera sugerencia es correcta, detenga la publicación de WSDL, si usa esto en absoluto.

Pero básicamente tiene que implementar el mecanismo de autenticación/autorización para su aplicación. No debe ser la conexión método, que

  1. credenciales de verificación - usuario/contraseña
  2. verificación de la configuración del agente de petición HTTP - si se trata de dispositivos móviles

si dos requisitos coinciden con usted autoriza a esta solicitud (por galletas por ejemplo), o el token de autorización de devolución, que se ingresará para todos los métodos API. Si token está bien, el método API funciona ... no - devuelve 404, por ejemplo.

0

Deshabilite WSDL, use HTTPS en combinación con encabezados SOAP para verificar las credenciales (envíe, por ejemplo, nombre de usuario y contraseñas hash). Tenga en cuenta que al usar HTTPS, estos datos se cifran, incluido el encabezado SOAP. Si se registran suficientes solicitudes incorrectas desde una determinada IP, puede poner en una lista negra esa dirección IP por un tiempo.

Cuestiones relacionadas