Bird
Raised Fist0
Nginxdevops~5 mins

Basic authentication in Nginx - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Basic Authentication in nginx?
Basic Authentication is a simple way to protect web pages by asking users for a username and password before allowing access.
Click to reveal answer
beginner
Which nginx directive is used to enable Basic Authentication?
The auth_basic directive enables Basic Authentication in nginx.
Click to reveal answer
intermediate
What file format does nginx use to store usernames and passwords for Basic Authentication?
Nginx uses a password file created by the htpasswd tool, which stores usernames and encrypted passwords.
Click to reveal answer
intermediate
How do you create a password file for Basic Authentication?
Use the command htpasswd -c /path/to/.htpasswd username to create a new password file and add a user.
Click to reveal answer
beginner
What happens if a user enters wrong credentials in Basic Authentication?
Nginx responds with a 401 Unauthorized status and asks the user to enter the correct username and password again.
Click to reveal answer
Which directive enables Basic Authentication in nginx?
Aauth_user
Bbasic_auth
Cauth_basic
Duser_auth
What tool is commonly used to create the password file for nginx Basic Authentication?
Ahtpasswd
Bpasswdgen
Cnginxpass
Dauthgen
What HTTP status code does nginx return when Basic Authentication fails?
A403 Forbidden
B401 Unauthorized
C404 Not Found
D500 Internal Server Error
Where do you specify the path to the password file in nginx configuration?
Aauth_basic_user_file
Bauth_basic_file
Cauth_basic_user_path
Dauth_user_file
What is the purpose of the auth_basic directive's value?
AIt sets the authentication realm shown to users
BIt sets the username
CIt disables authentication
DIt sets the password file path
Explain how to set up Basic Authentication in nginx from creating the password file to configuring nginx.
Think about the steps from user creation to nginx config.
You got /4 concepts.
    Describe what happens when a user tries to access a protected page with Basic Authentication enabled.
    Focus on the interaction between user and server.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of basic authentication in nginx?
      easy
      A. To speed up the website loading time
      B. To encrypt all website traffic automatically
      C. To require users to enter a username and password before accessing content
      D. To block all users except the server admin

      Solution

      1. Step 1: Understand basic authentication purpose

        Basic authentication prompts users for a username and password to restrict access.
      2. Step 2: Compare options

        Only To require users to enter a username and password before accessing content describes this login prompt function; others describe unrelated features.
      3. Final Answer:

        To require users to enter a username and password before accessing content -> Option C
      4. Quick Check:

        Basic authentication = login prompt [OK]
      Hint: Basic auth means login prompt for access control [OK]
      Common Mistakes:
      • Confusing basic auth with encryption
      • Thinking it speeds up the site
      • Assuming it blocks all users except admin
      2. Which nginx directive is used to enable basic authentication in a server block?
      easy
      A. auth_basic_user_file
      B. auth_user_file
      C. basic_auth_enable
      D. auth_basic

      Solution

      1. Step 1: Identify the directive for enabling basic auth

        The directive auth_basic enables basic authentication and sets the login prompt message.
      2. Step 2: Check other directives

        auth_basic_user_file is incorrect; the correct directive for the password file is auth_basic_user_file but the enabling directive is auth_basic.
      3. Final Answer:

        auth_basic -> Option D
      4. Quick Check:

        Enable basic auth = auth_basic [OK]
      Hint: Enable basic auth with auth_basic directive [OK]
      Common Mistakes:
      • Using auth_basic_user_file to enable auth
      • Confusing directive names
      • Using non-existent directives
      3. Given this nginx config snippet:
      location /secure/ {
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
      }

      What happens when a user tries to access /secure/?
      medium
      A. User is prompted for username and password
      B. User is redirected to /etc/nginx/.htpasswd
      C. User accesses content without any prompt
      D. User gets a 404 Not Found error

      Solution

      1. Step 1: Analyze auth_basic directive

        The auth_basic directive enables a login prompt with the message "Restricted Area".
      2. Step 2: Analyze auth_basic_user_file directive

        The auth_basic_user_file points to the password file used to verify credentials.
      3. Step 3: Determine user experience

        When accessing /secure/, the user is asked for username and password to proceed.
      4. Final Answer:

        User is prompted for username and password -> Option A
      5. Quick Check:

        auth_basic + user_file = login prompt [OK]
      Hint: auth_basic triggers login prompt on matching location [OK]
      Common Mistakes:
      • Thinking user is redirected to password file
      • Assuming no prompt appears
      • Expecting 404 error without reason
      4. You configured basic authentication but users are not prompted for credentials. Which is the most likely error?
      medium
      A. Missing auth_basic directive in the location block
      B. Password file has wrong permissions
      C. Using HTTP instead of HTTPS
      D. Incorrect server_name directive

      Solution

      1. Step 1: Check required directives for basic auth

        Both auth_basic and auth_basic_user_file are needed; missing auth_basic disables the prompt.
      2. Step 2: Evaluate other options

        Wrong permissions cause errors but usually show 500 errors; HTTP vs HTTPS affects security but not prompt; server_name unrelated.
      3. Final Answer:

        Missing auth_basic directive in the location block -> Option A
      4. Quick Check:

        No auth_basic = no login prompt [OK]
      Hint: Always include auth_basic to enable prompt [OK]
      Common Mistakes:
      • Ignoring missing auth_basic directive
      • Blaming HTTPS for prompt absence
      • Confusing server_name with auth settings
      5. You want to protect only the /admin path with basic authentication but allow /admin/public without login. Which nginx config achieves this?
      hard
      A. Use location /admin/public/ { auth_basic "Admin Area"; } and location /admin/ { auth_basic off; }
      B. Use location /admin/ { auth_basic "Admin Area"; auth_basic_user_file /etc/nginx/.htpasswd; } and location /admin/public/ { auth_basic off; }
      C. Use location /admin/ { auth_basic off; } only
      D. Use location /admin/public/ { auth_basic_user_file /etc/nginx/.htpasswd; } only

      Solution

      1. Step 1: Protect /admin path with basic auth

        Set auth_basic and auth_basic_user_file in location /admin/ to require login.
      2. Step 2: Disable auth for /admin/public

        Override with auth_basic off; in location /admin/public/ to allow open access.
      3. Step 3: Confirm correct order and specificity

        More specific location /admin/public/ disables auth, while parent /admin/ requires it.
      4. Final Answer:

        Use location /admin/ with auth_basic and location /admin/public/ with auth_basic off -> Option B
      5. Quick Check:

        Parent location auth + child location off = selective protection [OK]
      Hint: Disable auth in child location with auth_basic off [OK]
      Common Mistakes:
      • Reversing auth_basic on/off in locations
      • Not using auth_basic off to disable
      • Only configuring one location
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard