Estoy creando una API que devuelve datos sobre empresas Múltiples aplicaciones accederán a la API, algunas de estas aplicaciones tendrán acceso a una compañía, otras a múltiples compañías. Cuando se recibe una solicitud de datos, también se envía una ApplicationApiKey. Verifico si el ApiKey tiene acceso a los datos de la empresa. Esto funciona muy bien para las aplicaciones que tienen acceso permitido a una compañía, sin embargo, una ApplicationApiKey puede tener acceso a varias compañías.
Un usuario de Company1 podría iniciar sesión en la aplicación y enviar una solicitud a enlace . El usuario podría actualizar el parámetro del ticket a un número diferente. Este podría ser el número de boleto de una compañía diferente a la que la Aplicación está autorizada para acceder, pero el usuario que inició sesión no lo está. ¿Cómo evito que los usuarios modifiquen esta URL a un número de ticket de una compañía diferente?
Estos son mis pensamientos hasta ahora:
- Es suficiente tener acceso a mi API solo a través de SSL
- Pida al desarrollador de la aplicación que cifre los parámetros. enlace , esto parece factible para las solicitudes GET, pero ¿qué ocurre con los POST?
- No es mi problema, depende del desarrollador de la aplicación (hasta que suceda algo cuando sucederá)
- Todo el proceso es incorrecto, debería ser una clave de API por empresa (pero esto no es posible ya que las aplicaciones pueden agregar y eliminar usuarios de diferentes compañías)
Gracias por cualquier respuesta