En mi aplicación web, los usuarios se asignan a grupos y a los grupos se les otorgan permisos sobre los objetos. La aplicación expone algunos objetos a usuarios públicos no autenticados (es decir, personas que visitan el sitio web de manera informal).
He pensado en tener un atributo de objeto "visible para el público" que otorgue acceso a los usuarios no autenticados.
También he pensado en crear un grupo llamado Público y otorgarle permisos a ese grupo como a cualquier otro grupo, y luego tratar al usuario no autenticado como un usuario "ficticio" que es miembro de ese grupo.
Este último parece más simple desde la perspectiva de la interfaz (API y UI) para administrar permisos. Pero el concepto de grupo público es especial parece un ligero olor a diseño. ¿Me estoy perdiendo algún principio de seguridad que haría esto indeseable?