Bachelorarbeit, 2020
55 Seiten, Note: 1.7
1 Introduction
2 Technologies
2.1 Multitier Architecture
2.1.1 Back-end
2.1.2 Front-end
2.2 Persistence Layer
2.2.1 Novell’s Library for LDAP
2.3 NLog Framework
2.4 Security Layer
2.5 Tools
3 Architecture
3.1 User Activity
3.2 Physical Deployment Model
3.3 Application Structure
3.3.1 MVC
3.3.2 Programming Model
3.3.3 Request Lifecycle
3.3.4 Dependency Injection
3.3.5 Improved Service Registration Mechanism
3.4 Data Access
3.4.1 Directory Service
3.4.2 Directory Service compared to DBMS
3.4.3 Authentication and Authorization
3.5 Configurations
4 Implementation
4.1 Hosting Environment
4.2 Error Handling
4.3 Logging
4.4 Identity Framework with LDAP
4.5 Key Storage Mechanism
4.6 Key Monitoring
4.7 Key Upload/Update
4.8 Key Delete
5 Security
5.1 Google reCaptcha v3
5.2 Open-Redirect Attack
6 Conclusion
6.1 Discussion
This thesis addresses the administrative burden associated with managing SSH access for multiple users on shared Linux virtual machines. The primary goal is to design and implement a self-service web portal that allows users to independently upload their public SSH keys, thereby reducing the need for direct manual intervention by system administrators.
3.3.4 Dependency Injection
SSH CI heavily relies on Dependency Injection. ASP.NET Core has built-in support for DI which is a software design pattern used for achieving Inversion of Control (IoC) between classes and their dependencies. It is an imperative technique for building modern, loosely coupled applications. The end applications are more unit-testable, modular, and maintainable as result. In a scenario similar as in fig. 3.7, class A is directly dependent on Class B. This might be a problem when trying to replace B with a different implementation, class A must be modified. In a large project with multiple classes depending on B, the code becomes strewed across the application. This kind of implementation significantly complicates the unit testing. Class B has to be involved in the unit testing of class A which breaks the unit testing principles.
Nevertheless, DI addresses this problem by using an interface to abstract away the dependency implementation as demonstrated with an example from SSH CI, fig. 3.8. Registration of the dependency is done in the service container provided by the framework. In ASP.NET Core they are registered in the application’s "Startup" class, in the “ConfigureServices” method, however, in SSH CI the container is distributed across several “Installer” classes for establishing a more structured service registration mechanism. Therefore, a more maintainable application is achieved. This approach will be discussed in section 3.3.5. As a result, it’s easy to change the implementation that “AccountController” uses without modifying the controller.
1 Introduction: Discusses the motivation for automating SSH key management and the limitations of manual administration in multi-user environments.
2 Technologies: Provides an overview of the technical stack, including ASP.NET Core MVC, LDAP, and NLog, used to build the solution.
3 Architecture: Explains the core system design, including the multitier architecture, the MVC pattern, and the service registration mechanism.
4 Implementation: Details the practical realization of the portal, covering hosting, error handling, LDAP integration, and key management scripts.
5 Security: Analyzes the implementation of security features such as Google reCaptcha v3 and the mitigation of Open-Redirect attacks.
6 Conclusion: Evaluates the completed project, discusses limitations, and suggests potential future improvements.
SSH, Linux, Web Portal, Automation, LDAP, ASP.NET Core, MVC, Dependency Injection, Security, reCaptcha, Public Key Authentication, System Administration, Scalability, Middleware, User Management
The work focuses on designing and implementing an automated self-service portal that allows users to manage their own SSH public keys for accessing shared Linux virtual machines, reducing manual administrative tasks.
Key topics include web application architecture (MVC), dependency injection, identity management via LDAP, automated script execution for key storage, and web security measures.
The objective is to minimize system administrator involvement in the SSH key distribution process by providing a scalable, secure, and user-friendly interface for students to manage their access themselves.
The thesis utilizes a client-server architectural approach, implements an asynchronous programming model for scalability, and employs established design patterns like Dependency Injection and the Options Pattern for clean configuration management.
The main part covers the system architecture, the implementation details—specifically how Identity Framework is integrated with LDAP—and the security layer, detailing how various vulnerabilities are mitigated.
Key terms include SSH, Automation, LDAP, ASP.NET Core, MVC, Dependency Injection, and Security.
The system uses LDAP to authenticate users and verifies their enrollment in specific courses before granting them access to the portal or allowing them to manage their SSH keys.
reCaptcha v3 was chosen because it is transparent to the user, monitoring interactions in the background and assigning risk scores to requests, which effectively prevents bot-driven brute-force attacks.
Maintainability is achieved through a modular architecture where services are registered using distributed installer classes and dependency injection, allowing for easy updates and OS-independent migration.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

