Sobre este proyecto
it-programming / web-development
Abierto
Se requiere el desarrollo de un portal web seguro y multi-tenant diseñado para Windows Server/IIS. Cada cliente debe poder iniciar sesión y acceder exclusivamente a sus propios reportes (archivos html) y exportaciones de datos csv provenientes de microsoft 365 sharepoint y onedrive. El aislamiento estricto de datos entre clientes es el requisito más crítico del proyecto.
El sistema de autenticación debe soportar dos métodos:
Autenticación con Microsoft Entra ID:
- Implementación de App Registration multi-tenant utilizando OpenID Connect y el flujo de código de autorización con PKCE.
- La aplicación debe autenticarse ante Entra ID mediante un certificado, evitando el uso de un client secret.
- El cierre de sesión debe finalizar tanto la sesión del portal como la sesión de Entra ID, y las cabeceras no-cache deben asegurar que el botón 'Atrás' del navegador no muestre páginas protegidas después del logout.
Autenticación con cuentas locales:
- Para clientes que no utilicen Entra id, se deben implementar cuentas locales con hash seguro de contraseñas, autenticación multifactor (mfa), bloqueo de cuenta y funcionalidad de restablecimiento de contraseña.
- Cada cuenta local debe estar asociada de forma exclusiva a un único cliente.
Autorización:
- Los grupos de seguridad de Entra ID (group claims) o los roles de aplicación (app roles) determinarán qué usuarios de cada cliente tienen acceso al portal.
- Se requiere un modelo equivalente de roles y permisos para las cuentas locales, almacenado en la base de datos.
- Cada solicitud al portal debe determinar el cliente a partir de la identidad validada, sin depender de identificadores de cliente en la URL, query string o formularios.
Base de datos:
- Se utilizará SQL Server (Express, Standard o Azure SQL) para el almacenamiento de datos.
- La base de datos debe manejar la importación de archivos CSV exportados desde Microsoft (aproximadamente 60 columnas y más de 2.000 filas por archivo), asociando cada fila a su cliente correspondiente.
Front-end:
- Desarrollo de una página de inicio de sesión y un dashboard de cliente que muestre sus reportes como tarjetas.
Criterios de aceptación: Todos los puntos mencionados serán probados rigurosamente para asegurar el cumplimiento de los requisitos.
Categoría Programación y Tecnología
Subcategoría Programación Web
¿Cuál es el alcance del proyecto? Crear un nuevo sitio personalizado
Plazo de Entrega: No definido
Habilidades necesarias