Bobcares

Nginx auth_request | Easy setup

by | Nov 16, 2022

The Nginx auth_request module implements the client authorization-based result of subsequent queries. Let’s check on its configuration steps by our Server Management Services at Bobcares.

Overview of Nginx auth_request

Nginx auth_request

By default the Nginx request module is not built, we can enable the same by using auth request configuration module. The module of the access request is combined with the access module and auth basic module.

 

Nginx and Nginx plus will authenticate each request of the website with an external server and service. If the subsequent code returns a 2xx response code then access will be allowed. This type of authentication implements schemes of various authentication.

 

Using Nginx auth_request

 

The Nginx auth_request module will require a compiled Nginx. During the source of Nginx download and compiling the code we have to authenticate an auth_request module flag. The module of auth_request sited between the internet and the backend which passes Nginx requests at any time during the request.

 

Initially, will forward the request to a different server for checking whether the user can authenticate. As well uses the HTTP response to decide if the request is allowed to continue from the backend.

 

The below example shows how we can use the Nginx auth_request in the Nginx configuration file.

 

Code:

 
location = /auth {
proxy_pass_request_body off;
proxy_set_header Content-Length “;
proxy_set_header X-Original-URI $request_uri;
}
 

The Nginx auth_request will enable the authorization-based result on subsequent sets of URI sent. Below is the syntax of Nginx auth_request:

 

Syntax :

 
auth_request $value_of_variable;
 

The Nginx module of auth_request has the concept of users that authenticates anyone for logging the users. Also, handles the request of HTTP and returns HTTP 401 and 200. This function depends on whether the user will be logged in.

 

For accomplishing the same we can use an open-source project as a “vouch” as it is easy to deploy. We can configure it by using a single YAML file. Vouch is for authenticating the users using a variety of OpenID and OAuth backends like google or GitHub.

 

For configuring the server block of the Nginx server we have to add auth request module to the Nginx configuration file. The auth_request and vouch-validate will enable the flow. This will inform the auth_request module to send a request for URI whether to continue from the backend server.

 

The vouch-validate will capture the URL and proxies from the vouch server listening to port 9090. No need to send the body of the post to the vouch because we care about the cookie policy.

 

Nginx auth_request configuration

 

The below steps show the Nginx auth_request configuration. First, we will install the Nginx on the system as given.

 

1. Install the Nginx server.

apt-get install nginx
 

2. Check the version of the Nginx server.

nginx –V
 

3. Once the Nginx server install completed. We are opening the configuration file of Nginx for changing the port number. We will do this by using the vi commands.

 

4. We will configure the request authentication for the directive of auth_request as shown.

 

Code :

location /private/ {
auth_request /auth;
}
 

5. Further, we will specify the proxy_pass directive which was inside the sub-request of proxy authentication.

 
location = /auth {
internal;
proxy_pass http://auth-server;
}
 

6. Now we will set the value from the results of auth_request as below.

 

Code :

location /private/ {
auth_request        /auth;
auth_request_set $auth_status $upstream_status;
}
 

7. Finally, check the syntax of the configuration file. If the syntax of the config file is ok then proceed with the Nginx service restart. If the Nginx config file occurs any error, then need to check the configuration file.

service nginx restart
 

[Looking for a solution to another query? We are just a click away.]

 

Conclusion

 
To sum up, by default the Nginx request module not built, we can enable the same by using auth request config module. The Nginx auth request will return a 403 or 401. This will show access denied by the subsequent code which considers an error.
 

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF