@mashroom/mashroom-security-provider-simple

2.6.0 • Public • Published

Mashroom Security Simple Provider

Plugin for Mashroom Server, a Microfrontend Integration Platform.

This plugin adds a simple, JSON file based security provider.

Usage

If node_modules/@mashroom is configured as plugin path just add @mashroom/mashroom-security-provider-simple as dependency.

To activate this provider configure the Mashroom Security plugin like this:

{
    "plugins": {
        "Mashroom Security Services": {
            "provider": "Mashroom Security Simple Provider"
        }
    }
}

And configure this plugin like this in the Mashroom config file:

{
  "plugins": {
        "Mashroom Security Simple Provider": {
            "users": "./users.json",
            "loginPage": "/login",
            "authenticationTimeoutSec": 1200
        }
    }
}
  • users: The path to the JSON file with user and role definitions (Default: ./users.json)
  • loginPage: The path to redirect to if a restricted resource is requested but the user not logged in yet (Default: /login)
  • authenticationTimeoutSec: The inactivity time after that the authentication expires. Since this plugin uses the session to store make sure the session cookie.maxAge is greater than this value (Default: 1200)

The content of the JSON file might look like this.

{
   "$schema": "https://www.mashroom-server.com/schemas/mashroom-security-simple-provider-users.json",
   "users": [
       {
           "username": "admin",
           "displayName": "Administrator",
           "email": "xxxxx@xxxx.com",
           "pictureUrl": "xxxx",
           "passwordHash": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
           "extraData": {
               "firstName": "John",
               "lastName": "Do"
           },
           "roles": [
               "Administrator"
           ],
           "secrets": {
               "token": "xxxxxxx"
           }
       },
       {
           "username": "john",
           "displayName": "John Do",
           "passwordHash": "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a",
           "roles": [
               "User",
               "PowerUser"
           ]
       }
   ]
}

The passwordHash is the SHA256 hash of the password. displayName, email and pictureUrl are optional. extraData will be mapped to user.extraData and secrets will be mapped to user.secrets.

Dependencies (1)

Dev Dependencies (4)

Package Sidebar

Install

npm i @mashroom/mashroom-security-provider-simple

Weekly Downloads

9

Version

2.6.0

License

MIT

Unpacked Size

12.2 kB

Total Files

5

Last publish

Collaborators

  • jkofler