Ago. 2025 – dic. 2025
ThemePark@UCR
Un portal Web VR construido por todo el curso. Lideré a mi equipo como Scrum Master y construí el inicio de sesión y el sistema de permisos de toda la plataforma.
Mi rolScrum Master del equipo “Ingeniería del Pozole”; responsable de autenticación y autorización
ThemePark@UCR es un portal Web VR para explorar la universidad mediante recorridos inmersivos, construido por varios equipos del proyecto integrador de Ingeniería de Software y Bases de Datos. Además de ser Scrum Master de mi equipo, formé parte de los comités de Gestión del Proyecto y Gitflow y fui responsable de la autenticación y autorización de toda la plataforma.
Inicio de sesión con Microsoft Entra ID
- Implementé el inicio de sesión y el registro con Entra ID en el frontend Blazor y en la API, creando a cada usuario a partir de los claims de su token la primera vez que se valida y enlazándolo con su identificador de Entra.
- Las cuentas nuevas reciben automáticamente el rol de invitado. Los tokens viajan como encabezado Bearer, hay un endpoint para validarlos y Swagger funciona independientemente de si Entra está configurado.
Un sistema de permisos para toda la plataforma
- Los permisos se registran como políticas de autorización, y un servicio inyecta los permisos de cada usuario en su identidad como claims al iniciar sesión.
- Protegí todos los endpoints del backend (dejando anónimos solo los necesarios), sembré los roles y permisos por defecto y expuse al frontend los permisos del usuario actual.
- En el frontend: todas las páginas están protegidas, y un componente PermissionGuard oculta la navegación y las acciones de agregar, editar y eliminar edificios, espacios de aprendizaje y componentes interactivos según los permisos del usuario.
- Pantallas de gestión de usuarios (agregar usuarios, asignar roles) con validación al salir del campo y mensajes de error claros.
Calidad y entrega
- Pruebas unitarias de la autorización de endpoints y de los servicios de usuarios y permisos en las capas del backend y del frontend.
- Moví la configuración de OpenAPI a la capa de presentación, mantuve sincronizado el cliente generado con Kiota, marqué los proyectos de prueba para SonarQube y preparé la configuración de despliegue con URLs de la API por ambiente.
- Escribí partes de la documentación del proyecto, incluida la estructura de equipos y los requerimientos de datos de los usuarios.
Hecho con
C# / .NETBlazorMicrosoft Entra IDSQL ServerKiotaxUnitSonarQube
Siguiente proyecto
Distributed ASCII-Art Network →



