2
0
mirror of https://github.com/VinylDNS/vinyldns synced 2025-08-30 05:47:56 +00:00

7 Commits

Author SHA1 Message Date
Paul Cleary
0a086e2ace
Support non ActiveDirectory LDAP (#859)
Support non ActiveDirectory LDAP

This PR has an optional local portal setup against this docker container - https://github.com/rroemhild/docker-test-openldap

The base modifications for LDAP was to change the actual authentication flow.  Before, we only attempted to bind (setting up a DirContext and relying on an exception).  We would test all of the search bases until we exhausted the list.

The new approach works differently:

1. First, login using the main service account
2. Second, do a lookup of the user
3. Finally, attempt to bind to that user's context directly using the password provided.

This works fine with both AD LDAP as well as the example docker container which uses OpenLDAP

Besides these changes, need to make configurable the userNameField, which is the ldap attribute that is used to search for the username sent in the login screen.  In AD, this is `sAMAccountName`, but in the example it is `uid`, the logon field is up to the way LDAP is setup

- `docker-up-vinyldns.sh` - fixed a quote issue with the startup script to properly send in the version of vinyldns
- `docker-compose-build.yml` - added the `ldap` container so the portal can connect as `vinyldns-ldap`
- `docker/portal/application.conf` - new config file so that we can connect to the new ldap container
- `docker-compose.yml` - added the `ldap` container here as well so we can play with it using `reStart` in sbt instead of `docker-up-vinyldns.sh` - simplifies local testing
- `LdapAuthenticator.scala` - this is where the main changes happen
2019-10-08 19:13:15 -04:00
Paul Cleary
44acfde265
Ldap Syncer using Generic TaskScheduler (#718)
* Add task and task handler.

* Update tests.

* Updates.

* Updates based on feedback (rebstar6).

* Update tests.

* Updates based on feedback (rebstar6).

* Add log for sync error.

* Change handleError to handleErrorWith.

* WIP

* WIP

* Use new TaskScheduler

* Fixing unit test

* Cleanup errant change
2019-07-01 19:30:45 -04:00
Michael Ly
d00eab268b
Fix LDAP lookup (#675)
* Update LDAP to handle more explicit cases so that UserDoesNotExistException is only returned when it truly does not exist and there are no other external factors.
* Update tests.
* Update return condition for findUserDetails, only allowing UserDoesNotException to indicate success.
2019-06-11 12:15:52 -04:00
Rebecca Star
c5c5bccfa9
Support openID connect for login (#488)
* Support openID connect for login

* Add tests on oidc
2019-02-19 11:34:45 -05:00
Rebecca Star
947de02f4a
Ldap healthcheck (#383)
* ldap healthcheck
2018-12-10 09:57:24 -05:00
Paul Cleary
0f2fdc9c7b
Replace the repos in the portal with dynamodb and core (#206)
Replace the repos in the portal with dynamodb and core

* Remove all data stores from the portal
* Use the user and user change repository from core and dynamodb
* Remove the UserAccount type, use core User instead
* Remove the UserChangeLog types, use core UserChange instead
* Clean up duplication in VinylDNS
* Moved `Module` to `modules.VinylDNSModule`.  The reason is that
you cannot disable the "default" module for unit tests.
* Use mock configuration for VinylDNSSpec and FrontendControllerSpec.
The mock app configuration is what allows us to run without dynamodb
* Added a TestApplicationData trait to cut down on duplication
2018-09-18 11:51:31 -04:00
Paul James Cleary
f0726ecb37 Initial code release 2018-07-31 14:26:07 -04:00