From: Joshua Slive The directives discussed in this article will need to go either
- in your main server configuration file, or in per-directory
- configuration files (The prerequisites
.htaccess files)..htaccess files).
If you plan to use .htaccess files, you will need to
have a server configuration that permits putting authentication
@@ -113,16 +114,16 @@
server.
You'll need to create a password file. This file should be
- placed somewhere outside of your document directory. This is so
+ placed somewhere not accessible from the web. This is so
that folks cannot download the password file. For example, if
your documents are served out of
/usr/local/apache/htdocs you might want to put the
password file(s) in /usr/local/apache/passwd.
To create the file, use the htpasswd utility
- that came with Apache. This be located in the bin
- directory of wherever you installed Apache. To create the file,
- type:
To create the file, use the htpasswd utility that came
+ with Apache. This be located in the bin directory of
+ wherever you installed Apache. To create the file, type:
htpasswd -c /usr/local/apache/passwd/password rbowen
@@ -141,36 +142,87 @@
On my server, it's located at
/usr/local/apache/bin/htpasswd
- Next, you'll need to create a file in the directory you want
- to protect. This file is usually called .htaccess,
- although on Windows it's called htaccess (without
- the leading period.) .htaccess needs to contain
- the following lines:
Next, you'll need to configure the server to request a password
+ and tell the server which users are allowed access. You can do
+ this either by editing the httpd.conf file or using
+ an .htaccess file. For example, if you wish to
+ protect the directory
+ /usr/local/apache/htdocs/secret, you can use the
+ following directives, either placed in the file
+ /usr/local/apache/htdocs/secret/.htaccess, or placed
+ in httpd.conf inside a <Directory
+ /usr/local/apache/apache/htdocs/secret> section.
AuthType Basic
- AuthName "By Invitation Only"
+ AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
- AuthGroupFile /dev/null
require user rbowen
- The next time that you load a file from that directory, you
- should see the familiar username/password dialog box pop up. If
- you don't chances are pretty good that you are not permitted to
- use .htaccess files in the directory in
- question.
Let's examine each of those directives individually. The AuthType directive selects
+ that method that is used to authenticate the user. The most
+ common method is Basic, and this is the method
+ implemented by mod_auth. It is
+ important to be aware, however, that Basic authentication sends
+ the password from the client to the browser unencrypted. This
+ method should therefore not be used for highly sensitive data.
+ Apache supports one other authentication method: AuthType
+ Digest. This method is implemented by mod_auth_digest and is much
+ more secure. Only the most recent versions of clients are known
+ to support Digest authentication.
The AuthName directive
+ sets the Realm to be used in the authentication. The
+ realm serves two major functions. First, the client often
+ presents this information to the user as part of the password
+ dialog box. Second, it is used by the client to determine what
+ password to send for a given authenticated area. So, for example,
+ once a client has authenticated in the "Restricted
+ Files" area, it will automatically retry the same password
+ for any area on the same server that is marked with the
+ "Restricted Files" Realm. Therefore, you can prevent
+ a user from being prompted more than once for a password by
+ letting multiple restricted areas share the same realm. Of
+ course, for security reasons, the client will always need to ask
+ again for the password whenever the hostname of the server
+ changes.
The AuthUserFile
+ directive sets the path to the password file that we just created
+ with htpasswd. If you have a large number of users,
+ it can be quite slow to search through a plain text file to
+ authenticate the user on each request. Apache also has the
+ ability to store user information in fast database files. The
+ modules mod_auth_db and mod_auth_dbm provide the AuthDBUserFile
+ and AuthDBMUserFile
+ directives respectively. These files can be created and
+ manipulated with the dbmmanage program. Many
+ other types of authentication options are available from third
+ party modules in the Apache
+ Modules Database.
Finally, the require
+ directive provides the authorization part of the process by
+ setting the user that is allowed to access this region of the
+ server. In the next section, we discuss various ways to
+ use the require directive.
The directives above only let one person (specifically
- someone with a username of rbowen) into the
- directory. In most cases, you'll want to let more than one
- person in. This is where the AuthGroupFile comes
- in. In the example above, we've pointed
- AuthGroupFile to /dev/null, which is
- Unix-speak for "nowhere", or "off into space." (The Windows
- NT equivalent of this is nul.)
The directives above only let one person (specifically someone
+ with a username of rbowen) into the directory. In
+ most cases, you'll want to let more than one person in. This is
+ where the AuthGroupFile comes
+ in.
If you want to let more than one person in, you'll need to
create a group file that associates group names with a list of
@@ -227,7 +279,7 @@
files, and remember to reference th right one in the
AuthUserFile directive.
Because of the way that Basic authentication is specified, your username and password must be verified every time you diff --git a/docs/manual/howto/auth.html.en b/docs/manual/howto/auth.html.en index 8fab3865fbc..54645a09420 100644 --- a/docs/manual/howto/auth.html.en +++ b/docs/manual/howto/auth.html.en @@ -81,8 +81,9 @@
The directives discussed in this article will need to go either
- in your main server configuration file, or in per-directory
- configuration files (.htaccess files).
.htaccess files).
If you plan to use .htaccess files, you will need to
have a server configuration that permits putting authentication
@@ -113,16 +114,16 @@
server.
You'll need to create a password file. This file should be
- placed somewhere outside of your document directory. This is so
+ placed somewhere not accessible from the web. This is so
that folks cannot download the password file. For example, if
your documents are served out of
/usr/local/apache/htdocs you might want to put the
password file(s) in /usr/local/apache/passwd.
To create the file, use the htpasswd utility
- that came with Apache. This be located in the bin
- directory of wherever you installed Apache. To create the file,
- type:
To create the file, use the htpasswd utility that came
+ with Apache. This be located in the bin directory of
+ wherever you installed Apache. To create the file, type:
htpasswd -c /usr/local/apache/passwd/password rbowen
@@ -141,36 +142,87 @@
On my server, it's located at
/usr/local/apache/bin/htpasswd
- Next, you'll need to create a file in the directory you want
- to protect. This file is usually called .htaccess,
- although on Windows it's called htaccess (without
- the leading period.) .htaccess needs to contain
- the following lines:
Next, you'll need to configure the server to request a password
+ and tell the server which users are allowed access. You can do
+ this either by editing the httpd.conf file or using
+ an .htaccess file. For example, if you wish to
+ protect the directory
+ /usr/local/apache/htdocs/secret, you can use the
+ following directives, either placed in the file
+ /usr/local/apache/htdocs/secret/.htaccess, or placed
+ in httpd.conf inside a <Directory
+ /usr/local/apache/apache/htdocs/secret> section.
AuthType Basic
- AuthName "By Invitation Only"
+ AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
- AuthGroupFile /dev/null
require user rbowen
- The next time that you load a file from that directory, you
- should see the familiar username/password dialog box pop up. If
- you don't chances are pretty good that you are not permitted to
- use .htaccess files in the directory in
- question.
Let's examine each of those directives individually. The AuthType directive selects
+ that method that is used to authenticate the user. The most
+ common method is Basic, and this is the method
+ implemented by mod_auth. It is
+ important to be aware, however, that Basic authentication sends
+ the password from the client to the browser unencrypted. This
+ method should therefore not be used for highly sensitive data.
+ Apache supports one other authentication method: AuthType
+ Digest. This method is implemented by mod_auth_digest and is much
+ more secure. Only the most recent versions of clients are known
+ to support Digest authentication.
The AuthName directive
+ sets the Realm to be used in the authentication. The
+ realm serves two major functions. First, the client often
+ presents this information to the user as part of the password
+ dialog box. Second, it is used by the client to determine what
+ password to send for a given authenticated area. So, for example,
+ once a client has authenticated in the "Restricted
+ Files" area, it will automatically retry the same password
+ for any area on the same server that is marked with the
+ "Restricted Files" Realm. Therefore, you can prevent
+ a user from being prompted more than once for a password by
+ letting multiple restricted areas share the same realm. Of
+ course, for security reasons, the client will always need to ask
+ again for the password whenever the hostname of the server
+ changes.
The AuthUserFile
+ directive sets the path to the password file that we just created
+ with htpasswd. If you have a large number of users,
+ it can be quite slow to search through a plain text file to
+ authenticate the user on each request. Apache also has the
+ ability to store user information in fast database files. The
+ modules mod_auth_db and mod_auth_dbm provide the AuthDBUserFile
+ and AuthDBMUserFile
+ directives respectively. These files can be created and
+ manipulated with the dbmmanage program. Many
+ other types of authentication options are available from third
+ party modules in the Apache
+ Modules Database.
Finally, the require
+ directive provides the authorization part of the process by
+ setting the user that is allowed to access this region of the
+ server. In the next section, we discuss various ways to
+ use the require directive.
The directives above only let one person (specifically
- someone with a username of rbowen) into the
- directory. In most cases, you'll want to let more than one
- person in. This is where the AuthGroupFile comes
- in. In the example above, we've pointed
- AuthGroupFile to /dev/null, which is
- Unix-speak for "nowhere", or "off into space." (The Windows
- NT equivalent of this is nul.)
The directives above only let one person (specifically someone
+ with a username of rbowen) into the directory. In
+ most cases, you'll want to let more than one person in. This is
+ where the AuthGroupFile comes
+ in.
If you want to let more than one person in, you'll need to
create a group file that associates group names with a list of
@@ -227,7 +279,7 @@
files, and remember to reference th right one in the
AuthUserFile directive.
Because of the way that Basic authentication is specified, your username and password must be verified every time you