0.5.1 • Published 10 years ago

sinopia-ldap v0.5.1

Weekly downloads
3
License
WTFPL
Repository
github
Last release
10 years ago

Installation

$ npm install sinopia
$ npm install sinopia-ldap

Config

Add to your config.yaml:

auth:
  ldap:
    type: ldap
    groupNameAttribute: 'cn'
    client_options:
      url: "ldaps://ldap.example.com"
      adminDn: "cn=admin,dc=example,dc=com"
      adminPassword: "admin"
      searchBase: "ou=People,dc=example,dc=com"
      searchFilter: "(uid={{username}})"
      cache: False
      searchAttributes:
        - "*"
        - memberOf
      tlsOptions:
        rejectUnauthorized: False

For plugin writers

It's called as:

require('sinopia-ldap')(config, stuff)

Where:

  • config - module's own config
  • stuff - collection of different internal sinopia objects
    • stuff.config - main config
    • stuff.logger - logger

This should export two functions:

  • adduser(user, password, cb)

    It should respond with:

    • cb(err) in case of an error (error will be returned to user)
    • cb(null, false) in case registration is disabled (next auth plugin will be executed)
    • cb(null, true) in case user registered successfully

    It's useful to set err.status property to set http status code (e.g. err.status = 403).

  • authenticate(user, password, cb)

    It should respond with:

    • cb(err) in case of a fatal error (error will be returned to user, keep those rare)
    • cb(null, false) in case user not authenticated (next auth plugin will be executed)
    • cb(null, [groups]) in case user is authenticated

    Groups is an array of all users/usergroups this user has access to. You should probably include username itself here.

0.5.1

10 years ago

0.5.0

10 years ago

0.4.3

11 years ago

0.4.2

11 years ago

0.4.1

11 years ago