Releases: adalinesimonian/node-adauth
Releases · adalinesimonian/node-adauth
v1.0.0 - Promise API, Typescript rewrite
BREAKING CHANGES
- API now uses promises instead of callbacks.
- Initialisation code has been removed from the
ADAuthconstructor.
If using the constructor,.initialise(), which returns a promise, must be called afterwards. Alternatively, you can useawait ADAuth.create(options).
Added
- Automated testing, both unit and integration tests.
Changed
- Project migrated to typescript.
- Package manager switched to yarn.
Removed
- Admin client removed, as it is not used in the AD authentication flow. All operations against the server are performed using the user client.
Fixed
- Errors from the server are now properly passed to the client.
Fixed objectGUIDs
Fixed
objectGUIDattributes are now serialized correctly. Prior, they would be
serialized into unusable strings, such as{----------------}.
Load CA certificates
Added
- Support for loading CA certificates for AD off of the file system or a web
server.
Parsing objectGUIDs
Added
objectGUIDattributes on objects are now converted to a human-readable
string format
Bug fix
Fixed
- Unhandled case where
user.memberOfmay be a string object instead of an
array, leading to an error whenmemberOf.unshiftis attempted
Initial release
First working version after being forked from node-ldapauth-fork
Added
- New, required, configuration property
domainDn, which points to the
distinguished name of the domain root (e.g.dc=corp,dc=example,dc=com) searchFilterByDNconfiguration property, which defaults to
(&(objectCategory=user)(objectClass=user)(distinguishedName={{dn}}))searchFilterByUPNconfiguration property, which defaults to
(&(objectCategory=user)(objectClass=user)(userPrincipalName={{upn}}))searchFilterBySANconfiguration property, which defaults to
(&(objectCategory=user)(objectClass=user)(samAccountName={{username}}))- Users can now be authenticated both by their user principal name, or UPN,
(user@example.com) and down-level logon name (EXAMPLE\user) - A user's
primaryGroupIDis now used to resolve the primary group object and
prepend it tomemberOfand_groups - Group membership is now fetched recursively and represents all the groups a
user is an effective member of
Removed
searchFilterconfiguration property, which has has been split into
searchFilterByDN,searchFilterByUPN, andsearchFilterBySANcutarelease.pybuild step, in favour of a manual release workflow. This may
be reconsidered at a later time.
Changed
- The authentication process now attempts to bind the user's credentials first.
Subsequent LDAP queries use the client bound to the user's credentials - Groups are now fetched by default instead of on-demand
searchBasenow defaults to the value ofdomainDnand isn't required to be
explicitly setgroupSearchFilternow defaults to
(&(objectCategory=group)(objectClass=group)(member={{dn}}))- Dependency versions now use caret (
^), except forldapjs, which refers to
master, pending a future release