Skip to main content

Configuring Basic Authentication

1. Enabling Basic Authentication

Directive Values Description
AuthType Basic Enables Basic Authentication for the directory or location

Example: Enabling Basic Authentication

<Directory "/var/www/protected">
    AuthType Basic
</Directory>

2. Setting Authentication Realm

Directive Values Description
AuthName string Defines the realm name shown in the authentication dialog

Example: Setting Authentication Realm

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
</Directory>

3. Creating Password Files

Directive Values Description
AuthUserFile file-path Specifies the path to the file containing usernames and passwords

Example: Creating Password Files

htpasswd -c /etc/apache2/secure-users.txt admin

4. Specifying User File

Directive Values Description
AuthUserFile /etc/apache2/secure-users.txt Points to the file containing user credentials

Example: Specifying User File

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/secure-users.txt
</Directory>

5. Configuring Group Files

Directive Values Description
AuthGroupFile file-path Specifies the path to the file containing group definitions

Example: Configuring Group Files

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/secure-users.txt
    AuthGroupFile /etc/apache2/secure-groups.txt
</Directory>

6. Requiring Valid Users

Directive Values Description
Require valid-user valid-user Allows access to any authenticated user

Example: Requiring Valid Users

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/secure-users.txt
    Require valid-user
</Directory>

7. Requiring Specific Users

Directive Values Description
Require user user1 user2 Allows access to specific users listed

Example: Requiring Specific Users

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/secure-users.txt
    Require user admin editor
</Directory>

8. Requiring Groups

Directive Values Description
Require group group1 group2 Allows access to users in specified groups

Example: Requiring Groups

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/secure-users.txt
    AuthGroupFile /etc/apache2/secure-groups.txt
    Require group admins editors
</Directory>

9. Combining Authentication with Access Control

Directive Values Description
Require user admin Combines authentication and access control rules

Example: Combining Authentication with Access Control

<Directory "/var/www/protected">
    AuthType Basic
    AuthName "Admin Area"
    AuthUserFile /etc/apache2/secure-users.txt
    Require user admin
</Directory>

10. Securing Password Files

Directive Values Description
File Permissions 600 Password files must be readable only by the web server user

Example: Securing Password Files

chmod 600 /etc/apache2/secure-users.txt
chown root:www-data /etc/apache2/secure-users.txt

11. Managing Multiple Users

Directive Values Description
htpasswd -m MD5 Creates password files with MD5 encryption

Example: Managing Multiple Users

htpasswd -m /etc/apache2/secure-users.txt user1
htpasswd -m /etc/apache2/secure-users.txt user2

12. Testing Basic Authentication

Directive Values Description
curl -u user:pass response Test authentication using curl command

Example: Testing Basic Authentication

curl -u admin:password http://example.com/protected

Was this article helpful?