@osjs/pam-auth

1.2.0 • Public • Published

OS.js Logo

OS.js is an open-source web desktop platform with a window manager, application APIs, GUI toolkit, filesystem abstractions and much more.

Support Support Donate Donate Community

OS.js v3 PAM Auth Provider Adapter

This is the PAM Auth Provider Adapter for OS.js v3

Please see the OS.js Authentication Guide for general information.

Installation

npm install --save --production @osjs/pam-auth

Please note that you need the PAM development libraries installed on your host computer. If you don't have this, you'll get errors during npm installation.

This varies depending on your distro:

  • Ubuntu: sudo apt install libpam-dev

Usage

Configure Server

In your server bootstrap script (src/server/index.js):

// In the top of the file load the library
const pamAuth = require('@osjs/pam-auth');

// Locate this line in the file and add the following:
osjs.register(AuthServiceProvider, {
  args: {
    adapter: pamAuth
  }
});

If you want to change the home directories of users, change your configuration (src/server/config.js):

{
  vfs: {
    root: '/home'
  }
}

A restart of the server is required

Configure Client

In your client configuration file (src/client/config.js) file remove the automatic login:

module.exports = {
  public: '/',

  // Either comment out this section, or remove it entirely
  /*
  auth: {
    login: {
      username: 'demo',
      password: 'demo'
    }
  }
  */
};

Rebuilding the client is required

Custom groups

By default, groups are read from /etc/group, but you can customize this:

osjs.register(AuthServiceProvider, {
  args: {
    adapter: pamAuth,
    config: {
      native: false,
      config: '/etc/osjs/groups.json' // Default
    }
  }
});

The format of this file is:

{
  "username": ["group1", "group2"]
}

Using IPC

You can also connect this adapter up to a IPC running as a separate user if you can't use PAM as the user OS.js server runs on.

osjs.register(AuthServiceProvider, {
  args: {
    adapter: pamAuth,
    config: {
      ipc: true
    }
  }
});

And then run the src/ipc.js server as the required user.

Contribution

Documentation

See the Official Manuals for articles, tutorials and guides.

Links

/@osjs/pam-auth/

    Package Sidebar

    Install

    npm i @osjs/pam-auth

    Weekly Downloads

    16

    Version

    1.2.0

    License

    BSD-2-Clause

    Unpacked Size

    19.9 kB

    Total Files

    10

    Last publish

    Collaborators

    • andersevenrud