Estoy involucrado en el desarrollo de una aplicación SaaS. Nosotros alojamos la aplicación para diferentes clientes. Un cliente es una empresa. Cada cliente obtiene acceso a su instancia alojada de la aplicación a través de una URL https://example.com/customername
.
Ya tenemos una instancia en la que un cliente probó con otras compañías (potencialmente competidores) para el customername
para ver si otra persona también está usando nuestro producto. Personalmente, no creo que esto sea un gran problema, pero reconozco que puede ser tanto un problema para algunos clientes potenciales como un problema de seguridad, así que estoy interesado en las estrategias de mitigación.
Las posibles soluciones hasta ahora son
- Agregue una cadena indiscutible al
customername
:https://example.com/acmeinc-8a4f
. Creo que esto a) se ve feo (y sí, ya tenemos un cliente que insistió en una ortografía particular en la URL por razones de CI) yb) absolutamente requiere que todos los usuarios tengan un marcador o recuerden una cosa más irrelevante. li> - Solo muestre un formulario de inicio de sesión independientemente de lo que se use como
customername
y simplemente rechace cualquier combinación de usuario / contraseña. Esto parece prometedor al principio, pero ya estamos implementando diferentes mecanismos de inicio de sesión, incluido el inicio de sesión sin contraseña a través de SSO para que los clientes obtengan diferentes pantallas de inicio de sesión. Esto también evita una versión de una pantalla de inicio de sesión donde el nombre del cliente se convierte en parte del formulario de usuario / contraseña. Estoy seguro de que tarde o temprano la pantalla de inicio de sesión también tendrá que coincidir con el IC de un cliente.
¿Es incluso posible mitigar este problema de forma fácil para el usuario?