Kerberos Protocol Authentication with Spring Boot(#kerberos-protocol-authentication-with-spring-boot)
Kerberos Protocol Authentication with Spring Boot and React
Demo.Kerberos.Protocol.mp4
This project is a comprehensive implementation of the Kerberos protocol for authentication, developed using Spring Boot for the backend and React for the frontend. It includes a custom-built Authentication Server (AS), Ticket Granting Server (TGS), and a dummy service to demonstrate the protocol. The React app serves as a test interface to verify the functionality of the authentication system.
The application simulates a Kerberos-based authentication system. Users can authenticate through the React app, which interacts with the Spring Boot backend to request and receive authentication tickets, demonstrating secure communication and identity verification.
- Spring Boot: Chosen for its robust and scalable framework, making it easier to develop the authentication servers and services.
- React: Selected for its powerful, efficient, and flexible JavaScript library for building user interfaces, providing a responsive test application.
- Kerberos Protocol: Implemented to showcase a well-established, secure method for mutual authentication in distributed systems.
- Challenges: Implementing the Kerberos protocol from scratch, ensuring secure ticket exchanges, and managing session states.
- Future Features: Enhancing security features, adding more services for authentication, and integrating with a real-world database.
- Java Development Kit (JDK) 11 or later
- Node.js and npm (for the React app)
- Maven (for building the Spring Boot application)
- Clone the repository:
git clone "https://github.com/DevMahdiTR/kerbospringreact-implementation.git"
- Navigate to the project directory:
cd kerbospringreact-implementation
- Build the project using Maven:
mvn clean install
- Configure The Database name and password in all 3 Backends [resources -> application.yml]:
datasource: url: jdbc:postgresql://localhost:5432/database-name username: database-username password: database-password driver-class-name: org.postgresql.Driver
- Navigate to the React app directory:
cd kerbospringreact-implementation\my-app
- Install the dependencies:
npm install
- Start the React application:
npm start
- Open your browser and navigate to http://localhost:3000 to access the React app.
- Register a new user or log in with existing credentials.
- The React app will request authentication tickets from the Authentication Server (AS).
- The AS validates the user credentials and issues a Ticket Granting Ticket (TGT).
- The React app uses the TGT to request service tickets from the Ticket Granting Server (TGS).
- The TGS issues service tickets which the app uses to access the dummy service.
- Login Page:
- Authentication Flow Diagram