Compare commits
	
		
			3 Commits
		
	
	
		
			d364261db8
			...
			763f23b297
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 763f23b297 | |
|  | 5e5d5b1b86 | |
|  | 3df1b7a9ea | 
							
								
								
									
										48
									
								
								README.md
								
								
								
								
							
							
						
						
									
										48
									
								
								README.md
								
								
								
								
							|  | @ -90,6 +90,9 @@ http { | |||
| 
 | ||||
|       location = /auth-proxy { | ||||
|          proxy_pass http://<strong>127.0.0.1</strong>:8888; | ||||
|          proxy_pass_request_body off; | ||||
|          proxy_pass_request_headers off; | ||||
|          proxy_set_header Content-Length ""; | ||||
|          proxy_cache <strong>auth_cache</strong>; # Must match the name in the proxy_cache_path directive above | ||||
|          proxy_cache_valid 200 <strong>10m</strong>; | ||||
| 
 | ||||
|  | @ -112,7 +115,7 @@ http { | |||
| } | ||||
| </pre> | ||||
| 
 | ||||
| If the authentication server runs Active Directory rather than OpenLDAP, set the following directive as shown: | ||||
| If the authentication server runs Active Directory rather than OpenLDAP, uncomment the following directive as shown: | ||||
| ``` | ||||
| proxy_set_header X-Ldap-Template "(sAMAccountName=%(username)s)"; | ||||
| ``` | ||||
|  | @ -121,53 +124,52 @@ In addition, the **X-Ldap-Template** header can be used to create complex LDAP s | |||
| 
 | ||||
| Suppose, your web resource should only be available for users from `group1` group. | ||||
| In such a case you can define `X-Ldap-Template` template as follows: | ||||
| ```nginx | ||||
| ``` | ||||
| proxy_set_header X-Ldap-Template "(&(cn=%(username)s)(memberOf=cn=group1,cn=Users,dc=example,dc=com))"; | ||||
| ``` | ||||
| 
 | ||||
| The search filters can be combined from less complex filters using boolean operations and can be rather complex. | ||||
| 
 | ||||
| The reference implementation uses cookie-based authentication. If you are using HTTP basic authentication instead, set the following directives to have an empty value, as shown: | ||||
| The reference implementation uses cookie-based authentication. If you are using HTTP basic authentication instead, comment out the following directives, and enable the Authorization header as shown: | ||||
| 
 | ||||
| ```nginx | ||||
| proxy_set_header X-CookieName ""; | ||||
| proxy_set_header Cookie ""; | ||||
| ``` | ||||
| <pre> | ||||
| <strong>#</strong>proxy_set_header X-CookieName "nginxauth"; | ||||
| <strong>#</strong>proxy_set_header Cookie nginxauth=$cookie_nginxauth; | ||||
| <strong>proxy_set_header Authorization $http_authorization;</strong> | ||||
| </pre> | ||||
| 
 | ||||
| ## Customization | ||||
| ### Caching | ||||
| 
 | ||||
| The **nginx-ldap-auth.conf** file enables caching of both data and credentials. To disable caching, comment out the four `proxy_cache*` directives as shown: | ||||
| ```nginx | ||||
| <pre> | ||||
| http { | ||||
|   ... | ||||
|   #proxy_cache_path cache/ keys_zone=auth_cache:10m; | ||||
|   <strong>#</strong>proxy_cache_path cache/ keys_zone=auth_cache:10m; | ||||
|   ... | ||||
|   server { | ||||
|     ... | ||||
|     location = /auth-proxy { | ||||
|       #proxy_cache auth_cache; | ||||
|       <strong>#</strong>proxy_cache auth_cache; | ||||
|       # note that cookie is added to cache key | ||||
|       #proxy_cache_key "$http_authorization$cookie_nginxauth"; | ||||
|       #proxy_cache_valid 200 10m; | ||||
|       <strong>#</strong>proxy_cache_key "$http_authorization$cookie_nginxauth"; | ||||
|       <strong>#</strong>proxy_cache_valid 200 10m; | ||||
|      } | ||||
|    } | ||||
| } | ||||
| ``` | ||||
| </pre> | ||||
| 
 | ||||
| ### Optional LDAP Parameters | ||||
| 
 | ||||
| If you want to change the value for the `template` parameter that the ldap-auth daemon passes to the OpenLDAP server by default, set the following directive as shown, and change the value: | ||||
| ```nginx | ||||
| proxy_set_header X-Ldap-Template "(cn=%(username)s)"; | ||||
| ``` | ||||
| If you want to change the value for the `template` parameter that the ldap-auth daemon passes to the OpenLDAP server by default, uncomment the following directive as shown, and change the value: | ||||
| <pre> | ||||
| proxy_set_header X-Ldap-Template "<strong>(cn=%(username)s)</strong>"; | ||||
| </pre> | ||||
| 
 | ||||
| If you want to change the realm name from the default value (**Restricted**), set the following directive: | ||||
| ```nginx | ||||
| proxy_set_header X-Ldap-Realm "Restricted"; | ||||
| ``` | ||||
| 
 | ||||
| > **Note:** All LDAP parameters must have a value, even optional ones. Use the empty string (`""`) for unused parameters (do not comment). | ||||
| If you want to change the realm name from the default value (**Restricted**), uncomment and change the following directive: | ||||
| <pre> | ||||
| proxy_set_header X-Ldap-Realm "<strong>Restricted</strong>"; | ||||
| </pre> | ||||
| 
 | ||||
| ### Authentication Server | ||||
| 
 | ||||
|  |  | |||
|  | @ -47,6 +47,7 @@ http { | |||
|             proxy_pass http://127.0.0.1:8888; | ||||
| 
 | ||||
|             proxy_pass_request_body off; | ||||
|             proxy_pass_request_headers off; | ||||
|             proxy_set_header Content-Length ""; | ||||
|             proxy_cache auth_cache; | ||||
|             proxy_cache_valid 200 10m; | ||||
|  | @ -78,10 +79,10 @@ http { | |||
|             proxy_set_header X-Ldap-URL      "ldap://example.com"; | ||||
| 
 | ||||
|             # (Optional) Establish a TLS-enabled LDAP session after binding to the | ||||
|             # LDAP server. Set the value to "true: to enable. | ||||
|             # LDAP server. | ||||
|             # This is the 'proper' way to establish encrypted TLS connections, see | ||||
|             # http://www.openldap.org/faq/data/cache/185.html | ||||
|             proxy_set_header X-Ldap-Starttls ""; # Optional, do not comment | ||||
|             #proxy_set_header X-Ldap-Starttls "true"; | ||||
| 
 | ||||
|             # (Required) Set the Base DN, by replacing the value enclosed in | ||||
|             # double quotes. | ||||
|  | @ -96,30 +97,33 @@ http { | |||
| 
 | ||||
|             # (Required) The following directives set the cookie name and pass | ||||
|             # it, respectively. They are required for cookie-based | ||||
|             # authentication. Set to empty value if using HTTP basic | ||||
|             # authentication (do not comment). | ||||
|             # authentication. Comment them out if using HTTP basic | ||||
|             # authentication. | ||||
|             proxy_set_header X-CookieName "nginxauth"; | ||||
|             proxy_set_header Cookie nginxauth=$cookie_nginxauth; | ||||
| 
 | ||||
|             # (Required if using Microsoft Active Directory as the LDAP server) | ||||
|             # Set the LDAP template with "(sAMAccountName=%(username)s)" | ||||
|             proxy_set_header X-Ldap-Template ""; # Optional, do not comment | ||||
|             # (Optional) Uncomment if using HTTP basic authentication | ||||
|             #proxy_set_header Authorization $http_authorization; | ||||
| 
 | ||||
|             # (Set to "true"  if using Microsoft Active Directory and | ||||
|             # (Required if using Microsoft Active Directory as the LDAP server) | ||||
|             # Set the LDAP template by uncommenting the following directive. | ||||
|             #proxy_set_header X-Ldap-Template "(sAMAccountName=%(username)s)"; | ||||
| 
 | ||||
|             # (May be required if using Microsoft Active Directory and | ||||
|             # getting "In order to perform this operation a successful bind | ||||
|             # must be completed on the connection." errror) | ||||
|             proxy_set_header X-Ldap-DisableReferrals ""; # Optional, do not comment | ||||
|             #proxy_set_header X-Ldap-DisableReferrals "true"; | ||||
| 
 | ||||
|             # (Optional) | ||||
|             # Set to "(sAMAccountName=%(username)s)" if using Microsoft Active | ||||
|             # Directory as the LDAP server. | ||||
|             # Set to "(cn=%(username)s)" if using OpenLDAP as the LDAP server, | ||||
|             # which is the default set in nginx-ldap-auth-daemon.py. | ||||
|             proxy_set_header X-Ldap-Template ""; # Optional, do not comment | ||||
|             # (Optional if using OpenLDAP as the LDAP server) Set the LDAP | ||||
|             # template by uncommenting the following directive and replacing | ||||
|             # '(cn=%(username)s)' which is the default set in | ||||
|             # nginx-ldap-auth-daemon.py. | ||||
|             #proxy_set_header X-Ldap-Template "(cn=%(username)s)"; | ||||
| 
 | ||||
|             # (Optional) Set the realm name, e.g. "Restricred", which is the | ||||
|             # default set in nginx-ldap-auth-daemon.py. | ||||
|             proxy_set_header X-Ldap-Realm ""; # Optional, do not comment | ||||
|             # (Optional) Set the realm name, by uncommenting the following | ||||
|             # directive and replacing 'Restricted' which is the default set | ||||
|             # in nginx-ldap-auth-daemon.py. | ||||
|             #proxy_set_header X-Ldap-Realm    "Restricted"; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue