github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/howto/auth.html.en (about)

     1  <?xml version="1.0" encoding="ISO-8859-1"?>
     2  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     3  <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
     4  <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
     5  <!--
     6          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     7                This file is generated from xml source: DO NOT EDIT
     8          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     9        -->
    10  <title>Authentication and Authorization - Apache HTTP Server Version 2.2</title>
    11  <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
    12  <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
    13  <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
    14  <script src="../style/scripts/prettify.min.js" type="text/javascript">
    15  </script>
    16  
    17  <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/howto/auth.html" rel="canonical" /></head>
    18  <body id="manual-page"><div id="page-header">
    19  <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
    20  <p class="apache">Apache HTTP Server Version 2.2</p>
    21  <img alt="" src="../images/feather.gif" /></div>
    22  <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
    23  <div id="path">
    24  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.2</a> &gt; <a href="./">How-To / Tutorials</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
    25              <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p>
    26          <p>You may follow <a href="http://httpd.apache.org/docs/current/howto/auth.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Authentication and Authorization</h1>
    27  <div class="toplang">
    28  <p><span>Available Languages: </span><a href="../en/howto/auth.html" title="English">&nbsp;en&nbsp;</a> |
    29  <a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
    30  <a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
    31  <a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
    32  <a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
    33  </div>
    34  
    35      <p>Authentication is any process by which you verify that
    36      someone is who they claim they are. Authorization is any
    37      process by which someone is allowed to be where they want to
    38      go, or to have information that they want to have.</p>
    39  
    40      <p>For general access control, see the <a href="access.html">Access
    41      Control How-To</a>.</p>
    42  </div>
    43  <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Related Modules and Directives</a></li>
    44  <li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
    45  <li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">The Prerequisites</a></li>
    46  <li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Getting it working</a></li>
    47  <li><img alt="" src="../images/down.gif" /> <a href="#satisfy">Satisfy</a></li>
    48  <li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Letting more than one
    49  person in</a></li>
    50  <li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Possible problems</a></li>
    51  <li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Alternate password storage</a></li>
    52  <li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">More information</a></li>
    53  </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
    54  <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
    55  <div class="section">
    56  <h2><a name="related" id="related">Related Modules and Directives</a></h2>
    57  
    58  <p>There are three types of modules involved in the authentication and
    59  authorization process.  You will usually need to choose at least one
    60  module from each group.</p>
    61  
    62  <ul>
    63    <li>Authentication type (see the
    64        <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> directive)
    65      <ul>
    66        <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
    67        <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li>
    68      </ul>
    69    </li>
    70    <li>Authentication provider (see the
    71    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> and
    72    <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directives)
    73  
    74      <ul>
    75        <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li>
    76        <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li>
    77        <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li>
    78        <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li>
    79        <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
    80      </ul>
    81    </li>
    82    <li>Authorization (see the
    83        <code class="directive"><a href="../mod/core.html#require">Require</a></code> directive)
    84      <ul>
    85        <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
    86        <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li>
    87        <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
    88        <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
    89        <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li>
    90        <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li>
    91      </ul>
    92    </li>
    93  </ul>
    94  
    95    <p>The module <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> is both an
    96    authentication and authorization provider.  The module
    97    <code class="module"><a href="../mod/mod_authn_alias.html">mod_authn_alias</a></code> is not an authentication provider
    98    in itself, but allows other authentication providers to be
    99    configured in a flexible manner.</p>
   100  
   101    <p>The module <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> provides authorization
   102    and access control based on hostname, IP address or characteristics
   103    of the request, but is not part of the authentication provider
   104    system.</p>
   105  
   106    <p>You probably also want to take a look at the <a href="access.html">Access Control</a> howto, which discusses the
   107    various ways to control access to your server.</p>
   108  
   109  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   110  <div class="section">
   111  <h2><a name="introduction" id="introduction">Introduction</a></h2>
   112      <p>If you have information on your web site that is sensitive
   113      or intended for only a small group of people, the techniques in
   114      this article will help you make sure that the people that see
   115      those pages are the people that you wanted to see them.</p>
   116  
   117      <p>This article covers the "standard" way of protecting parts
   118      of your web site that most of you are going to use.</p>
   119  
   120      <div class="note"><h3>Note:</h3>
   121      <p>If your data really needs to be secure, consider using
   122      <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> in addition to any authentication.</p>
   123      </div>
   124  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   125  <div class="section">
   126  <h2><a name="theprerequisites" id="theprerequisites">The Prerequisites</a></h2>
   127      <p>The directives discussed in this article will need to go
   128      either in your main server configuration file (typically in a
   129      <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> section), or
   130      in per-directory configuration files (<code>.htaccess</code> files).</p>
   131  
   132      <p>If you plan to use <code>.htaccess</code> files, you will
   133      need to have a server configuration that permits putting
   134      authentication directives in these files. This is done with the
   135      <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> directive, which
   136      specifies which directives, if any, may be put in per-directory
   137      configuration files.</p>
   138  
   139      <p>Since we're talking here about authentication, you will need
   140      an <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> directive like the
   141      following:</p>
   142  
   143      <div class="example"><p><code>
   144        AllowOverride AuthConfig
   145      </code></p></div>
   146  
   147      <p>Or, if you are just going to put the directives directly in
   148      your main server configuration file, you will of course need to
   149      have write permission to that file.</p>
   150  
   151      <p>And you'll need to know a little bit about the directory
   152      structure of your server, in order to know where some files are
   153      kept. This should not be terribly difficult, and I'll try to
   154      make this clear when we come to that point.</p>
   155  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   156  <div class="section">
   157  <h2><a name="gettingitworking" id="gettingitworking">Getting it working</a></h2>
   158      <p>Here's the basics of password protecting a directory on your
   159      server.</p>
   160  
   161      <p>First, you need to create a password file. Exactly how you do
   162      this will vary depending on what authentication provider you have
   163      chosen. More on that later. To start with, we'll use a text password
   164      file.</p>
   165  
   166      <p>This file should be
   167      placed somewhere not accessible from the web. This is so that
   168      folks cannot download the password file. For example, if your
   169      documents are served out of <code>/usr/local/apache/htdocs</code> you
   170      might want to put the password file(s) in
   171      <code>/usr/local/apache/passwd</code>.</p>
   172  
   173      <p>To create the file, use the <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> utility that
   174      came with Apache. This will be located in the <code>bin</code> directory
   175      of wherever you installed Apache. If you have installed Apache from
   176      a third-party package, it may be in your execution path.</p>
   177  
   178      <p>To create the file, type:</p>
   179  
   180      <div class="example"><p><code>
   181        htpasswd -c /usr/local/apache/passwd/passwords rbowen
   182      </code></p></div>
   183  
   184      <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> will ask you for the password, and
   185      then ask you to type it again to confirm it:</p>
   186  
   187      <div class="example"><p><code>
   188        # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br />
   189        New password: mypassword<br />
   190        Re-type new password: mypassword<br />
   191        Adding password for user rbowen
   192      </code></p></div>
   193  
   194      <p>If <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> is not in your path, of course
   195      you'll have to type the full path to the file to get it to run.
   196      With a default installation, it's located at
   197      <code>/usr/local/apache2/bin/htpasswd</code></p>
   198  
   199      <p>Next, you'll need to configure the server to request a
   200      password and tell the server which users are allowed access.
   201      You can do this either by editing the <code>httpd.conf</code>
   202      file or using an <code>.htaccess</code> file. For example, if
   203      you wish to protect the directory
   204      <code>/usr/local/apache/htdocs/secret</code>, you can use the
   205      following directives, either placed in the file
   206      <code>/usr/local/apache/htdocs/secret/.htaccess</code>, or
   207      placed in <code>httpd.conf</code> inside a &lt;Directory
   208      /usr/local/apache/apache/htdocs/secret&gt; section.</p>
   209  
   210      <div class="example"><p><code>
   211        AuthType Basic<br />
   212        AuthName "Restricted Files"<br />
   213        # (Following line optional)<br />
   214        AuthBasicProvider file<br />
   215        AuthUserFile /usr/local/apache/passwd/passwords<br />
   216        Require user rbowen
   217      </code></p></div>
   218  
   219      <p>Let's examine each of those directives individually. The <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> directive selects
   220      that method that is used to authenticate the user. The most
   221      common method is <code>Basic</code>, and this is the method
   222      implemented by <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. It is important to be aware,
   223      however, that Basic authentication sends the password from the client to
   224      the server unencrypted. This method should therefore not be used for
   225      highly sensitive data, unless accompanied by <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>.
   226      Apache supports one other authentication method:
   227      <code>AuthType Digest</code>. This method is implemented by <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> and was intended to be more secure. This is no
   228      longer the case and the connection should be encrypted with <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> instead.</p>
   229  
   230      <p>The <code class="directive"><a href="../mod/core.html#authname">AuthName</a></code> directive sets
   231      the <dfn>Realm</dfn> to be used in the authentication. The realm serves
   232      two major functions. First, the client often presents this information to
   233      the user as part of the password dialog box. Second, it is used by the
   234      client to determine what password to send for a given authenticated
   235      area.</p>
   236  
   237      <p>So, for example, once a client has authenticated in the
   238      <code>"Restricted Files"</code> area, it will automatically
   239      retry the same password for any area on the same server that is
   240      marked with the <code>"Restricted Files"</code> Realm.
   241      Therefore, you can prevent a user from being prompted more than
   242      once for a password by letting multiple restricted areas share
   243      the same realm. Of course, for security reasons, the client
   244      will always need to ask again for the password whenever the
   245      hostname of the server changes.</p>
   246  
   247      <p>The <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> is,
   248      in this case, optional, since <code>file</code> is the default value
   249      for this directive. You'll need to use this directive if you are
   250      choosing a different source for authentication, such as
   251      <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> or <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
   252  
   253      <p>The <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
   254      directive sets the path to the password file that we just
   255      created with <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. If you have a large number
   256      of users, it can be quite slow to search through a plain text
   257      file to authenticate the user on each request. Apache also has
   258      the ability to store user information in fast database files.
   259      The <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> module provides the <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code> directive. These
   260      files can be created and manipulated with the <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> program. Many
   261      other types of authentication options are available from third
   262      party modules in the <a href="http://modules.apache.org/">Apache Modules
   263      Database</a>.</p>
   264  
   265      <p>Finally, the <code class="directive"><a href="../mod/core.html#require">Require</a></code>
   266      directive provides the authorization part of the process by
   267      setting the user that is allowed to access this region of the
   268      server. In the next section, we discuss various ways to use the
   269      <code class="directive"><a href="../mod/core.html#require">Require</a></code> directive.</p>
   270  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   271  <div class="section">
   272  <h2><a name="satisfy" id="satisfy">Satisfy</a></h2>
   273  
   274  <p>The <code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code> directive can be used to specify
   275  that several criteria may be considered when trying to decide if a particular user
   276  will be granted admission. Satisfy can take as an argument one of two options - <code>all</code>
   277  or <code>any</code>. By default, it is assumed that the value is <code>all</code>. This means that if several
   278  criteria are specified, then all of them must be met in order for someone to get in.
   279  However, if set to <code>any</code>, then several criteria may be specified, but if
   280  the user satisfies any of these, then they will be granted entrance.</p>
   281  
   282  <p>An example of this is using access control to assure that, although a resource
   283  is password protected from outside your network, all hosts inside the network
   284  will be given unauthenticated access to the resource. This would be accomplished
   285  by using the Satisfy directive, as shown below.</p>
   286  
   287  <div class="example"><p><code>
   288  &lt;Directory /usr/local/apache/htdocs/sekrit&gt;<br />
   289      <span class="indent">
   290        AuthType Basic<br />
   291        AuthName intranet<br />
   292        AuthUserFile /www/passwd/users<br />
   293        AuthGroupFile /www/passwd/groups<br />
   294        Require group customers<br />
   295        Order allow,deny<br />
   296        Allow from internal.com<br />
   297        Satisfy any<br />
   298      </span>
   299  &lt;/Directory&gt;
   300  </code></p></div>
   301  
   302  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   303  <div class="section">
   304  <h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Letting more than one
   305  person in</a></h2>
   306      <p>The directives above only let one person (specifically
   307      someone with a username of <code>rbowen</code>) into the
   308      directory. In most cases, you'll want to let more than one
   309      person in. This is where the <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> comes in.</p>
   310  
   311      <p>If you want to let more than one person in, you'll need to
   312      create a group file that associates group names with a list of
   313      users in that group. The format of this file is pretty simple,
   314      and you can create it with your favorite editor. The contents
   315      of the file will look like this:</p>
   316  
   317     <div class="example"><p><code>
   318       GroupName: rbowen dpitts sungo rshersey
   319     </code></p></div>
   320  
   321      <p>That's just a list of the members of the group in a long
   322      line separated by spaces.</p>
   323  
   324      <p>To add a user to your already existing password file,
   325      type:</p>
   326  
   327      <div class="example"><p><code>
   328        htpasswd /usr/local/apache/passwd/passwords dpitts
   329      </code></p></div>
   330  
   331      <p>You'll get the same response as before, but it will be
   332      appended to the existing file, rather than creating a new file.
   333      (It's the <code>-c</code> that makes it create a new password
   334      file).</p>
   335  
   336      <p>Now, you need to modify your <code>.htaccess</code> file or
   337      <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>
   338      block to look like the following:</p>
   339  
   340      <div class="example"><p><code>
   341        AuthType Basic<br />
   342        AuthName "By Invitation Only"<br />
   343        # Optional line:<br />
   344        AuthBasicProvider file<br />
   345        AuthUserFile /usr/local/apache/passwd/passwords<br />
   346        AuthGroupFile /usr/local/apache/passwd/groups<br />
   347        Require group GroupName
   348      </code></p></div>
   349  
   350      <p>Now, anyone that is listed in the group <code>GroupName</code>,
   351      and has an entry in the <code>password</code> file, will be let in, if
   352      they type the correct password.</p>
   353  
   354      <p>There's another way to let multiple users in that is less
   355      specific. Rather than creating a group file, you can just use
   356      the following directive:</p>
   357  
   358      <div class="example"><p><code>
   359        Require valid-user
   360      </code></p></div>
   361  
   362      <p>Using that rather than the <code>Require user rbowen</code>
   363      line will allow anyone in that is listed in the password file,
   364      and who correctly enters their password.</p>
   365  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   366  <div class="section">
   367  <h2><a name="possibleproblems" id="possibleproblems">Possible problems</a></h2>
   368      <p>Because of the way that Basic authentication is specified,
   369      your username and password must be verified every time you
   370      request a document from the server. This is even if you're
   371      reloading the same page, and for every image on the page (if
   372      they come from a protected directory). As you can imagine, this
   373      slows things down a little. The amount that it slows things
   374      down is proportional to the size of the password file, because
   375      it has to open up that file, and go down the list of users
   376      until it gets to your name. And it has to do this every time a
   377      page is loaded.</p>
   378  
   379      <p>A consequence of this is that there's a practical limit to
   380      how many users you can put in one password file. This limit
   381      will vary depending on the performance of your particular
   382      server machine, but you can expect to see slowdowns once you
   383      get above a few hundred entries, and may wish to consider a
   384      different authentication method at that time.</p>
   385  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   386  <div class="section">
   387  <h2><a name="dbmdbd" id="dbmdbd">Alternate password storage</a></h2>
   388  
   389      <p>Because storing passwords in plain text files has the above
   390      problems, you may wish to store your passwords somewhere else, such
   391      as in a database.</p>
   392  
   393      <p><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> and <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> are two
   394      modules which make this possible. Rather than selecting <code><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> file</code>, instead
   395      you can choose <code>dbm</code> or <code>dbd</code> as your storage
   396      format.</p>
   397  
   398      <p>To select a dbd file rather than a text file, for example:</p>
   399  
   400      <div class="example"><p><code>
   401      &lt;Directory /www/docs/private&gt;<br />
   402      <span class="indent">
   403          AuthName "Private"<br />
   404          AuthType Basic<br />
   405          AuthBasicProvider dbm<br />
   406          AuthDBMUserFile /www/passwords/passwd.dbm<br />
   407          Require valid-user<br />
   408      </span>
   409  &lt;/Directory&gt;
   410      </code></p></div>
   411  
   412      <p>Other options are available. Consult the
   413      <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> documentation for more details.</p>
   414  
   415  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   416  <div class="section">
   417  <h2><a name="moreinformation" id="moreinformation">More information</a></h2>
   418      <p>You should also read the documentation for
   419      <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> and <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> which
   420      contain some more information about how this all works.
   421      <code class="module"><a href="../mod/mod_authn_alias.html">mod_authn_alias</a></code> can also help in simplifying certain
   422      authentication configurations.</p>
   423  
   424      <p>The various ciphers supported by Apache for authentication data are
   425      explained in <a href="../misc/password_encryptions.html">Password
   426      Encryptions</a>.</p>
   427  
   428      <p>And you may want to look at the <a href="access.html">Access
   429      Control</a> howto, which discusses a number of related topics.</p>
   430  
   431  </div></div>
   432  <div class="bottomlang">
   433  <p><span>Available Languages: </span><a href="../en/howto/auth.html" title="English">&nbsp;en&nbsp;</a> |
   434  <a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
   435  <a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
   436  <a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
   437  <a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   438  </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Comments</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
   439  <script type="text/javascript"><!--//--><![CDATA[//><!--
   440  var comments_shortname = 'httpd';
   441  var comments_identifier = 'http://httpd.apache.org/docs/2.2/howto/auth.html';
   442  (function(w, d) {
   443      if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
   444          d.write('<div id="comments_thread"><\/div>');
   445          var s = d.createElement('script');
   446          s.type = 'text/javascript';
   447          s.async = true;
   448          s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
   449          (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
   450      }
   451      else { 
   452          d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
   453      }
   454  })(window, document);
   455  //--><!]]></script></div><div id="footer">
   456  <p class="apache">Copyright 2017 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
   457  <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
   458  if (typeof(prettyPrint) !== 'undefined') {
   459      prettyPrint();
   460  }
   461  //--><!]]></script>
   462  </body></html>