¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Solo el acceso que hace falta

Después de esta lección: Puedo dar a cada persona solo el acceso que necesita.

Lección de 45 minSin comandos

La recepcionista que veía historiales

En una clínica dental de Bilbao, todo el personal entra con la misma cuenta de administrador. Es cómodo: nadie pide permisos.

Un día, alguien de recepción abre por curiosidad el historial médico de un vecino. La clínica tiene que dar explicaciones a sus pacientes.

El problema no fue la persona. Fue que el sistema le dejaba ver todo.

Al final de esta lección

Nota

Puedo dar a cada persona solo el acceso que necesita.

Palabras clave

PalabraQué significaEjemplo
Autenticacióncomprobar quién eres
Autorizacióndecidir qué puedes hacer
Permisouna acción que se te deja hacerver_citas
Rolun grupo de permisos para un puesto
Mínimo privilegiosolo los permisos que el trabajo necesita

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Entrar y poder hacer algo son dos preguntas

La autenticación responde a «¿quién eres?». Es la contraseña, el código del móvil o la huella.

La autorización responde a «¿qué puedes hacer?». Llega después, en cada acción.

Que una persona haya entrado no significa que pueda hacerlo todo. El sistema tiene que preguntar otra vez cada vez que se pide algo.

Un error frecuente

Advertencia

Mucha gente cree que esconder un botón basta para quitar un permiso. Quien conozca la dirección puede pedir la acción sin pulsar nada. El servidor debe comprobar el permiso en cada petición, aunque la pantalla no muestre el botón.

Cada uno recibe solo lo que necesita

El mínimo privilegio dice: da a cada persona solo los permisos de su trabajo.

Si una cuenta con pocos permisos cae en malas manos, el daño es pequeño. Si cae una cuenta de administrador, el daño es total.

Para no dar permisos uno a uno, se usan roles. Un rol agrupa los permisos de un puesto. Cada persona recibe un rol.

Ejemplo: los roles de la clínica

RolVer citasVer historialEditar historialFacturas
RecepciónSíNoNoNo
DentistaSíSíSíNo
ContabilidadNoNoNoSí

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Prueba: preguntar un permiso

Código: python
# Qué puede hacer cada rol en la clínica
permissions = {
    "recepcion": ["ver_citas", "crear_citas"],
    "dentista": ["ver_citas", "ver_historial", "editar_historial"],
    "contabilidad": ["ver_facturas", "crear_facturas"],
}

# Qué rol tiene cada persona
staff = {"carmen": "recepcion", "javier": "dentista", "elena": "contabilidad"}

person = "carmen"
action = "ver_historial"
role = staff[person]
if action in permissions[role]:
    print(person, "puede", action)
else:
    print(person, "NO puede", action)

# Prueba con javier y luego con elena.

En un puesto real

Consejo

Cuando alguien cambia de puesto o se va, hay que quitarle los permisos ese mismo día. Revisar las cuentas cada pocos meses es una tarea habitual en soporte y sistemas.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.