@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

Readme

Keywords

Package Sidebar

Install

npm i @osjs/pam-auth

Weekly Downloads

20

Version

1.2.0

License

BSD-2-Clause

Unpacked Size

19.9 kB

Total Files

10

Last publish

Collaborators

  • andersevenrud