Skip to content

ilefa/adtools

Repository files navigation

adtools

version badge

adtools is a TypeScript library that allows you to easily make ActiveDirectory calls from your application.

Installation

Use npm to install adtools.

npm install @ilefa/adtools

Since Blueplate is currently hosted on GitHub packages, you will need to make a .npmrc file in the root of your project, and insert the following:

@ilefa:registry=https://npm.pkg.github.com

Usage

import {
    bind,
    find,
    findAt,
    findComputer,
    findComputersByOU,
    findGroup,
    findOU,
    findOUs,
    findUser
} from '@ilefa/adtools';

const baseDN = 'OU=Test,DC=ad,DC=example,DC=com';

const directory = await bind('ad.example.com', 'user@example.com', 'password', baseDN).catch(err => {
    console.log('Failed to bind to the domain:', err);
    return null;
});

if (!directory) return process.exit(-1);

// Perform an LDAP query
let results = await find(directory, '(&(objectClass=user)(cn=Example))');

// Perform an LDAP query with a custom base DN
let results = await findAt(directory, '(&(objectClass=user)(cn=Example))', baseDN);

// Find an OU by it's name
let ou = await findOU(directory, 'Test');

// Find all OUs (from root or from a custom base DN)
let ous = await findOUs(directory);
        = await findOUs(directory, baseDN);

// Find a domain user by their CN
let user = await findUser(directory, 'user');

// Find a group by it's CN
let group = await findGroup(directory, 'group');

// Find a computer by it's CN
let computer = await findComputer(directory, 'ComputerName');

// Find all computers in a target OU
let computers = await findComputersByOU(directory, baseDN);

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

GPL-3.0

About

ActiveDirectory toolkit for domain applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published