ActiveDirectory toolkit for domain applications
adtools is a TypeScript library that allows you to easily make ActiveDirectory calls from your application.
Use npm to install adtools.
``bash`
npm install @uconn-its/adtools
`ts
import {
bind,
find,
findAt,
findComputer,
findComputersByOU,
findGroup,
findOU,
findOUs,
findUser
} from '@uconn-its/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);
`
To publish an update to this package follow these steps;
1. Make sure your git directory is clean by commiting or stashing
all changes.
2. Move the .env.example to .envand change theNPMRC_TOKEN
variable to a token with access to @uconn-itsITS WebDev -- NPM/uconn-its NPM Access Token
(Found in LastPass under ).package.json
3. Increment the package version by either manually changing the
file or running npm version .npm publish
4. Publish the package to the registry by running . (Note: If younpm publish` again.)
get a 404 error, simply run