Skip to content

Full Stack Web App To Manage TOTP Enrolements With Shibboleth IdP

Notifications You must be signed in to change notification settings

gthomas08/TOTP-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TOTP Manager (Shibboleth Integration)

TOTP Manager Users

More screenshots can be found here.

About The Project

This project is part of the Computer Engineering and Informatics Department (CEID) of University of Patras Thesis. It features a platform that an admin can use to manage TOTP enrollements. This project is directly integrated with the Sibboleth IdP V4.2.1+ and its TOTP Plugin. Visit Wiki to integrate TOTP Manager with Shibboleth IdP.

Built With

The project was built with the MERN Stack.

Getting Started

To get a local copy up and running follow these steps.

Prerequisites

  • Node.js
  • npm
  • MongoDB

For more information on how to install Node.js and npm, visit Node.js website.

For more information on how to install MongoDB, visit MongoDB website.

Installation

Development

  1. Setup a local database. More information in MongoDB website.

  2. Clone the repo

    git clone https://github.com/GTS08/TOTP-Manager.git
  3. Change directory to server

  4. Install npm packages

    npm install
  5. Set the environmental variables in .env file

    MONGODB_URI=<MONGODB_URI>
    PORT=3001
    SECRET=<secret_key_for_token>
    ENCRYPTION_KEY=<32_byte_random_string>
    ENCRYPTION_VECTOR=<16_byte_random_string>
  6. Start the server

    npm run dev
  7. Change directory to client

  8. Install npm packages

    npm install
  9. Start react app

    npm start

Usage

Start by creating an admin under Admin Collection in the database with the following structure.

{
  "username": "<adminUsername>",
  "passwordHash": "<passwordHash>"
}

To generate a passwordHash, you can use an online bcrypt generator.

Once an admin is created, visit http://localhost:3000/ to log in with the admin credentials.

Visit Wiki to integrate TOTP Manager with Shibboleth IdP.

Production

  1. wget https://github.com/GTS08/TOTP-Manager/releases/download/release/totp_manager_release.tar.gz
    tar -xzf totp_manager_release.tar.gz
    cd totp_manager_release
  2. Set the environmental variables in .env file

    MONGODB_URI=<MONGODB_URI>
    PORT=3001
    SECRET=<secret_key_for_token>
    ENCRYPTION_KEY=<32_byte_random_string>
    ENCRYPTION_VECTOR=<16_byte_random_string>
  3. Install npm packages

    npm install
  4. Start the server

    npm start