diff --git a/README.md b/README.md index 598769d..820449d 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,9 @@ http { location = /auth-proxy { 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; # Must match the name in the proxy_cache_path directive above proxy_cache_valid 200 10m; @@ -112,7 +115,7 @@ http { } -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 ""; -``` +
+#proxy_set_header X-CookieName "nginxauth";
+#proxy_set_header Cookie nginxauth=$cookie_nginxauth;
+proxy_set_header Authorization $http_authorization;
+
## 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 +
 http {
   ...
-  #proxy_cache_path cache/ keys_zone=auth_cache:10m;
+  #proxy_cache_path cache/ keys_zone=auth_cache:10m;
   ...
   server {
     ...
     location = /auth-proxy {
-      #proxy_cache auth_cache;
+      #proxy_cache auth_cache;
       # note that cookie is added to cache key
-      #proxy_cache_key "$http_authorization$cookie_nginxauth";
-      #proxy_cache_valid 200 10m;
+      #proxy_cache_key "$http_authorization$cookie_nginxauth";
+      #proxy_cache_valid 200 10m;
      }
    }
 }
-```
+
### 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: +
+proxy_set_header X-Ldap-Template "(cn=%(username)s)";
+
-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: +
+proxy_set_header X-Ldap-Realm "Restricted";
+
### Authentication Server