Configuring Basic Authentication
1. Enabling Basic Authentication
| Directive | Values | Description |
|---|---|---|
| AuthType | Basic |
Enables Basic Authentication for the directory or location |
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 |
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 |