Git Product home page Git Product logo

saml-demo-app's Introduction

SAML Demo App

This project demonstrates a simple application with SAML authentication and intentionally introduced vulnerabilities for educational purposes.

Table of Contents

Prerequisites

  • Node.js and npm: Install from Node.js.
  • OpenSSL: Install from OpenSSL for Windows or use the package manager for MacOS/Linux.
  • saml-idp package: Install globally using npm.
npm install -g saml-idp

Installation

  1. Clone the repository:

    git clone https://github.com/Dyst0rti0n/saml-demo-app.git
    cd saml-demo-app
  2. Install dependencies:

    npm install

Generating SAML Certificates

  1. Generate the Service Provider (SP) certificates:

    openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout private-key.pem -out certificate.pem
  2. Generate the Identity Provider (IdP) certificates:

    openssl req -newkey rsa:2048 -new -nodes -x509 -days 365 -keyout idp-private-key.pem -out idp-public-cert.pem
    • Fill in the required information for the certificates with random nonsense (Country, State, etc.).

Running the Application

  1. Start the Identity Provider (IdP):

    saml-idp --acsUrl http://localhost:3000/assert --audience http://localhost:3000/metadata.xml --key idp-private-key.pem --cert idp-public-cert.pem
  2. Start the Service Provider (SP) Application:

    node app.js
  3. Access the application: Open your web browser and navigate to http://localhost:3000.

Project Structure

This is how it should look given you've created the certificates correctly.

saml-demo-app/
├── app.js
├── package.json
├── private-key.pem
├── certificate.pem
├── idp-private-key.pem
├── idp-public-cert.pem
├── views/
│   ├── index.ejs
│   ├── welcome.ejs
└── README.md

Contact

For any questions or issues, please contact Dyst0rti0n.

saml-demo-app's People

Contributors

dyst0rti0n avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.