¿Cómo me aseguro de que mi API REST solo responda a las solicitudes generadas por clientes de confianza, en mi caso mis propias aplicaciones móviles? Quiero evitar que las solicitudes no deseadas provengan de otras fuentes. No quiero que los usuarios rellenen una clave de serie o lo que sea, debería suceder entre bambalinas, durante la instalación y sin que sea necesaria la interacción del usuario.
Por lo que sé, HTTPS es solo para validar el servidor con el que se está comunicando, es quien dice que es. Por supuesto, voy a utilizar HTTPS para cifrar los datos.
¿Hay una manera de lograr esto?
Actualización: El usuario puede realizar acciones de solo lectura, que no requieren que el usuario inicie sesión, pero también pueden realizar acciones de escritura, que sí requieren que el usuario inicie sesión (Autenticación mediante token de acceso). En ambos casos, quiero que la API responda a solicitudes provenientes únicamente de aplicaciones móviles de confianza.
La API también se utilizará para registrar una nueva cuenta a través de la aplicación móvil.
Actualización 2: Parece que hay varias respuestas a esto, pero sinceramente no sé cuál marcar como la respuesta. Algunos dicen que se puede hacer, otros dicen que no se puede hacer.