Capítulo 6: Mi metodología de control de permisos: control de permisos distribuidos
Esquema del artículo
1. Sistema de permisos de roles distribuidos
1. Control de permisos distribuido con separación de front-end y back-end
2. Control de permisos distribuidos multiterminal front-end
3. Control de permisos distribuidos de múltiples módulos de back-end
2. Sistema de autoridad de credenciales distribuidas
No importa en qué SAAS o sistema de gestión se encuentre, el diseño del control de permisos es un asunto complejo.
Primero echemos un vistazo al diseño de permisos de WordPress.
Capacidad | Súper administrador | Administrador | Editor | Autor | Contribuyente | Abonado |
crear_sitios | Y | |||||
eliminar_sitios | Y | |||||
administrar_red | Y | |||||
administrar_sitios | Y | |||||
gestionar_usuarios_de_red | Y | |||||
administrar_complementos_de_red | Y | |||||
gestionar_temas_de_red | Y | |||||
administrar_opciones_de_red | Y | |||||
subir_complementos | Y | |||||
subir_temas | Y | |||||
red_actualización | Y | |||||
configuración_red | Y | |||||
Capacidad | Súper administrador | Administrador | Editor | Autor | Contribuyente | Abonado |
activar_plugins | Y | Y (sitio único o habilitado mediante configuración de red) | ||||
crear_usuarios | Y | Y (sitio único) | ||||
eliminar_complementos | Y | Y (sitio único) | ||||
eliminar_temas | Y | Y (sitio único) | ||||
eliminar_usuarios | Y | Y (sitio único) | ||||
editar_archivos | Y | Y (sitio único) | ||||
editar_plugins | Y | Y (sitio único) | ||||
editar_tema_opciones | Y | Y | ||||
editar_temas | Y | Y (sitio único) | ||||
editar_usuarios | Y | Y (sitio único) | ||||
exportar | Y | Y | ||||
importar | Y | Y | ||||
Capacidad | Súper administrador | Administrador | Editor | Autor | Contribuyente | Abonado |
instalar_plugins | Y | Y (sitio único) | ||||
instalar_temas | Y | Y (sitio único) | ||||
lista_usuarios | Y | Y | ||||
administrar_opciones | Y | Y | ||||
promover_usuarios | Y | Y | ||||
eliminar_usuarios | Y | Y | ||||
cambiar_temas | Y | Y | ||||
actualización_core | Y | Y (sitio único) | ||||
complementos de actualización | Y | Y (sitio único) | ||||
temas_actualización | Y | Y (sitio único) | ||||
editar_dashboard | Y | Y | ||||
personalizar | Y | Y | ||||
eliminar_sitio | Y | Y | ||||
Capacidad | Súper administrador | Administrador | Editor | Autor | Contribuyente | Abonado |
comentarios_moderados | Y | Y | Y | |||
Administrar categorías | Y | Y | Y | |||
gestionar_enlaces | Y | Y | Y | |||
editar_otras_publicaciones | Y | Y | Y | |||
editar_páginas | Y | Y | Y | |||
editar_otras_páginas | Y | Y | Y | |||
editar_páginas_publicadas | Y | Y | Y | |||
publicar_páginas | Y | Y | Y | |||
eliminar_páginas | Y | Y | Y | |||
eliminar_otras_páginas | Y | Y | Y | |||
eliminar_páginas_publicadas | Y | Y | Y | |||
eliminar_otras_publicaciones | Y | Y | Y | |||
eliminar_publicaciones_privadas | Y | Y | Y | |||
editar_publicaciones_privadas | Y | Y | Y | |||
leer_publicaciones_privadas | Y | Y | Y | |||
eliminar_páginas_privadas | Y | Y | Y | |||
editar_páginas_privadas | Y | Y | Y | |||
leer_páginas_privadas | Y | Y | Y | |||
sin filtrar_html | Y | Y (sitio único) | Y (sitio único) | |||
sin filtrar_html | Y | Y | Y | |||
Capacidad | Súper administrador | Administrador | Editor | Autor | Contribuyente | Abonado |
editar_publicaciones_publicadas | Y | Y | Y | Y | ||
subir archivos | Y | Y | Y | Y | ||
publicar_publicaciones | Y | Y | Y | Y | ||
eliminar_publicaciones_publicadas | Y | Y | Y | Y | ||
editar_publicaciones | Y | Y | Y | Y | Y | |
eliminar_publicaciones | Y | Y | Y | Y | Y | |
Capacidad | Súper administrador | Administrador | Editor | Autor | Contribuyente | Abonado |
leer | Y | Y | Y | Y | Y | Y |
Según los roles y niveles de usuario, se implementa un sistema de control de autoridad de roles jerárquico.
El sistema de control de permisos de WordPress es un sistema de control de permisos muy clásico, sin embargo, debido a que WordPress es muy "ligero" en términos de usuarios y permisos, se puede decir que el sistema de control de permisos de WordPress es sólo un "esqueleto" completo. Sólo incluso un esqueleto es suficiente para marear a mucha gente.
Entonces, puede imaginar cuán escandalosamente complejo puede ser el control de permisos en esos sistemas grandes y complejos.
He trabajado en muchos productos, cubriendo una amplia gama de áreas. El sistema de control de permisos está involucrado en casi todos los productos, por lo que he acumulado mucha experiencia en esta área.
He optimizado y simplificado varios sistemas de control de permisos en innumerables ocasiones. Finalmente, se resumió un método simple y efectivo. A este método lo llamo: control de permisos distribuidos.
La razón más fundamental por la que el control de permisos es complicado es que el diseño, la distribución y la gestión centralizados de permisos nos obligan a considerar varios roles en diversos escenarios desde una perspectiva "centralizada" de "puedo" y "no puedo".
Sin embargo, si se descentraliza la distribución y gestión de permisos, todo será mucho más sencillo.
1. Sistema de permisos de roles distribuidos
Los sistemas de control de permisos clásicos son sistemas de permisos de roles centralizados.
El sistema de permisos de roles siempre ha sido la corriente principal.
Lo que se presenta aquí es el sistema de permisos de roles distribuidos.
Independientemente de si está centralizado o distribuido, el sistema de permisos de roles tiene una cosa en común: los roles determinan los permisos y quién determina qué capacidades tienen.
El sistema de permisos de roles distribuidos se puede dividir en tres tipos.