Open skgithubtest[bot] opened 1 month ago
# ToDo Application
## Overview
The ToDo Application is a secure task management tool designed for organizational use. Leveraging Azure Active Directory (Azure AD), the application provides seamless single sign-on (SSO) capabilities, ensuring users can manage their tasks efficiently without the hassle of multiple credentials. Built with C#, this application adheres to modern architectural guidelines and security best practices.
## Main Features
- **Single Sign-On (SSO)**: Users authenticate using their work or school accounts from Azure AD. This simplifies access to the application and integrates with various SaaS applications like Google Apps and Salesforce.
- **Access Control**: Access to the application is controlled via Azure AD. Only users with permission, either individually or through group memberships, can access the ToDo Application.
- **Conditional Access Policies**: The application supports Azure AD Conditional Access, allowing IT administrators to enforce security measures based on the user's environment, location, and device compliance before granting access.
- **Secure Authentication**: The application is configured to block legacy authentication protocols to enhance security against password spray attacks.
- **Task Management**: Users can create, edit, and delete tasks in a user-friendly interface, making task management straightforward and efficient.
- **Multi-Device Access**: The application is designed for use across various devices and platforms, ensuring users can access their tasks anytime, anywhere.
- **Security Scanning**: The build process incorporates tools such as GitHub Advanced Security and OWASP source code analysis to scan for vulnerabilities and ensure code quality.
## Architecture
### Code Organization
- **Frontend**: Built using C# with ASP.NET Core, the frontend handles user interactions and displays task management functionalities.
- **Backend**: The backend services are structured using RESTful principles, providing endpoints for task management and user authentication.
- **Database**: Task data is stored securely in an Azure SQL Database, providing relational data storage and retrieval capabilities.
- **Authentication & Authorization**: Utilizes Azure AD as a SAML-based identity provider to manage user access and permissions efficiently.
### Security Practices
- **Dynamic Application Security Testing (DAST)**: Conducts tests while the application is in use to identify vulnerabilities in real-time.
- **Static Application Security Testing (SAST)**: Scans source code for vulnerabilities based on design and implementation.
- **Dependency Scanning**: All third-party libraries and frameworks are scanned for vulnerabilities during the continuous integration (CI) process.
- **Container Security**: If the application is containerized, it includes container-aware scanning tools to detect risks before and during use.
## Running the Application
1. **Prerequisites**:
- .NET SDK
- Azure AD account for authentication
- Azure SQL Database set up for data storage
2. **Clone the Repository**:
```bash
git clone https://github.com/your-repo/todo-application.git
cd todo-application
Build the Application:
dotnet build
Run the Application:
dotnet run
Access the Application:
Navigate to http://localhost:5000
in your web browser to access the ToDo Application.
The ToDo Application not only streamlines task management but also ensures the highest standards of security and compliance through integration with Azure AD and the implementation of best practices in software development. For more information about security practices and technical details, refer to the OWASP guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
Create a ToDo Application using the STUDENT App Catalog group in C#