• 
      

    Modernize the Active Directory backend.

    Review Request #11356 — Created Dec. 30, 2020 and submitted

    Information

    Review Board
    release-4.0.x

    Reviewers

    The Active Directory backend is old, did not have adequate testing, and
    didn't work right with a modern environment in 4.0 beta.

    This change updates it for proper Python 3 compatibility. This is
    largely done by turning off byte string mode in python-ldap, which
    ensures all strings will be Unicode. This gets us a lot for free. As
    part of this upgrade, we also make use of some utility functions for
    building DNs, so that we don't have to worry about escaping content
    correctly.

    DNS discovery has been updated to use dnspython, instead of the old
    PyDNS. We already depend on this in Djblets, for DMARC support.
    Because of this, we no longer have to conditionally offer DNS discovery.

    Logging has been updated to always include HTTP request information, for
    easier debugging. Some logs have been improved as well.

    Many new unit tests have been added, instrumenting all of the backend's
    capabilities.

    Unit tests pass on all versions of Python.

    Summary ID
    Modernize the Active Directory backend.
    The Active Directory backend is old, did not have adequate testing, and didn't work right with a modern environment in 4.0 beta. This change updates it for proper Python 3 compatibility. This is largely done by turning off byte string mode in `python-ldap`, which ensures all strings will be Unicode. This gets us a lot for free. As part of this upgrade, we also make use of some utility functions for building DNs, so that we don't have to worry about escaping content correctly. DNS discovery has been updated to use `dnspython`, instead of the old `PyDNS`. We already depend on this in Djblets, for DMARC support. Because of this, we no longer have to conditionally offer DNS discovery. Logging has been updated to always include HTTP request information, for easier debugging. Some logs have been improved as well. Many new unit tests have been added, instrumenting all of the backend's capabilities.
    c441bc415a52d38b8718b95101d6b1bf7aa3e7ff
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-4.0.x (c1c0875)