Configuring Repository to use LDAP#

To enable Lightweight Directory Access Protocol (LDAP) support:

  1. Open the Repository configuration file $PREFIX/etc/anaconda-server/config.yaml and add the following configuration:

    account_names_filter: false
    USER_REGEX: ^[a-z0-9_][a-z0-9_-.]+$
    LDAP:
      # Replace with company LDAP server
      URI: 'ldap://<ldap.company.com>'
    
      # Replace <uid=%(username)s,ou=People,dc=company,dc=com> with your company specific LDAP Bind/Base DN
      # Bind directly to this Base DN.
      BIND_DN: '<uid=%(username)s,ou=People,dc=company,dc=com>'
    
      # Map LDAP keys into application specific keys
      KEY_MAP:
          name: 'cn'
          company: 'o'
          location: 'l'
          email: 'mail'
    
  2. When switching authentication to LDAP, the admin account is lost, so you need to add your admin account again:

    anaconda-server-admin set-superuser "jsmith"
    
  3. Run the flask-ldap-login-check command to verify LDAP connectivity:

    flask-ldap-login-check binstar.wsgi:app --username 'jsmith' --password 'abc123DEF'
    

    NOTE: Replace jsmith and abc123DEF with your LDAP username and password.

  4. To apply the changes, restart the Repository server:

    supervisorctl restart all
    
  5. Open a new browser window and navigate to your local Repository installation:

    http://your.anaconda.repository
    

    NOTE: Replace your.anaconda.repository with your Repository server IP address or domain name.

  6. Log in using your LDAP credentials.

  7. Optional. You may set an LDAP network timeout in seconds with the options OPT_NETWORK_TIMEOUT and OPT_TIMEOUT. The default value is 0, meaning no timeout.

    For example, to set the timeout to 60 seconds, add this block to the LDAP settings in your configuration file:

    OPTIONS:
       OPT_NETWORK_TIMEOUT: 60
       OPT_TIMEOUT: 60