¿Cómo me aseguro de que mi API REST solo responda a solicitudes generadas por clientes confiables, en mi caso, mis propias aplicaciones móviles? Quiero evitar solicitudes no deseadas procedentes de otras fuentes. No quiero que los usuarios completen una clave de serie o lo que sea, debería suceder detrás de escena, después de la instalación y sin necesidad de interacción del usuario.
Hasta donde sé, HTTPS es solo para validar que el servidor con el que se está comunicando es quién dice que es. Por supuesto, voy a usar HTTPS para cifrar los datos.
¿Hay alguna 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 requieren que el usuario inicie sesión (Autenticación por token de acceso). En ambos casos, quiero que la API responda a las solicitudes que provienen solo de aplicaciones móviles confiables.
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 honestamente no sé cuál marcar como respuesta. Algunos dicen que se puede hacer, otros dicen que no.