Assumptions:
- CentOS is used for this purpose and also running Docker for running Nuxeo Container
- Apache httpd is installed with Proxy module and default settings
- Nuxeo is running within Container on the same CentOS machine
- DNS entry for dms1.ghfip.local is made already in respective DNS
Install LDAP Module for Apache
[root@dms1 conf.modules.d]# yum install -y mod_ldap
Verify LDAP Modules loaded for Apache
[root@dms1 conf.modules.d]# apachectl -M | grep ldap ldap_module (shared) authnz_ldap_module (shared) OR [root@dms1 conf.modules.d]# httpd -M | grep ldap ldap_module (shared) authnz_ldap_module (shared) [root@dms1 conf.modules.d]# ldap_module and authnz_ldap_module should be listed in loaded modules
Configure apache
Add LDAP Authentication parameters to httpd conf file for respective sites e.g. /etc/httpd/conf.d/nuxeo.conf:
Contents of the /etc/httpd/conf.d/nuxeo.conf (replace pi.local with your AD domain)
#set desirable endpoint here (nuxeo for current example) ProxyTimeout 1200 ProxyRequests off ProxyPass /nuxeo http://dms1.ghfip.local:8080/nuxeo <Location /nuxeo> ProxyPassReverse /nuxeo AuthBasicProvider ldap AuthLDAPURL ldap://ad.ghfip.local:389/DC=PI,DC=local?sAMAccountName?sub?(objectClass=user) AuthLDAPBindDN "apache@ghfip.local" AuthLDAPBindPassword "mypass123" AuthType Basic AuthName "DMS AD Login" Require valid-user RewriteEngine On RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule . - [E=RU:%1,NS] RequestHeader set X-pi-sso-user "%{RU}e" env=RU RequestHeader edit X-pi-sso-user "@PI.LOCAL$" "" </Location>
Any valid AD user can now be used to verify ldap credentials.
To achieve the same for casebrowser, you need to configure a site for casebrowser in the same manner, e.g. /etc/httpd/conf.d/casebrowser.conf.
To add Kerberos authentication, please see here: Kerberos setup by example
Testing
- So now, If you open http://dms1.ghfip.local/nuxeo from the machine in GHF Network, it should prompt for credential
- Provide any valid GHFIP AD username and password e.g. dms1
- Once authenticated, it should automatically logged you to nuxeo
http://dms1.ghfip.local/nuxeo --> Proxy to http://dms1.ghfip.local:8080/nuxeo ( Running within Container on the same CentOS machine)