Un empleado bancario no puede aumentar por sí mismo el límite de transferencias para su propia cuenta
Hay algo que me pareció bastante interesante cuando hice trámites en el banco.
Un empleado puede procesar transacciones para clientes todo el día.
Se pueden verificar los documentos.
Se pueden aprobar varios pasos en el proceso.
Pero si la cuenta de ellos mismos necesita aumentar el límite de transferencias, no pueden modificarlo por sí mismos.
Eso debe pasar por otra persona.
Al principio me pareció bastante incómodo.
Si el sistema ya sabe que esa persona es un empleado del banco, ¿por qué no permitirlo directamente?
Pensándolo después, quizá lo que el banco está protegiendo no es un límite.
Están protegiendo la frontera entre quien ejecuta y quien escribe la ley para la ejecución.
Eso me hace pensar bastante al leer sobre cómo @NewtonProtocol construye autorización.
Lo que me fijé no es si un agente tiene permiso para realizar una acción.
Porque es una pregunta que aparece antes.
¿Quién decide qué se permite?
Esa es una diferencia enorme.
En muchos sistemas, solemos dedicar mucho tiempo a revisar al ejecutor.
¿La acción es válida?
¿El permiso es correcto?
¿Está la ejecución dentro del límite?
Pero parece que Newton también le interesa una capa más profunda.
¿Quién tiene derecho a cambiar esos límites?
Si el ejecutor también es alguien que puede modificar la política que lo controla, entonces cada verificación posterior se vuelve muy frágil.
En ese momento, el problema ya no está en la ejecución.
El problema está en que el jugador también puede cambiar por sí mismo las reglas del juego.
Esa es la razón por la que veo que separar al que escribe la política del que la ejecuta no es solo una opción sobre delegación de permisos.
Es una decisión de arquitectura.
Una decisión para mantener la política con sentido incluso cuando la ejecución ocurre completamente de forma automática.
Autocontradicción.
Pero separar los permisos también siempre tiene un costo.
Volvamos al banco.
A veces, el cliente necesita aumentar el límite con mucha urgencia.
El personal sabe que el expediente está completo.
Saber que la transacción es totalmente válida.
Pero aun así tienen que esperar a que alguien más confirme, porque el sistema no les permite modificar sus propios límites.
Esa experiencia seguramente es más lenta.
Incluso a veces hace que los usuarios sientan que el proceso es demasiado rígido.
Pero si se elimina esa frontera para que todo sea más rápido, entonces todo el mecanismo de control pierde su sentido.
El ejecutor ya no está limitado por la política.
Pueden cambiar la política primero y luego ejecutar la acción.
En ese momento, lo que se rompe no es una transacción.
Sino la confianza en el propio sistema.
Lo que quiero ver más claro desde @NewtonProtocol no es cuántos tipos de política hay.
Sino cómo el sistema mantiene la distancia entre quien define la política y quien solo está autorizado a actuar dentro de esa política.
Para mí, una capa de autorización solo es realmente confiable cuando quien tiene el poder de ejecutar no tiene también el poder de reescribir la ley para justificar precisamente su propia acción.
Si Newton Protocol mantiene esa frontera de forma clara y transparente, entonces su valor no estaría en que el sistema revise más.
Que está en que nadie puede cambiar en secreto las leyes y luego beneficiarse de ese mismo cambio por sí mismo.

