diff options
Diffstat (limited to '')
-rw-r--r-- | docs/manual/howto/auth.html | 25 | ||||
-rw-r--r-- | docs/manual/howto/auth.html.en | 640 | ||||
-rw-r--r-- | docs/manual/howto/auth.html.es | 717 | ||||
-rw-r--r-- | docs/manual/howto/auth.html.fr.utf8 | 681 | ||||
-rw-r--r-- | docs/manual/howto/auth.html.ja.utf8 | 692 | ||||
-rw-r--r-- | docs/manual/howto/auth.html.ko.euc-kr | 355 | ||||
-rw-r--r-- | docs/manual/howto/auth.html.tr.utf8 | 639 |
7 files changed, 3749 insertions, 0 deletions
diff --git a/docs/manual/howto/auth.html b/docs/manual/howto/auth.html new file mode 100644 index 0000000..5e5578d --- /dev/null +++ b/docs/manual/howto/auth.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: auth.html.en +Content-Language: en +Content-type: text/html; charset=UTF-8 + +URI: auth.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: auth.html.fr.utf8 +Content-Language: fr +Content-type: text/html; charset=UTF-8 + +URI: auth.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: auth.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: auth.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/docs/manual/howto/auth.html.en b/docs/manual/howto/auth.html.en new file mode 100644 index 0000000..d8a9b0e --- /dev/null +++ b/docs/manual/howto/auth.html.en @@ -0,0 +1,640 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Authentication and Authorization - Apache HTTP Server Version 2.4</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">How-To / Tutorials</a></div><div id="page-content"><div id="preamble"><h1>Authentication and Authorization</h1> +<div class="toplang"> +<p><span>Available Languages: </span><a href="../en/howto/auth.html" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> + + <p>Authentication is any process by which you verify that + someone is who they claim they are. Authorization is any + process by which someone is allowed to be where they want to + go, or to have information that they want to have.</p> + + <p>For general access control, see the <a href="access.html">Access + Control How-To</a>.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Related Modules and Directives</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">The Prerequisites</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Getting it working</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Letting more than one +person in</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Possible problems</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Alternate password storage</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#multprovider">Using multiple providers</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#beyond">Beyond just authorization</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#socache">Authentication Caching</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">More information</a></li> +</ul><h3>See also</h3><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related">Related Modules and Directives</a></h2> + +<p>There are three types of modules involved in the authentication and +authorization process. You will usually need to choose at least one +module from each group.</p> + +<ul> + <li>Authentication type (see the + <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> directive) + <ul> + <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> + <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li> + </ul> + </li> + <li>Authentication provider (see the + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> and + <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directives) + + <ul> + <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code></li> + </ul> + </li> + <li>Authorization (see the + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive) + <ul> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li> + </ul> + </li> +</ul> + + <p>In addition to these modules, there are also + <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> and + <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>. These modules implement core + directives that are core to all auth modules.</p> + + <p>The module <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> is both an + authentication and authorization provider. The module + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> provides authorization + and access control based on hostname, IP address or characteristics + of the request, but is not part of the authentication provider + system. For backwards compatibility with the mod_access, there is + a new module <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code>.</p> + + <p>You probably also want to take a look at the <a href="access.html">Access Control</a> howto, which discusses the + various ways to control access to your server.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="introduction" id="introduction">Introduction</a></h2> + <p>If you have information on your web site that is sensitive + or intended for only a small group of people, the techniques in + this article will help you make sure that the people that see + those pages are the people that you wanted to see them.</p> + + <p>This article covers the "standard" way of protecting parts + of your web site that most of you are going to use.</p> + + <div class="note"><h3>Note:</h3> + <p>If your data really needs to be secure, consider using + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> in addition to any authentication.</p> + </div> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="theprerequisites" id="theprerequisites">The Prerequisites</a></h2> + <p>The directives discussed in this article will need to go + either in your main server configuration file (typically in a + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> section), or + in per-directory configuration files (<code>.htaccess</code> files).</p> + + <p>If you plan to use <code>.htaccess</code> files, you will + need to have a server configuration that permits putting + authentication directives in these files. This is done with the + <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> directive, which + specifies which directives, if any, may be put in per-directory + configuration files.</p> + + <p>Since we're talking here about authentication, you will need + an <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> directive like the + following:</p> + + <pre class="prettyprint lang-config">AllowOverride AuthConfig</pre> + + + <p>Or, if you are just going to put the directives directly in + your main server configuration file, you will of course need to + have write permission to that file.</p> + + <p>And you'll need to know a little bit about the directory + structure of your server, in order to know where some files are + kept. This should not be terribly difficult, and I'll try to + make this clear when we come to that point.</p> + + <p>You will also need to make sure that the modules + <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> and <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> + have either been built into the httpd binary or loaded by the + httpd.conf configuration file. Both of these modules provide core + directives and functionality that are critical to the configuration + and use of authentication and authorization in the web server.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="gettingitworking" id="gettingitworking">Getting it working</a></h2> + <p>Here's the basics of password protecting a directory on your + server.</p> + + <p>First, you need to create a password file. Exactly how you do + this will vary depending on what authentication provider you have + chosen. More on that later. To start with, we'll use a text password + file.</p> + + <p>This file should be + 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 <code>/usr/local/apache/htdocs</code>, you + might want to put the password file(s) in + <code>/usr/local/apache/passwd</code>.</p> + + <p>To create the file, use the <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> utility that + came with Apache. This will be located in the <code>bin</code> directory + of wherever you installed Apache. If you have installed Apache from + a third-party package, it may be in your execution path.</p> + + <p>To create the file, type:</p> + + <div class="example"><p><code> + htpasswd -c /usr/local/apache/passwd/passwords rbowen + </code></p></div> + + <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> will ask you for the password, and + then ask you to type it again to confirm it:</p> + + <div class="example"><p><code> + # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br /> + New password: mypassword<br /> + Re-type new password: mypassword<br /> + Adding password for user rbowen + </code></p></div> + + <p>If <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> is not in your path, of course + you'll have to type the full path to the file to get it to run. + With a default installation, it's located at + <code>/usr/local/apache2/bin/htpasswd</code></p> + + <p>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 <code>httpd.conf</code> + file or using an <code>.htaccess</code> file. For example, if + you wish to protect the directory + <code>/usr/local/apache/htdocs/secret</code>, you can use the + following directives, either placed in the file + <code>/usr/local/apache/htdocs/secret/.htaccess</code>, or + placed in <code>httpd.conf</code> inside a <Directory + "/usr/local/apache/htdocs/secret"> section.</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "Restricted Files" +# (Following line optional) +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +Require user rbowen</pre> + + + <p>Let's examine each of those directives individually. The <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> directive selects + the method that is used to authenticate the user. The most + common method is <code>Basic</code>, and this is the method + implemented by <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. It is important to be aware, + however, that Basic authentication sends the password from the client to + the server unencrypted. This method should therefore not be used for + highly sensitive data, unless accompanied by <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. + Apache supports one other authentication method: + <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 + 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> + + <p>The <code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> directive sets + the <dfn>Realm</dfn> 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.</p> + + <p>So, for example, once a client has authenticated in the + <code>"Restricted Files"</code> area, it will automatically + retry the same password for any area on the same server that is + marked with the <code>"Restricted Files"</code> 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.</p> + + <p>The <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> is, + in this case, optional, since <code>file</code> is the default value + for this directive. You'll need to use this directive if you are + choosing a different source for authentication, such as + <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> + + <p>The <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + directive sets the path to the password file that we just + created with <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. 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 <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 + files can be created and manipulated with the <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> and <code class="program"><a href="../programs/htdbm.html">htdbm</a></code> programs. Many + other types of authentication options are available from third + party modules.</p> + + <p>Finally, the <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + 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 + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Letting more than one +person in</a></h2> + <p>The directives above only let one person (specifically + someone with a username of <code>rbowen</code>) into the + directory. In most cases, you'll want to let more than one + person in. This is where the <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> comes in.</p> + + <p>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 + users in that group. The format of this file is pretty simple, + and you can create it with your favorite editor. The contents + of the file will look like this:</p> + + <div class="example"><p><code> + GroupName: rbowen dpitts sungo rshersey + </code></p></div> + + <p>That's just a list of the members of the group in a long + line separated by spaces.</p> + + <p>To add a user to your already existing password file, + type:</p> + + <div class="example"><p><code> + htpasswd /usr/local/apache/passwd/passwords dpitts + </code></p></div> + + <p>You'll get the same response as before, but it will be + appended to the existing file, rather than creating a new file. + (It's the <code>-c</code> that makes it create a new password + file).</p> + + <p>Now, you need to modify your <code>.htaccess</code> file or + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> block + to look like the following:</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "By Invitation Only" +# Optional line: +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthGroupFile "/usr/local/apache/passwd/groups" +Require group GroupName</pre> + + + <p>Now, anyone that is listed in the group <code>GroupName</code>, + and has an entry in the <code>password</code> file, will be let in, if + they type the correct password.</p> + + <p>There's another way to let multiple users in that is less + specific. Rather than creating a group file, you can just use + the following directive:</p> + + <pre class="prettyprint lang-config">Require valid-user</pre> + + + <p>Using that rather than the <code>Require user rbowen</code> + line will allow anyone in that is listed in the password file, + and who correctly enters their password.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="possibleproblems" id="possibleproblems">Possible problems</a></h2> + <p>Because of the way that Basic authentication is specified, + your username and password must be verified every time you + request a document from the server. This is even if you're + reloading the same page, and for every image on the page (if + they come from a protected directory). As you can imagine, this + slows things down a little. The amount that it slows things + down is proportional to the size of the password file, because + it has to open up that file, and go down the list of users + until it gets to your name. And it has to do this every time a + page is loaded.</p> + + <p>A consequence of this is that there's a practical limit to + how many users you can put in one password file. This limit + will vary depending on the performance of your particular + server machine, but you can expect to see slowdowns once you + get above a few hundred entries, and may wish to consider a + different authentication method at that time.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="dbmdbd" id="dbmdbd">Alternate password storage</a></h2> + + <p>Because storing passwords in plain text files has the above + problems, you may wish to store your passwords somewhere else, such + as in a database.</p> + + <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 + 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 + you can choose <code>dbm</code> or <code>dbd</code> as your storage + format.</p> + + <p>To select a dbm file rather than a text file, for example:</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider dbm + AuthDBMUserFile "/www/passwords/passwd.dbm" + Require valid-user +</Directory></pre> + + + <p>Other options are available. Consult the + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> documentation for more details.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="multprovider" id="multprovider">Using multiple providers</a></h2> + + <p>With the introduction of the new provider based authentication and + authorization architecture, you are no longer locked into a single + authentication or authorization method. In fact any number of the + providers can be mixed and matched to provide you with exactly the + scheme that meets your needs. In the following example, both the + file and LDAP based authentication providers are being used.</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider file ldap + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + Require valid-user +</Directory></pre> + + + <p>In this example the file provider will attempt to authenticate + the user first. If it is unable to authenticate the user, the LDAP + provider will be called. This allows the scope of authentication + to be broadened if your organization implements more than + one type of authentication store. Other authentication and authorization + scenarios may include mixing one type of authentication with a + different type of authorization. For example, authenticating against + a password file yet authorizing against an LDAP directory.</p> + + <p>Just as multiple authentication providers can be implemented, multiple + authorization methods can also be used. In this example both file group + authorization as well as LDAP group authorization is being used.</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider file + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + AuthGroupFile "/usr/local/apache/passwd/groups" + Require group GroupName + Require ldap-group cn=mygroup,o=yourorg +</Directory></pre> + + + <p>To take authorization a little further, authorization container + directives such as + <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + and + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> + allow logic to be applied so that the order in which authorization + is handled can be completely controlled through the configuration. + See <a href="../mod/mod_authz_core.html#logic">Authorization + Containers</a> for an example of how they may be applied.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="beyond" id="beyond">Beyond just authorization</a></h2> + + <p>The way that authorization can be applied is now much more flexible + than just a single check against a single data store. Ordering, logic + and choosing how authorization will be done is now possible.</p> + + <h3><a name="authandororder" id="authandororder">Applying logic and ordering</a></h3> + <p>Controlling how and in what order authorization will be applied + has been a bit of a mystery in the past. In Apache 2.2 a provider-based + authentication mechanism was introduced to decouple the actual + authentication process from authorization and supporting functionality. + One of the side benefits was that authentication providers could be + configured and called in a specific order which didn't depend on the + load order of the auth module itself. This same provider based mechanism + has been brought forward into authorization as well. What this means is + that the <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive + not only specifies which authorization methods should be used, it also + specifies the order in which they are called. Multiple authorization + methods are called in the same order in which the + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directives + appear in the configuration.</p> + + <p>With the introduction of authorization container directives + such as + <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + and + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>, + the configuration also has control over when the + authorization methods are called and what criteria determines when + access is granted. See + <a href="../mod/mod_authz_core.html#logic">Authorization Containers</a> + for an example of how they may be used to express complex + authorization logic.</p> + + <p>By default all + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + directives are handled as though contained within a + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> + container directive. In other words, if + any of the specified authorization methods succeed, then authorization + is granted.</p> + + + + <h3><a name="reqaccessctrl" id="reqaccessctrl">Using authorization providers for access control</a></h3> + <p>Authentication by username and password is only part of the + story. Frequently you want to let people in based on something + other than who they are. Something such as where they are + coming from.</p> + + <p>The authorization providers <code>all</code>, + <code>env</code>, <code>host</code> and <code>ip</code> let you + allow or deny access based on other host based criteria such as + host name or ip address of the machine requesting a + document.</p> + + <p>The usage of these providers is specified through the + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive. + This directive registers the authorization providers + that will be called during the authorization stage of the request + processing. For example:</p> + + <pre class="prettyprint lang-config">Require ip <var>address</var> + </pre> + + + <p>where <var>address</var> is an IP address (or a partial IP + address) or:</p> + + <pre class="prettyprint lang-config">Require host <var>domain_name</var> + </pre> + + + <p>where <var>domain_name</var> is a fully qualified domain name + (or a partial domain name); you may provide multiple addresses or + domain names, if desired.</p> + + <p>For example, if you have someone spamming your message + board, and you want to keep them out, you could do the + following:</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 10.252.46.165 +</RequireAll></pre> + + + <p>Visitors coming from that address will not be able to see + the content covered by this directive. If, instead, you have a + machine name, rather than an IP address, you can use that.</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not host host.example.com +</RequireAll></pre> + + + <p>And, if you'd like to block access from an entire domain, + you can specify just part of an address or domain name:</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 192.168.205 + Require not host phishers.example.com moreidiots.example + Require not host ke +</RequireAll></pre> + + + <p>Using <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + with multiple <code class="directive"><a href="../mod/mod_authz_core.html#require"><Require></a></code> directives, each negated with <code>not</code>, + will only allow access, if all of negated conditions are true. In other words, + access will be blocked, if any of the negated conditions fails.</p> + + + + <h3><a name="filesystem" id="filesystem">Access Control backwards compatibility</a></h3> + <p>One of the side effects of adopting a provider based mechanism for + authentication is that the previous access control directives + <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> and + <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code> are no longer needed. + However to provide backwards compatibility for older configurations, these + directives have been moved to the <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> module.</p> + + <div class="warning"><h3>Note</h3> + <p>The directives provided by <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> have + been deprecated by <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>. + Mixing old directives like <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code> or <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> with new ones like + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> is technically possible + but discouraged. The <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> module was created to support + configurations containing only old directives to facilitate the 2.4 upgrade. + Please check the <a href="../upgrading.html">upgrading</a> guide for more + information. + </p> + </div> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="socache" id="socache">Authentication Caching</a></h2> + <p>There may be times when authentication puts an unacceptable load + on a provider or on your network. This is most likely to affect users + of <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> (or third-party/custom providers). + To deal with this, HTTPD 2.3/2.4 introduces a new caching provider + <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code> to cache credentials and reduce + the load on the origin provider(s).</p> + <p>This may offer a substantial performance boost to some users.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="moreinformation" id="moreinformation">More information</a></h2> + <p>You should also read the documentation for + <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 contain some more information about how this all works. The + directive <code class="directive"><a href="../mod/mod_authn_core.html#authnprovideralias"><AuthnProviderAlias></a></code> can also help + in simplifying certain authentication configurations.</p> + + <p>The various ciphers supported by Apache for authentication data are + explained in <a href="../misc/password_encryptions.html">Password + Encryptions</a>.</p> + + <p>And you may want to look at the <a href="access.html">Access + Control</a> howto, which discusses a number of related topics.</p> + +</div></div> +<div class="bottomlang"> +<p><span>Available Languages: </span><a href="../en/howto/auth.html" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</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&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2023 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> +<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[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/howto/auth.html.es b/docs/manual/howto/auth.html.es new file mode 100644 index 0000000..fd72860 --- /dev/null +++ b/docs/manual/howto/auth.html.es @@ -0,0 +1,717 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"><head> +<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Autenticación y Autorización - Servidor HTTP Apache Versión 2.4</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/directives.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p> +<p class="apache">Versión 2.4 del Servidor HTTP Apache</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Servidor HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentación</a> > <a href="../">Versión 2.4</a> > <a href="./">How-To / Tutoriales</a></div><div id="page-content"><div id="preamble"><h1>Autenticación y Autorización</h1> +<div class="toplang"> +<p><span>Idiomas disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> +<div class="outofdate">Esta traducción podría estar + obsoleta. Consulte la versión en inglés de la + documentación para comprobar si se han producido cambios + recientemente.</div> + + <p>Autenticación es cualquier proceso por el cuál se verifica que uno es + quien dice ser. Autorización es cualquier proceso en el cuál cualquiera + está permitido a estar donde se quiera, o tener información la cuál se + quiera tener. + </p> + + <p>Para información de control de acceso de forma genérica visite<a href="access.html">How to de Control de Acceso</a>.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Módulos y Directivas Relacionados</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introducción</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">Los Prerequisitos</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Conseguir que funcione</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Dejar que más de una persona + entre</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Posibles Problemas</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Método alternativo de almacenamiento de las + contraseñas</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#multprovider">Uso de múltiples proveedores</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#beyond">Más allá de la Autorización</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#socache">Cache de Autenticación</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">Más información</a></li> +</ul><h3>Consulte también</h3><ul class="seealso"><li><a href="#comments_section">Comentarios</a></li></ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related">Módulos y Directivas Relacionados</a></h2> + +<p>Hay tres tipos de módulos involucrados en los procesos de la autenticación + y autorización. Normalmente deberás escoger al menos un módulo de cada grupo.</p> + +<ul> + <li>Modos de Autenticación (consulte la directiva + <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> ) + <ul> + <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> + <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li> + </ul> + </li> + <li>Proveedor de Autenticación (consulte la directiva + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> y + <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>) + + <ul> + <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code></li> + </ul> + </li> + <li>Autorización (consulte la directiva + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>) + <ul> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li> + </ul> + </li> +</ul> + + <p>A parte de éstos módulos, también están + <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> y + <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>. Éstos módulos implementan las directivas + esenciales que son el centro de todos los módulos de autenticación.</p> + + <p>El módulo <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> es tanto un proveedor de + autenticación como de autorización. El módulo + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> proporciona autorización y control de acceso + basado en el nombre del Host, la dirección IP o características de la propia + petición, pero no es parte del sistema proveedor de + autenticación. Para tener compatibilidad inversa con el mod_access, + hay un nuevo modulo llamado <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code>.</p> + + <p>También puedes mirar el how-to de <a href="access.html">Control de Acceso </a>, donde se plantean varias formas del control de acceso al servidor.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="introduction" id="introduction">Introducción</a></h2> + <p>Si se tiene información en nuestra página web que sea información + sensible o pensada para un grupo reducido de usuarios/personas, + las técnicas que se describen en este manual, le servirán + de ayuda para asegurarse de que las personas que ven esas páginas sean + las personas que uno quiere.</p> + + <p>Este artículo cubre la parte "estándar" de cómo proteger partes de un + sitio web que muchos usarán.</p> + + <div class="note"><h3>Nota:</h3> + <p>Si de verdad es necesario que tus datos estén en un sitio seguro, + considera usar <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> como método de autenticación adicional a cualquier forma de autenticación.</p> + </div> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="theprerequisites" id="theprerequisites">Los Prerequisitos</a></h2> + <p>Las directivas que se usan en este artículo necesitaran ponerse ya sea + en el fichero de configuración principal del servidor ( típicamente en + la sección + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> de httpd.conf ), o + en cada uno de los ficheros de configuraciones del propio directorio + (los archivos <code>.htaccess</code>).</p> + + <p>Si planea usar los ficheros <code>.htaccess</code> , necesitarás + tener en la configuración global del servidor, una configuración que permita + poner directivas de autenticación en estos ficheros. Esto se hace con la + directiva <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>, la cual especifica + que directivas, en su caso, pueden ser puestas en cada fichero de configuración + por directorio.</p> + + <p>Ya que estamos hablando aquí de autenticación, necesitarás una directiva + <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> como la siguiente: + </p> + + <pre class="prettyprint lang-config">AllowOverride AuthConfig</pre> + + + <p>O, si solo se van a poner las directivas directamente en la configuración + principal del servidor, deberás tener, claro está, permisos de escritura + en el archivo. </p> + + <p>Y necesitarás saber un poco de como está estructurado el árbol de + directorios de tu servidor, para poder saber donde se encuentran algunos + archivos. Esto no debería ser una tarea difícil, aún así intentaremos + dejarlo claro llegado el momento de comentar dicho aspecto.</p> + + <p>También deberás de asegurarte de que los módulos + <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> y <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> + han sido incorporados, o añadidos a la hora de compilar en tu binario httpd o + cargados mediante el archivo de configuración <code>httpd.conf</code>. Estos + dos módulos proporcionan directivas básicas y funcionalidades que son críticas + para la configuración y uso de autenticación y autorización en el servidor web.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="gettingitworking" id="gettingitworking">Conseguir que funcione</a></h2> + <p>Aquí está lo básico de cómo proteger con contraseña un directorio en tu + servidor.</p> + + <p>Primero, necesitarás crear un fichero de contraseña. Dependiendo de que + proveedor de autenticación se haya elegido, se hará de una forma u otra. Para empezar, + usaremos un fichero de contraseña de tipo texto.</p> + + <p>Este fichero deberá estar en un sitio que no se pueda tener acceso desde + la web. Esto también implica que nadie pueda descargarse el fichero de + contraseñas. Por ejemplo, si tus documentos están guardados fuera de + <code>/usr/local/apache/htdocs</code>, querrás poner tu archivo de contraseñas en + <code>/usr/local/apache/passwd</code>.</p> + + <p>Para crear el fichero de contraseñas, usa la utilidad + <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> que viene con Apache. Esta herramienta se + encuentra en el directorio <code>/bin</code> en donde sea que se ha + instalado el Apache. Si ha instalado Apache desde un paquete de terceros, + puede ser que se encuentre en su ruta de ejecución.</p> + + <p>Para crear el fichero, escribiremos:</p> + + <div class="example"><p><code> + htpasswd -c /usr/local/apache/passwd/passwords rbowen + </code></p></div> + + <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> te preguntará por una contraseña, y después + te pedirá que la vuelvas a escribir para confirmarla:</p> + + <div class="example"><p><code> + $ htpasswd -c /usr/local/apache/passwd/passwords rbowen<br /> + New password: mypassword<br /> + Re-type new password: mypassword<br /> + Adding password for user rbowen + </code></p></div> + + <p>Si <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> no está en tu variable de entorno "path" del + sistema, por supuesto deberás escribir la ruta absoluta del ejecutable para + poder hacer que se ejecute. En una instalación por defecto, está en: + <code>/usr/local/apache2/bin/htpasswd</code></p> + + <p>Lo próximo que necesitas, será configurar el servidor para que pida una + contraseña y así decirle al servidor que usuarios están autorizados a acceder. + Puedes hacer esto ya sea editando el fichero <code>httpd.conf</code> + de configuración o usando in fichero <code>.htaccess</code>. Por ejemplo, + si quieres proteger el directorio + <code>/usr/local/apache/htdocs/secret</code>, puedes usar las siguientes + directivas, ya sea en el fichero <code>.htaccess</code> localizado en + following directives, either placed in the file + <code>/usr/local/apache/htdocs/secret/.htaccess</code>, o + en la configuración global del servidor <code>httpd.conf</code> dentro de la + sección <Directory + "/usr/local/apache/htdocs/secret"> , como se muestra a continuación:</p> + + <pre class="prettyprint lang-config"><Directory "/usr/local/apache/htdocs/secret"> +AuthType Basic +AuthName "Restricted Files" +# (Following line optional) +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +Require user rbowen +</Directory></pre> + + + <p>Vamos a explicar cada una de las directivas individualmente. + La directiva <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> selecciona el método + que se usa para autenticar al usuario. El método más común es + <code>Basic</code>, y éste es el método que implementa + <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. Es muy importante ser consciente, + de que la autenticación básica, envía las contraseñas desde el cliente + al servidor sin cifrar. + Este método por tanto, no debe ser utilizado para proteger datos muy sensibles, + a no ser que, este método de autenticación básica, sea acompañado del módulo + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. + Apache soporta otro método más de autenticación que es del tipo + <code>AuthType Digest</code>. Este método, es implementado por el módulo <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> y con el se pretendía crear una autenticación más + segura. Este ya no es el caso, ya que la conexión deberá realizarse con <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en su lugar. + </p> + + <p>La directiva <code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> + establece el <dfn>Realm</dfn> para ser usado en la autenticación. El + <dfn>Realm</dfn> tiene dos funciones principales. + La primera, el cliente presenta a menudo esta información al usuario como + parte del cuadro de diálogo de contraseña. La segunda, que es utilizado por + el cliente para determinar qué contraseña enviar a para una determinada zona + de autenticación.</p> + + <p>Así que, por ejemple, una vez que el cliente se ha autenticado en el área de + los <code>"Ficheros Restringidos"</code>, entonces re-intentará automáticamente + la misma contraseña para cualquier área en el mismo servidor que es marcado + con el Realm de <code>"Ficheros Restringidos"</code> + Por lo tanto, puedes prevenir que a un usuario se le pida mas de una vez por su + contraseña, compartiendo así varias áreas restringidas el mismo Realm + Por supuesto, por razones de seguridad, el cliente pedirá siempre por una contraseña, + siempre y cuando el nombre del servidor cambie. + </p> + + <p>La directiva <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> es, + en este caso, opcional, ya que <code>file</code> es el valor por defecto + para esta directiva. Deberás usar esta directiva si estas usando otro medio + diferente para la autenticación, como por ejemplo + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> o <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p> + + <p>La directiva <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + establece el path al fichero de contraseñas que acabamos de crear con el + comando <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. Si tiene un número muy grande de usuarios, + puede ser realmente lento el buscar el usuario en ese fichero de texto plano + para autenticar a los usuarios en cada petición. + Apache también tiene la habilidad de almacenar información de usuarios en + unos ficheros de rápido acceso a modo de base de datos. + El módulo <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> proporciona la directiva <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>. Estos ficheros pueden ser creados y + manipulados con el programa <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> y <code class="program"><a href="../programs/htdbm.html">htdbm</a></code>. + Muchos otros métodos de autenticación así como otras opciones, están disponibles en + módulos de terceros + <a href="http://modules.apache.org/">Base de datos de Módulos disponibles</a>.</p> + + <p>Finalmente, la directiva <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + proporciona la parte del proceso de autorización estableciendo el o los + usuarios que se les está permitido acceder a una región del servidor. + En la próxima sección, discutiremos las diferentes vías de utilizar la + directiva <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Dejar que más de una persona + entre</a></h2> + <p>Las directivas mencionadas arriba sólo permiten a una persona + (especialmente con un usuario que en ej ejemplo es <code>rbowen</code>) + en el directorio. En la mayoría de los casos, se querrá permitir el acceso + a más de una persona. Aquí es donde la directiva + <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> entra en juego.</p> + + <p>Si lo que se desea es permitir a más de una persona el acceso, necesitarás + crear un archivo de grupo que asocie los nombres de grupos con el de personas + para permitirles el acceso. El formato de este fichero es bastante sencillo, + y puedes crearlo con tu editor de texto favorito. El contenido del fichero + se parecerá a:</p> + + <div class="example"><p><code> + GroupName: rbowen dpitts sungo rshersey + </code></p></div> + + <p>Básicamente eso es la lista de miembros los cuales están en un mismo fichero + de grupo en una sola linea separados por espacios.</p> + + <p>Para añadir un usuario a tu fichero de contraseñas existente teclee:</p> + + <div class="example"><p><code> + htpasswd /usr/local/apache/passwd/passwords dpitts + </code></p></div> + + <p>Te responderá lo mismo que anteriormente, pero se añadirá al fichero + existente en vez de crear uno nuevo. (Es decir el flag <code>-c</code> será + el que haga que se genere un nuevo + fichero de contraseñas).</p> + + <p>Ahora, tendrá que modificar su fichero <code>.htaccess</code> para que sea + parecido a lo siguiente:</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "By Invitation Only" +# Optional line: +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthGroupFile "/usr/local/apache/passwd/groups" +Require group GroupName</pre> + + + <p>Ahora, cualquiera que esté listado en el grupo <code>GroupName</code>, + y tiene una entrada en el fichero de <code>contraseñas</code>, se les + permitirá el acceso, si introducen su contraseña correctamente.</p> + + <p>Hay otra manera de dejar entrar a varios usuarios, que es menos específica. + En lugar de crear un archivo de grupo, sólo puede utilizar la siguiente + directiva:</p> + + <pre class="prettyprint lang-config">Require valid-user</pre> + + + <p>Usando ésto en vez de la línea <code>Require user rbowen</code> + permitirá a cualquier persona acceder, la cuál aparece en el archivo de + contraseñas, y que introduzca correctamente su contraseña. Incluso puede + emular el comportamiento del grupo aquí, sólo manteniendo un fichero de + contraseñas independiente para cada grupo. La ventaja de este enfoque es + que Apache sólo tiene que comprobar un archivo, en lugar de dos. La desventaja + es que se tiene que mantener un montón de ficheros de contraseña de grupo, y + recuerde hacer referencia al fichero correcto en la directiva + <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="possibleproblems" id="possibleproblems">Posibles Problemas</a></h2> + <p>Debido a la forma en que se especifica la autenticación básica, + su nombre de usuario y la contraseña deben ser verificados cada vez + que se solicita un documento desde el servidor. Esto es, incluso si + se vuelve a cargar la misma página, y para cada imagen de la página (si + provienen de un directorio protegido). Como se puede imaginar, esto + ralentiza las cosas un poco. La cantidad que ralentiza las cosas es + proporcional al tamaño del archivo de contraseñas, porque tiene que + abrir ese archivo, recorrer lista de usuarios hasta que llega a su nombre. + Y tiene que hacer esto cada vez que se carga una página.</p> + + <p>Una consecuencia de esto, es que hay un limite práctico de cuantos + usuarios puedes introducir en el fichero de contraseñas. Este límite + variará dependiendo de la máquina en la que tengas el servidor, + pero puedes notar ralentizaciones en cuanto se metan cientos de entradas, + y por lo tanto consideraremos entonces otro método de autenticación + en ese momento. + </p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="dbmdbd" id="dbmdbd">Método alternativo de almacenamiento de las + contraseñas</a></h2> + + <p>Debido a que el almacenamiento de las contraseñas en texto plano tiene + el problema mencionado anteriormente, puede que se prefiera guardar + las contraseñas en otro lugar como por ejemplo una base de datos. + </p> + + <p>Los módulos <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> y <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> son + dos módulos que hacen esto posible. En vez de seleccionar la directiva de fichero + <code><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> </code>, en su lugar + se puede elegir <code>dbm</code> o <code>dbd</code> como formato de almacenamiento.</p> + + <p>Para seleccionar los ficheros de tipo dbm en vez de texto plano, podremos hacer algo parecido a lo siguiente:</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider dbm + AuthDBMUserFile "/www/passwords/passwd.dbm" + Require valid-user +</Directory></pre> + + + <p>Hay otras opciones disponibles. Consulta la documentación de + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> para más detalles.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="multprovider" id="multprovider">Uso de múltiples proveedores</a></h2> + + <p>Con la introducción de la nueva autenticación basada en un proveedor y + una arquitectura de autorización, ya no estaremos restringidos a un único + método de autenticación o autorización. De hecho, cualquier número de + los proveedores pueden ser mezclados y emparejados para ofrecerle + exactamente el esquema que se adapte a sus necesidades. + En el siguiente ejemplo, veremos como ambos proveedores tanto el fichero + como el LDAP son usados en la autenticación: + </p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider file ldap + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + Require valid-user +</Directory></pre> + + + <p>En este ejemplo el fichero, que actúa como proveedor, intentará autenticar + primero al usuario. Si no puede autenticar al usuario, el proveedor del LDAP + será llamado para que realice la autenticación. + Esto permite al ámbito de autenticación ser amplio, si su organización + implementa más de un tipo de almacén de autenticación. + Otros escenarios de autenticación y autorización pueden incluir la + mezcla de un tipo de autenticación con un tipo diferente de autorización. + Por ejemplo, autenticar contra un fichero de contraseñas pero autorizando + dicho acceso mediante el directorio del LDAP.</p> + + <p>Así como múltiples métodos y proveedores de autenticación pueden + ser implementados, también pueden usarse múltiples formas de + autorización. + En este ejemplo ambos ficheros de autorización de grupo así como + autorización de grupo mediante LDAP va a ser usado: + </p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider file + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + AuthGroupFile "/usr/local/apache/passwd/groups" + Require group GroupName + Require ldap-group cn=mygroup,o=yourorg +</Directory></pre> + + + <p>Para llevar la autorización un poco más lejos, las directivas + de autorización de contenedores tales como + <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + and + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> + nos permiten aplicar una lógica de en qué orden se manejará la autorización dependiendo + de la configuración y controlada a través de ella. + Mire también <a href="../mod/mod_authz_core.html#logic">Contenedores de + Autorización</a> para ejemplos de cómo pueden ser aplicados.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="beyond" id="beyond">Más allá de la Autorización</a></h2> + + <p>El modo en que la autorización puede ser aplicada es ahora mucho más flexible + que us solo chequeo contra un almacén de datos (contraseñas). Ordenando la + lógica y escoger la forma en que la autorización es realizada, ahora es posible + </p> + + <h3><a name="authandororder" id="authandororder">Aplicando la lógica y ordenación</a></h3> + <p>Controlar el cómo y en qué orden se va a aplicar la autorización ha + sido un misterio en el pasado. En Apache 2.2 un proveedor del + mecanismo de autenticación fue introducido para disociar el proceso actual + de autenticación y soportar funcionalidad. + Uno de los beneficios secundarios fue que los proveedores de autenticación + podían ser configurados y llamados en un orden especifico que no dependieran + en el orden de carga del propio modulo. + Este proveedor de dicho mecanismo, ha sido introducido en la autorización + también. Lo que esto significa es que la directiva + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + no sólo especifica que método de autorización deberá ser usado, si no + también especifica el orden en que van a ser llamados. Múltiples + métodos de autorización son llamados en el mismo orden en que la directiva + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> aparece en la + configuración. + </p> + + <p> + Con la Introducción del contenedor de directivas de autorización tales como + <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + y + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>, + La configuración también tiene control sobre cuándo se llaman a los métodos + de autorización y qué criterios determinan cuándo se concede el acceso. + Vease + <a href="../mod/mod_authz_core.html#logic">Contenedores de autorización</a> + Para un ejemplo de cómo pueden ser utilizados para expresar una lógica + más compleja de autorización. + </p> + + <p> + Por defecto todas las directivas + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + son manejadas como si estuvieran contenidas en una directiva + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>. + En otras palabras, Si alguno de los métodos de autorización + especificados tiene éxito, se concede la autorización. + </p> + + + + <h3><a name="reqaccessctrl" id="reqaccessctrl">Uso de los proveedores de autorización para + el control de acceso</a></h3> + + <p> + La autenticación de nombre de usuario y contraseña es sólo parte + de toda la historia que conlleva el proceso. Frecuentemente quiere + dar acceso a la gente en base a algo más que lo que son. + Algo como de donde vienen. + </p> + + <p> + Los proveedores de autorización <code>all</code>, + <code>env</code>, <code>host</code> y <code>ip</code> + te permiten denegar o permitir el acceso basándose en otros + criterios como el nombre de la máquina o la IP de la máquina que + realiza la consulta para un documento. + </p> + + <p> + El uso de estos proveedores se especifica a través de la directiva + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>. + La directiva registra los proveedores de autorización que serán llamados + durante la solicitud de la fase del proceso de autorización. Por ejemplo: + </p> + + <pre class="prettyprint lang-config">Require ip <var>address</var> + </pre> + + + <p> + Donde <var>address</var> es una dirección IP (o una dirección IP parcial) + o bien: + </p> + + <pre class="prettyprint lang-config">Require host <var>domain_name</var> + </pre> + + + <p> + Donde <var>domain_name</var> es el nombre completamente cualificado de un nombre + de dominio (FQDN) (o un nombre parcial del dominio); + puede proporcionar múltiples direcciones o nombres de dominio, si se desea. + </p> + + <p> + Por ejemplo, si alguien envía spam a su tablón de mensajes y desea + mantenerlos alejados, podría hacer lo siguiente:</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 10.252.46.165 +</RequireAll></pre> + + + <p> + Visitantes que vengan desde esa IP no serán capaces de ver el contenido + que cubre esta directiva. Si, en cambio, lo que se tiene es el nombre de + la máquina, en vez de la dirección IP, podría usar: + </p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not host host.example.com +</RequireAll></pre> + + + <p> + Y, si lo que se quiere es bloquear el acceso desde un determinado dominio + (bloquear el acceso desde el dominio entero), puede especificar parte + de la dirección o del propio dominio a bloquear: + </p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 192.168.205 + Require not host phishers.example.com moreidiots.example + Require not host ke +</RequireAll></pre> + + + <p> + Usando <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + con múltiples directivas <code class="directive"><a href="../mod/mod_authz_core.html#require"><Require></a></code>, cada una negada con un <code>not</code>, + Sólo permitirá el acceso, si todas las condiciones negadas son verdaderas. + En otras palabras, el acceso será bloqueado, si cualquiera de las condiciones + negadas fallara. + </p> + + + + <h3><a name="filesystem" id="filesystem">Compatibilidad de Control de Acceso con versiones + anteriores </a></h3> + + <p> + Uno de los efectos secundarios de adoptar proveedores basados en + mecanismos de autenticación es que las directivas anteriores + <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> y + <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code> ya no son necesarias. + Sin embargo, para proporcionar compatibilidad con configuraciones antiguas, + estas directivas se han movido al módulo <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code>. + </p> + + <div class="warning"><h3>Nota:</h3> + <p> + Las directivas proporcionadas por <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> + han quedado obsoletas por <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>. Mezclar + directivas antiguas como + <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code> ó + <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> con las nuevas + como + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + es técnicamente posible pero desaconsejable. El módulo + <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> se creó para soportar configuraciones + que contuvieran sólo directivas antiguas para facilitar la actualización + a la versión 2.4. + Por favor revise la documentación de + <a href="../upgrading.html">actualización</a> para más información al + respecto. + </p> + </div> + + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="socache" id="socache">Cache de Autenticación</a></h2> + <p> + Puede haber momentos en que la autenticación ponga una carga + inaceptable en el proveedor (de autenticación) o en tu red. + Esto suele afectar a los usuarios de <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> + (u otros proveedores de terceros/personalizados). + Para lidiar con este problema, HTTPD 2.3/2.4 introduce un nuevo proveedor + de caché <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code> para cachear las credenciales + y reducir la carga en el proveedor(es) original. + </p> + <p> + Esto puede ofrecer un aumento de rendimiento sustancial para algunos usuarios. + </p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="moreinformation" id="moreinformation">Más información</a></h2> + + <p> + También debería leer la documentación para + <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> y <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> + la cuál contiene más información de como funciona todo esto. + La directiva <code class="directive"><a href="../mod/mod_authn_core.html#authnprovideralias"><AuthnProviderAlias></a></code> puede también ayudar + a la hora de simplificar ciertas configuraciones de autenticación. + </p> + + <p> + Los diferentes algoritmos de cifrado que están soportados por Apache + para la autenticación se explican en + <a href="../misc/password_encryptions.html">Cifrado de Contraseñas</a>. + </p> + + <p> + Y tal vez quiera ojear la documentación de "how to" + <a href="access.html">Control de Acceso</a> donde se mencionan temas + relacionados.</p> + +</div></div> +<div class="bottomlang"> +<p><span>Idiomas disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</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">Comentarios</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Licencia bajo los términos de la <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<p class="menu"><a href="../mod/">Módulos</a> | <a href="../mod/directives.html">Directivas</a> | <a href="http://wiki.apache.org/httpd/FAQ">Preguntas Frecuentes</a> | <a href="../glossary.html">Glosario</a> | <a href="../sitemap.html">Mapa del sitio web</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/howto/auth.html.fr.utf8 b/docs/manual/howto/auth.html.fr.utf8 new file mode 100644 index 0000000..760a222 --- /dev/null +++ b/docs/manual/howto/auth.html.fr.utf8 @@ -0,0 +1,681 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Authentification et autorisation - Serveur HTTP Apache Version 2.4</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<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">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> +<p class="apache">Serveur HTTP Apache Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">Recettes / Tutoriels</a></div><div id="page-content"><div id="preamble"><h1>Authentification et autorisation</h1> +<div class="toplang"> +<p><span>Langues Disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> + + <p>L'authentification est un processus qui vous permet de vérifier + qu'une personne est bien celle qu'elle prétend être. L'autorisation + est un processus qui permet à une personne d'aller là où elle veut + aller, ou d'obtenir les informations qu'elle désire.</p> + + <p>Pour le contrôle d'accès en général, voir le How-To <a href="access.html">Contrôle d'accès</a>.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">Modules et directives concernés</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">Les prérequis</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Mise en oeuvre</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Autorisation d'accès à +plusieurs personnes</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Problèmes possibles</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Autre méthode de stockage des mots de +passe</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#multprovider">Utilisation de plusieurs fournisseurs +d'authentification</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#beyond">Pour aller plus loin qu'une simple +autorisation</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#socache">Mise en cache de l'authentification</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">Pour aller plus loin . . .</a></li> +</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related">Modules et directives concernés</a></h2> + +<p>Trois groupes de modules sont concernés par le processus +d'authentification et d'autorisation. Vous devrez utiliser au moins un +module de chaque groupe.</p> + +<ul> + <li>Type d'authentification (voir la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>) + <ul> + <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> + <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li> + </ul> + </li> + <li>Fournisseur d'authentification (voir les directives <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> et <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>) + + <ul> + <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code></li> + </ul> + </li> + <li>Autorisation (voir la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>) + <ul> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li> + </ul> + </li> +</ul> + + <p>On peut aussi ajouter <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> et + <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>. Ces modules implémentent des + directives générales qui opèrent au dessus de tous les modules + d'authentification.</p> + + <p>Le module <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> est un fournisseur + d'authentification et d'autorisation. Le module + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> fournit une autorisation et un + contrôle d'accès basés sur le nom du serveur, l'adresse IP ou + certaines caractéristiques de la requête, mais ne fait pas partie du + système fournisseur d'authentification. Le module + <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> a été créé à des fins de + compatibilité ascendante avec mod_access.</p> + + <p>Vous devriez aussi jeter un coup d'oeil au manuel de recettes de <a href="access.html">Contrôle d'accès</a>, qui décrit les différentes + méthodes de contrôle d'accès à votre serveur.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="introduction" id="introduction">Introduction</a></h2> + <p>Si votre site web contient des informations sensibles ou + destinées seulement à un groupe de personnes restreint, les + techniques exposées dans cet article vont vous aider à vous assurer + que les personnes qui ont accès à ces pages sont bien celles + auxquelles vous avez donné l'autorisation d'accès.</p> + + <p>Cet article décrit les méthodes "standards" de protection de + parties de votre site web que la plupart d'entre vous sont appelés à + utiliser.</p> + + <div class="note"><h3>Note :</h3> + <p>Si vos données ont un réel besoin de sécurisation, prévoyez + l'utilisation de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en plus de toute méthode + d'authentification.</p> + </div> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="theprerequisites" id="theprerequisites">Les prérequis</a></h2> + <p>Les directives décrites dans cet article devront être insérées + soit au niveau de la configuration de votre serveur principal (en + général dans une section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code>), soit au niveau de la + configuration des répertoires (fichiers <code>.htaccess</code>)</p> + + <p>Si vous envisagez l'utilisation de fichiers + <code>.htaccess</code>, la configuration de votre serveur devra + permettre l'ajout de directives d'authentification dans ces + fichiers. Pour ce faire, on utilise la directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code>, qui spécifie quelles + directives pourront éventuellement contenir les fichiers de + configuration de niveau répertoire.</p> + + <p>Comme il est ici question d'authentification, vous aurez besoin + d'une directive <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> + du style :</p> + + <pre class="prettyprint lang-config">AllowOverride AuthConfig</pre> + + + <p>Si vous avez l'intention d'ajouter les directives directement + dans le fichier de configuration principal, vous devrez bien entendu + posséder les droits en écriture sur ce fichier.</p> + + <p>Vous devrez aussi connaître un tant soit peu la structure des + répertoires de votre serveur, ne serait-ce que pour savoir où se + trouvent certains fichiers. Cela ne devrait pas présenter de grandes + difficultés, et nous essaierons de clarifier tout ça lorsque le besoin + s'en fera sentir.</p> + + <p>Enfin, vous devrez vous assurer que les modules + <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> et <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> + ont été soit compilés avec le binaire httpd, soit chargés par le + fichier de configuration httpd.conf. Ces deux modules fournissent + des directives générales et des fonctionnalités qui sont critiques + quant à la configuration et l'utilisation de l'authentification et + de l'autorisation au sein du serveur web.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="gettingitworking" id="gettingitworking">Mise en oeuvre</a></h2> + <p>Nous décrivons ici les bases de la protection par mot de passe + d'un répertoire de votre serveur.</p> + + <p>Vous devez en premier lieu créer un fichier de mots de passe. La + méthode exacte selon laquelle vous allez créer ce fichier va varier + en fonction du fournisseur d'authentification choisi. Mais nous + entrerons dans les détails plus loin, et pour le moment, nous nous + contenterons d'un fichier de mots de passe en mode texte.</p> + + <p>Ce fichier doit être enregistré à un endroit non accessible + depuis le web, de façon à ce que les clients ne puissent pas le + télécharger. Par exemple, si vos documents sont servis à partir de + <code>/usr/local/apache/htdocs</code>, vous pouvez enregistrer le + fichier des mots de passe dans + <code>/usr/local/apache/passwd</code>.</p> + + <p>L'utilitaire <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> fourni avec Apache + permet de créer ce fichier. Vous le trouverez dans le répertoire + <code>bin</code> de votre installation d'Apache. Si vous avez + installé Apache à partir d'un paquetage tiers, il sera probablement + dans le chemin par défaut de vos exécutables.</p> + + <p>Pour créer le fichier, tapez :</p> + + <div class="example"><p><code> + htpasswd -c /usr/local/apache/passwd/passwords rbowen + </code></p></div> + + <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> vous demandera d'entrer le mot de + passe, et de le retaper pour confirmation :</p> + + <div class="example"><p><code> + # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br /> + New password: mot-de-passe<br /> + Re-type new password: mot-de-passe<br /> + Adding password for user rbowen + </code></p></div> + + <p>Si <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> n'est pas dans le chemin par + défaut de vos exécutables, vous devrez bien entendu entrer le chemin + complet du fichier. Dans le cas d'une installation par défaut, il se + trouve à <code>/usr/local/apache2/bin/htpasswd</code>.</p> + + <p>Ensuite, vous allez devoir configurer le serveur de façon à ce + qu'il demande un mot de passe et lui préciser quels utilisateurs ont + l'autorisation d'accès. Pour ce faire, vous pouvez soit éditer le + fichier <code>httpd.conf</code>, soit utiliser un fichier + <code>.htaccess</code>. Par exemple, si vous voulez protéger le + répertoire <code>/usr/local/apache/htdocs/secret</code>, vous pouvez + utiliser les directives suivantes, soit dans le fichier + <code>/usr/local/apache/htdocs/secret/.htaccess</code>, soit dans le + fichier <code>httpd.conf</code> à l'intérieur d'une section <Directory + "/usr/local/apache/htdocs/secret"> :</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "Restricted Files" +# (Following line optional) +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +Require user rbowen</pre> + + + <p>Examinons ces directives une à une. La directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> définit la méthode + utilisée pour authentifier l'utilisateur. La méthode la plus + courante est <code>Basic</code>, et elle est implémentée par + <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>. Il faut cependant garder à l'esprit + que l'authentification Basic transmet le mot de passe depuis le + client vers le serveur en clair. Cette méthode ne devra donc pas + être utilisée pour la transmission de données hautement sensibles si + elle n'est pas associée au module <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>. Apache + supporte une autre méthode d'authentification : <code>AuthType + Digest</code>. Cette méthode est implémentée par le module <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> et a été conçue pour + améliorer la sécurité. Ce but n'a cependant pas été atteint et il est préférable + de chiffrer la connexion avec <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code>.</p> + + <p>La directive <code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> définit + l'<dfn>Identificateur</dfn> (Realm) à utiliser avec + l'authentification. L'identificateur possède deux fonctions. Tout + d'abord, le client présente en général cette information à + l'utilisateur dans le cadre de la boîte de dialogue de mot de passe. + Ensuite, le client l'utilise pour déterminer quel mot de passe + envoyer pour une zone authentifiée donnée.</p> + + <p>Ainsi par exemple, une fois un client authentifié dans la zone + <code>"Fichiers réservés"</code>, il soumettra à nouveau + automatiquement le même mot de passe pour toute zone du même serveur + marquée de l'identificateur <code>"Fichiers réservés"</code>. De + cette façon, vous pouvez éviter à un utilisateur d'avoir à saisir + plusieurs fois le même mot de passe en faisant partager le même + identificateur entre plusieurs zones réservées. Bien entendu et pour + des raisons de sécurité, le client devra redemander le mot + de passe chaque fois que le nom d'hôte du serveur sera modifié.</p> + + <p>La directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> est, dans ce + cas, facultative, car <code>file</code> est la valeur par défaut + pour cette directive. Par contre, cette directive sera obligatoire + si vous utilisez une autre source d'authentification comme + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ou + <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p> + + <p>La directive <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> définit le chemin + du fichier de mots de passe que nous venons de créer avec + <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code>. Si vous possédez un grand nombre + d'utilisateurs, la durée de la recherche dans un fichier texte pour + authentifier un utilisateur à chaque requête va augmenter + rapidement, et pour pallier cet inconvénient, Apache peut aussi + stocker les données relatives aux + utilisateurs dans des bases de données rapides. Le module + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> fournit la directive <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>. Les programmes <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> et <code class="program"><a href="../programs/htdbm.html">htdbm</a></code> permettent de + créer et manipuler ces fichiers. Enfin, de nombreux modules tiers + fournissent d'autres types d'authentification.</p> + + <p>Enfin, la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> implémente la partie + autorisation du processus en définissant l'utilisateur autorisé à + accéder à cette zone du serveur. Dans la section suivante, nous + décrirons les différentes méthodes d'utilisation de la directive + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Autorisation d'accès à +plusieurs personnes</a></h2> + <p>Les directives ci-dessus n'autorisent qu'une personne (quelqu'un + possédant le nom d'utilisateur <code>rbowen</code>) à accéder au + répertoire. Dans la plupart des cas, vous devrez autoriser + l'accès à plusieurs personnes. C'est ici + qu'intervient la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>.</p> + + <p>Si vous voulez autoriser l'accès à plusieurs personnes, vous + devez créer un fichier de groupes qui associe des noms de groupes + avec une liste d'utilisateurs de ce groupe. Le format de ce fichier + est très simple, et vous pouvez le créer avec votre éditeur favori. + Son contenu se présente comme suit :</p> + + <div class="example"><p><code> + Nom-de-groupe: rbowen dpitts sungo rshersey + </code></p></div> + + <p>Il s'agit simplement une liste des membres du groupe sous la + forme d'une ligne séparée par des espaces.</p> + + <p>Pour ajouter un utilisateur à votre fichier de mots de passe + préexistant, entrez :</p> + + <div class="example"><p><code> + htpasswd /usr/local/apache/passwd/passwords dpitts + </code></p></div> + + <p>Vous obtiendrez le même effet qu'auparavant, mais le mot de passe + sera ajouté au fichier, plutôt que d'en créer un nouveau (C'est le + drapeau <code>-c</code> qui permet de créer un nouveau fichier de + mots de passe)..</p> + + <p>Maintenant, vous devez modifier votre fichier + <code>.htaccess</code> ou la section <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> comme suit :</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "By Invitation Only" +# Optional line: +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthGroupFile "/usr/local/apache/passwd/groups" +Require group GroupName</pre> + + + <p>Maintenant, quiconque appartient au groupe + <code>Nom-de-groupe</code>, et possède une entrée dans le fichier + <code>password</code> pourra accéder au répertoire s'il tape le bon + mot de passe.</p> + + <p>Il existe une autre méthode moins contraignante pour autoriser + l'accès à plusieurs personnes. Plutôt que de créer un fichier de + groupes, il vous suffit d'ajouter la directive suivante :</p> + + <pre class="prettyprint lang-config">Require valid-user</pre> + + + <p>Le remplacement de la ligne <code>Require user rbowen</code> par + la ligne <code>Require valid-user</code> autorisera l'accès à + quiconque possédant une entrée dans le fichier password, et ayant + tapé le bon mot de passe.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="possibleproblems" id="possibleproblems">Problèmes possibles</a></h2> + <p>L'authentification Basic est spécifiée d'une telle manière que + vos nom d'utilisateur et mot de passe doivent être vérifiés chaque + fois que vous demandez un document au serveur, et ceci même si vous + rechargez la même page, et pour chaque image contenue dans la page + (si elles sont situées dans un répertoire protégé). Comme vous + pouvez l'imaginer, ceci ralentit un peu le fonctionnement. La mesure + dans laquelle le fonctionnement est ralenti est proportionnelle à la + taille du fichier des mots de passe, car ce dernier doit être ouvert + et la liste des utilisateurs parcourue jusqu'à ce que votre nom soit + trouvé, et ceci chaque fois qu'une page est chargée.</p> + + <p>En conséquence, ce ralentissement impose une limite pratique au + nombre d'utilisateurs que vous pouvez enregistrer dans un fichier de + mots de passe. Cette limite va varier en fonction des performances + de votre serveur, mais vous commencerez à remarquer un + ralentissement lorsque vous atteindrez quelques centaines + d'utilisateurs, et serez alors appelés à utiliser une méthode + d'authentification différente.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="dbmdbd" id="dbmdbd">Autre méthode de stockage des mots de +passe</a></h2> + + <p>Suite au problème évoqué précédemment et induit par le stockage + des mots de passe dans un fichier texte, vous pouvez être appelé à + stocker vos mots de passe d'une autre manière, par exemple dans une + base de données.</p> + + <p>Pour y parvenir, on peut utiliser les modules + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ou <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>. + Vous pouvez choisir comme format de stockage <code>dbm</code> ou + <code>dbd</code> à la place de <code>file</code> pour la directive + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p> + + <p>Par exemple, pour sélectionner un fichier dbm à la place d'un + fichier texte :</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + + AuthName "Private" + AuthType Basic + AuthBasicProvider dbm + AuthDBMUserFile "/www/passwords/passwd.dbm" + Require valid-user + +</Directory></pre> + + + <p>D'autres options sont disponibles. Consultez la documentation de + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> pour plus de détails.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="multprovider" id="multprovider">Utilisation de plusieurs fournisseurs +d'authentification</a></h2> + + <p>Depuis l'arrivée des nouvelles architecture d'autorisation et + d'authentification basées sur les fournisseurs, vous n'êtes plus + limité à une méthode d'authentification et d'autorisation + unique. En fait, on peut panacher autant de fournisseurs que l'on + veut, ce qui vous permet d'élaborer l'architecture qui correspond + exactement à vos besoins. Dans l'exemple suivant, on utilise + conjointement les fournisseurs d'authentification + file et LDAP :</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + + AuthName "Private" + AuthType Basic + AuthBasicProvider file ldap + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + Require valid-user + +</Directory></pre> + + + <p>Dans cet exemple, le fournisseur file va tenter d'authentifier + l'utilisateur en premier. S'il n'y parvient pas, le fournisseur LDAP + sera sollicité. Ceci permet l'élargissement des possibilités + d'authentification si votre organisation implémente plusieurs types + de bases d'authentification. D'autres scénarios d'authentification + et d'autorisation peuvent associer un type d'authentification avec + un autre type d'autorisation. Par exemple, une authentification + basée sur un fichier de mots de passe peut permettre l'attribution + d'autorisations basée sur un annuaire LDAP.</p> + + <p>Tout comme plusieurs fournisseurs d'authentification peuvent être + implémentés, on peut aussi utiliser plusieurs méthodes + d'autorisation. Dans l'exemple suivant, on utilise à la fois une + autorisation à base de fichier de groupes et une autorisation à base + de groupes LDAP.</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + + AuthName "Private" + AuthType Basic + AuthBasicProvider file + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + AuthGroupFile "/usr/local/apache/passwd/groups" + Require group GroupName + Require ldap-group cn=mygroup,o=yourorg + +</Directory></pre> + + + <p>Pour un scénario d'autorisation un peu plus avancé, des + directives de conteneur d'autorisation comme <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> et + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> permettent d'appliquer une + logique telle que l'ordre dans lequel les autorisations sont + appliquées peut être entièrement contrôlé au niveau de la + configuration. Voir <a href="../mod/mod_authz_core.html#logic">Conteneurs + d'autorisations</a> pour un exemple de ce contrôle.</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="beyond" id="beyond">Pour aller plus loin qu'une simple +autorisation</a></h2> + + <p>La manière dont les autorisations sont accordées est désormais + beaucoup plus souple qu'une simple vérification auprès d'une seule + base de données. Il est maintenant possible de choisir l'ordre, la + logique et la manière selon lesquels une autorisation est + accordée.</p> + + <h3><a name="authandororder" id="authandororder">Appliquer logique et + ordonnancement</a></h3> + <p>Le contrôle de la manière et de l'ordre selon lesquels le + processus d'autorisation était appliqué + constituait une sorte de mystère par + le passé. Dans Apache 2.2, un mécanisme d'authentification basé + sur les fournisseurs a été développé afin de séparer le + véritable processus d'authentification de l'autorisation et ses + différentes fonctionnalités. Un des avantages colatéraux + résidait dans le fait que les fournisseurs d'authentification + pouvaient être configurés et appelés selon un ordre particulier + indépendant de l'ordre de chargement du module auth proprement + dit. Ce mécanisme basé sur les fournisseurs a été étendu au + processus d'autorisation. Ceci signifie que la directive + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> définit + non seulement quelles méthodes d'autorisation doivent être + utilisées, mais aussi l'ordre dans lequel elles sont appelées. + Les méthodes d'autorisation sont appelées selon l'ordre dans + lequel les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> apparaissent dans la + configuration.</p> + + <p>Avec l'introduction des directives de conteneur + d'autorisations <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + et <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>, la + configuration contrôle aussi le moment où les méthodes + d'autorisation sont appelées, et quels critères déterminent + l'autorisation d'accès. Voir <a href="../mod/mod_authz_core.html#logic">Conteneurs + d'autorisations</a> pour un exemple de la manière de les + utiliser pour exprimer des logiques d'autorisation + complexes.</p> + + <p>Par défaut, toutes les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> sont + traitées comme si elles étaient contenues dans une directive + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code>. En d'autres termes, il + suffit + qu'une méthode d'autorisation s'applique avec succès pour que + l'autorisation soit accordée.</p> + + + + <h3><a name="reqaccessctrl" id="reqaccessctrl">Utilisation de fournisseurs + d'autorisation pour le contrôle d'accès</a></h3> + <p>La vérification du nom d'utilisateur et du mot de passe ne + constituent qu'un aspect des méthodes d'authentification. + Souvent, le contrôle d'accès à certaines personnes n'est pas + basé sur leur identité ; il peut dépendre, par exemple de leur + provenance.</p> + + <p>Les fournisseurs d'autorisation <code>all</code>, + <code>env</code>, <code>host</code> et <code>ip</code> vous + permettent d'accorder ou refuser l'accès en + fonction de critères tels que le nom d'hôte ou l'adresse + IP de la machine qui effectue la requête.</p> + + <p>L'utilisation de ces fournisseurs est spécifiée à l'aide de + la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>. Cette directive + permet d'enregistrer quels fournisseurs d'autorisation + seront appelés dans le processus d'autorisation au cours du + traitement de la requête. Par exemple :</p> + + <pre class="prettyprint lang-config">Require ip <var>address</var></pre> + + + <p>où <var>adresse</var> est une adresse IP (ou une adresse IP + partielle) ou :</p> + + <pre class="prettyprint lang-config">Require host <var>domain_name</var></pre> + + + <p>où <var>nom_domaine</var> est un nom de domaine entièrement + qualifé (ou un nom de domaine partiel) ; vous pouvez indiquer + plusieurs adresses ou noms de domaines, si vous le désirez.</p> + + <p>Par exemple, si vous voulez rejeter les spams dont une + machine vous inonde, vous pouvez utiliser ceci :</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 10.252.46.165 +</RequireAll></pre> + + + <p>Ainsi, les visiteurs en provenance de cette adresse ne + pourront pas voir le contenu concerné par cette directive. Si, + par contre, vous connaissez le nom de la machine, vous pouvez + utiliser ceci :</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not host host.example.com +</RequireAll></pre> + + + <p>Et si vous voulez interdire l'accès à toutes les machines + d'un domaine, vous pouvez spécifier une partie seulement de + l'adresse ou du nom de domaine :</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 192.168.205 + Require not host phishers.example.com moreidiots.example + Require not host ke +</RequireAll></pre> + + + <p>L'utilisation de la directive <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> + avec de multiples directives <code class="directive"><a href="../mod/mod_authz_core.html#require"><Require></a></code>, toutes avec la négation + <code>not</code>, n'accordera l'accès que si toutes les + conditions négatives sont vérifiées. En d'autres termes, l'accès + sera refusé si au moins une des conditions négatives n'est pas + vérifiée.</p> + + + + <h3><a name="filesystem" id="filesystem">Compatibilité ascendante du contrôle + d'accès</a></h3> + <p>L'adoption d'un mécanisme à base de fournisseurs pour + l'authentification, a pour effet colatéral de rendre inutiles + les directives <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> et <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code>. Cependant, et à + des fins de compatibilité ascendante vers les anciennes + configurations, ces directives ont été déplacées vers le module + <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code>.</p> + + <div class="warning"><h3>Note</h3> + <p>Les directives fournies par le module + <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> sont devenues obsolètes depuis + la refonte du module <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>. Mélanger d'anciennes + directives comme <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code> ou <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> avec des nouvelles comme + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> est techniquement + possible mais déconseillé. En effet, <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> a + été conçu pour supporter des configurations ne contenant que des anciennes + directives afin de faciliter le passage à la version 2.4. Voir le document + <a href="../upgrading.html">upgrading</a> pour plus de détails. + </p> + </div> + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="socache" id="socache">Mise en cache de l'authentification</a></h2> + <p>Dans certains cas, l'authentification constitue une charge + inacceptable pour un fournisseur d'authentification ou votre réseau. + Ceci est susceptible d'affecter les utilisateurs du module + <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> (ou les fournisseurs + tiers/personnalisés). Pour résoudre ce problème, HTTPD 2.3/2.4 + propose un nouveau fournisseur de mise en cache, + <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>, qui permet de mettre en cache + les données d'authentification, et ainsi réduire la charge du/des + fournisseurs(s) originels.</p> + <p>Cette mise en cache apportera un gain en performance substantiel + à certains utilisateurs.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="moreinformation" id="moreinformation">Pour aller plus loin . . .</a></h2> + <p>Vous pouvez aussi lire la documentation de + <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> et <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> + qui contient des informations supplémentaires à propos du + fonctionnement de tout ceci. + Certaines configurations d'authentification peuvent aussi être + simplifiées à l'aide de la directive <code class="directive"><a href="../mod/mod_authn_core.html#authnprovideralias"><AuthnProviderAlias></a></code>.</p> + + <p>Les différents algorithmes de chiffrement supportés par Apache + pour authentifier les données sont expliqués dans <a href="../misc/password_encryptions.html">PasswordEncryptions</a>.</p> + + <p>Enfin vous pouvez consulter la recette <a href="access.html">Contrôle + d'accès</a>, qui décrit un certain nombre de situations en relation + avec le sujet.</p> + +</div></div> +<div class="bottomlang"> +<p><span>Langues Disponibles: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</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">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2023 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> +<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">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/howto/auth.html.ja.utf8 b/docs/manual/howto/auth.html.ja.utf8 new file mode 100644 index 0000000..78519bd --- /dev/null +++ b/docs/manual/howto/auth.html.ja.utf8 @@ -0,0 +1,692 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>認証、承認、アクセス制御 - Apache HTTP サーバ バージョン 2.4</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p> +<p class="apache">Apache HTTP サーバ バージョン 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.4</a> > <a href="./">How-To / チュートリアル</a></div><div id="page-content"><div id="preamble"><h1>認証、承認、アクセス制御</h1> +<div class="toplang"> +<p><span>翻訳済み言語: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> +<div class="outofdate">この日本語訳はすでに古くなっている + 可能性があります。 + 最近更新された内容を見るには英語版をご覧下さい。 + </div> + + <p>「認証」とは、誰かが自分は誰であるかを主張した場合に、 + それを確認するための全過程を指します。「承認」とは、 + 誰かが行きたい場所に行けるように、あるいは欲しい情報を + 得ることができるようにするための全過程を指します。</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">関連するモジュールとディレクティブ</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#introduction">はじめに</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">準備</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">動作させる</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin"> +複数の人が入れるようにする</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">起こりえる問題</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">パスワードの保存形式を変える</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#multprovider">複数のプロバイダを使用する</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#beyond">単純な承認のその先</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">追加情報</a></li> +</ul><h3>参照</h3><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related">関連するモジュールとディレクティブ</a></h2> +<p>認証と承認の処理に関連する 3 種類のモジュールがあります。 +それぞれ少なくともひとつずつ必要です。</p> + +<ul> + <li>認証のタイプ ( + <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> ディレクティブ参照) + <ul> + <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> + <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li> + </ul> + </li> + <li>認証プロバイダ ( + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>, + <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> ディレクティブ参照) + + <ul> + <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_default.html">mod_authn_default</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + </ul> + </li> + <li>承認 ( + <code class="directive"><a href="../mod/core.html#require">Require</a></code> ディレクティブ参照) + <ul> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_default.html">mod_authz_default</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li> + </ul> + </li> +</ul> + + <p>これらのモジュールに加えて、<code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> + と <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> があります。 + この 2 つのモジュールは認証モジュールに共通なコアディレクティブを + 実装しています。</p> + + <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> は認証プロバイダと承認プロバイダの + 両方の機能を持っています。 + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> はホスト名、IP アドレスや + リクエストの特徴に基づいたアクセス制御を行いますが、 + 認証プロバイダのシステムの一部ではありません。 + mod_access との後方互換性のため、 + 新しいモジュールの <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> があります。</p> + + <p>様々なアクセス制御の行ない方については、 + <a href="access.html">アクセス制御</a>の方法をご覧ください。</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="introduction" id="introduction">はじめに</a></h2> + <p>もし機密の情報や、ごくごく少数グループの人向けの情報を + ウェブサイトに置くのであれば、この文書に書かれている + テクニックを使うことで、そのページを見ている人たちが + 望みの人たちであることを確実にできるでしょう。</p> + + <p>この文書では、多くの人が採用するであろう、 + ウェブサイトの一部分を保護する「一般的な」 + 方法についてカバーしています。</p> + + <div class="note"><h3>注意</h3> + <p>データが本当に機密なのであれば、認証に加えてさらに + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> を使うと良いでしょう。</p> + </div> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="theprerequisites" id="theprerequisites">準備</a></h2> + <p>この文書で取り扱われるディレクティブは、 + メインサーバ設定ファイル (普通は + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> + セクション中) か、あるいはディレクトリ毎の設定ファイル + (<code>.htaccess</code> ファイル) かで用います。</p> + + <p><code>.htaccess</code> ファイルを用いるのであれば、 + これらのファイルに認証用のディレクティブを置けるように + サーバの設定をしないといけないでしょう。これは + <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> + ディレクティブで可能になります。 + <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> + ディレクティブでは、ディレクトリ毎の設定ファイル中に置くことのできる + ディレクティブを、もしあれば、指定します。</p> + + <p>認証について話を進めているので、次のような + <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> + ディレクティブが必要になるでしょう。</p> + + <div class="example"><p><code> + AllowOverride AuthConfig + </code></p></div> + + <p>そうでなく、メインサーバ設定ファイルの中に + 直接置くのであれば、当然ながらそのファイルへの書き込み + 権限を持っていなければならないでしょう。</p> + + <p>また、どのファイルがどこに保存されているか知るために、 + サーバのディレクトリ構造について少し知っておく + 必要があるでしょう。 + これはそんなに難しくないので、この文書中で + ディレクトリ構造について知っておく必要がある場面では、 + 明らかになるようにします。</p> + + <p><code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> と <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> + の両方が httpd バイナリに静的に組み込み済みであるか、httpd.conf + 設定ファイルで動的にロードされるかして、httpd に組み込まれていなければ + なりません。これらの二つのモジュールは、設定ファイルのなかで非常に + 重要でウェブサーバの認証と承認で使用されるコアディレクティブと + その機能を提供しています。</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="gettingitworking" id="gettingitworking">動作させる</a></h2> + <p>では、サーバ上のあるディレクトリをパスワードで保護する + 基本手順を示します。</p> + + <p>まずはじめに、パスワードファイルを作ります。 + どの認証プロバイダを使うかによって、パスワードファイル生成の手順は + 大きく異なります。ここでの例では、手始めにテキストパスワードファイルを + 使います。</p> + + <p>このパスワードファイルは、ウェブからアクセスできる場所に + 置くべきではありません。他の人がパスワードファイルを + ダウンロードできないようにするためです。例えば、 + <code>/usr/local/apache/htdocs</code> でドキュメントを + 提供しているのであれば、パスワードファイルは + <code>/usr/local/apache/passwd</code> + などに置いた方が良いでしょう。</p> + + <p>ファイルを作るためには、Apache 付属の <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> + を使います。このコマンドは Apache をどこにインストールしようとも、 + インストールディレクトリの <code>bin</code> + ディレクトリ以下に置かれます。サードバーティ製のパッケージで + インストールした場合は、実行パスの中で見つかるでしょう。</p> + + <p>ファイルを作るには、次のようにタイプしてください。</p> + + <div class="example"><p><code> + htpasswd -c /usr/local/apache/passwd/passwords rbowen + </code></p></div> + + <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> は、パスワードを要求し、その後 + 確認のためにもう一度入力するように要求してきます。</p> + + <div class="example"><p><code> + # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br /> + New password: mypassword<br /> + Re-type new password: mypassword<br /> + Adding password for user rbowen + </code></p></div> + + <p>もし <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> がパスの中に入っていない場合は、 + もちろん、実行するためにプログラムまでのフルパスを + タイプする必要があります。デフォルトのインストール状態であれば、 + <code>/usr/local/apache/bin/htpasswd</code> + にプログラムが置かれています。</p> + + <p>次に、サーバがパスワードを要求するように設定して、 + どのユーザがアクセスを許されているかをサーバに知らせなければ + なりません。 <code>httpd.conf</code> を編集するか + <code>.htaccess</code> ファイルを使用するかで + 設定します。例えば、ディレクトリ + <code>/usr/local/apache/htdocs/secret</code> + を保護したい場合は、 + <code>/usr/local/apache/htdocs/secret/.htaccess</code> + か httpd.conf 中の <Directory + /usr/local/apache/htdocs/secret> セクションに + 配置して、次のディレクティブを使うことができます。</p> + + <div class="example"><p><code> + AuthType Basic<br /> + AuthName "Restricted Files"<br /> + # (Following line optional)<br /> + AuthBasicProvider file<br /> + AuthUserFile /usr/local/apache/passwd/passwords<br /> + Require user rbowen + </code></p></div> + + <p>個々のディレクティブについて見てみましょう。 + <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> + ディレクティブはどういう認証方法でユーザの認証を行うかを + 選択します。最も一般的な方法は <code>Basic</code> + で、これは <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> + で実装されています。しかしながら、 + これは気を付けるべき重要なポイントなのですが、 + Basic 認証はクライアントからサーバへ、 + パスワードを暗号化せずに送ります。ですからこの方法は、 + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> と組み合わせない状態では、 + 特に機密性の高いデータに対しては用いるべきでは + ありません。 Apache ではもう一つ別の認証方法: + <code>AuthType Digest</code> をサポートしています。 + この方法は <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> + で実装されていて、もっと安全です。 + 最近のクライアントは Digest + 認証をサポートしているようです。</p> + + <p><code class="directive"><a href="../mod/core.html#authname">AuthName</a></code> + ディレクティブでは、認証に使う <dfn>Realm</dfn> (訳注: 領域) + を設定します。Realm は大きく分けて二つの機能を提供します。 + 一つ目は、クライアントがパスワードダイアログボックスの + 一部としてユーザにこの情報をよく提示する、というものです。 + 二つ目には、クライアントが与えられた認証領域に対してどのパスワードを + 送信すれば良いのかを決定するために使われる、という機能です。</p> + + <p>例えば、<code>"Restricted Files"</code> 領域中で + 一度認証されれば、同一サーバ上で <code>"Restricted Files"</code> + Realm としてマークされたどんな領域でも、クライアントは + 自動的に同じパスワードを使おうと試みます。 + このおかげで、複数の制限領域に同じ realm を共有させて、 + ユーザがパスワードを何度も要求される事態を + 防ぐことができます。もちろん、セキュリティ上の理由から、 + サーバのホスト名が変わればいつでも必ず、 + クライアントは再びパスワードを尋ねる必要があります。</p> + + <p><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> + はデフォルト値が <code>file</code> なので、今回の場合は無くても構いません。 + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> や <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> + といった他のモジュールを使う場合には必要になります。 + </p> + + <p><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + ディレクティブは <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> で作った + パスワードファイルへのパスを設定します。 + ユーザ数が多い場合は、リクエスト毎のユーザの認証のための + プレーンテキストの探索が非常に遅くなることがあります。 + Apache ではユーザ情報を高速なデータベースファイルに + 保管することもできます。 + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> モジュールが + <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code> + ディレクティブを提供します。これらのファイルは <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> + プログラムで作成したり操作したりできます。 + <a href="http://modules.apache.org/">Apache + モジュールデータベース</a>中にあるサードパーティー製の + モジュールで、その他多くのタイプの認証オプションが + 利用可能です。</p> + + <p>最後に、<code class="directive"><a href="../mod/core.html#require">Require</a></code> + ディレクティブが、サーバのこの領域にアクセスできるユーザを + 指定することによって、プロセスの承認部分を提供します。 + 次のセクションでは、<code class="directive"><a href="../mod/core.html#require">Require</a></code> + ディレクティブの様々な用法について述べます。</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin"> +複数の人が入れるようにする</a></h2> + <p>上記のディレクティブは、ただ一人 (具体的にはユーザ名 + <code>rbowen</code> の誰か) がディレクトリに + 入れるようにします。多くの場合は、複数の人が + 入れるようにしたいでしょう。ここで + <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> + の登場です。</p> + + <p>もし複数の人が入れるようにしたいのであれば、 + グループに属するユーザの一覧の入っている、グループ名のついた + グループファイルを作る必要があります。このファイルの + 書式はきわめて単純で、お好みのエディタで生成できます。 + ファイルの中身は次のようなものです。</p> + + <div class="example"><p><code> + GroupName: rbowen dpitts sungo rshersey + </code></p></div> + + <p>一行にスペース区切りで、グループに所属するメンバーの + 一覧をならべるだけです。</p> + + <p>既に存在するパスワードファイルにユーザを加える場合は、 + 次のようにタイプしてください。</p> + + <div class="example"><p><code> + htpasswd /usr/local/apache/passwd/passwords dpitts + </code></p></div> + + <p>以前と同じ応答が返されますが、新しいファイルを + 作るのではなく、既にあるファイルに追加されています。 + (新しいパスワードファイルを作るには <code>-c</code> + を使います。)</p> + + <p>ここで次のようにして <code>.htaccess</code> ファイルを + 修正する必要があります。</p> + + <div class="example"><p><code> + AuthType Basic<br /> + AuthName "By Invitation Only"<br /> + # Optional line:<br /> + AuthBasicProvider file<br /> + AuthUserFile /usr/local/apache/passwd/passwords<br /> + AuthGroupFile /usr/local/apache/passwd/groups<br /> + Require group GroupName + </code></p></div> + + <p>これで、グループ <code>GroupName</code> にリストされていて、 + <code>password</code> ファイルにエントリがある人は、 + 正しいパスワードをタイプすれば入ることができるでしょう。</p> + + <p>もっと特定せずに複数のユーザが入れるようにする、 + もう一つの方法があります。グループファイルを作るのではなく、 + 次のディレクティブを使えばできます。</p> + + <div class="example"><p><code> + Require valid-user + </code></p></div> + + <p><code>require user rbowen</code> 行でなく、上記を使うと、 + パスワードファイルにリストされている人であれば誰でも + 許可されます。 + 単にパスワードファイルをグループ毎に分けておくことで、 + グループのような振る舞いをさせることもできます。 + このアプローチの利点は、Apache は二つではなく、 + ただ一つのファイルだけを検査すればよいという点です。 + 欠点は、たくさんのパスワードファイルを管理して、その中から + <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + ディレクティブに正しいファイルを参照させなければならない点です。</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="possibleproblems" id="possibleproblems">起こりえる問題</a></h2> + <p>Basic 認証が指定されている場合は、 + サーバにドキュメントをリクエストする度に + ユーザ名とパスワードを検査しなければなりません。 + これは同じページ、ページにある全ての画像を + リロードする場合であっても該当します + (もし画像も保護されたディレクトリから来るのであれば) 。 + 予想される通り、これは動作を多少遅くします。 + 遅くなる程度はパスワードファイルの大きさと比例しますが、 + これは、ファイルを開いてあなたの名前を発見するまで + ユーザ名のリストを読まなければならないからです。 + そして、ページがロードされる度にこれを行わなければ + なりません。</p> + + <p>結論としては、一つのパスワードファイルに置くことのできる + ユーザ数には実質的な限界があります。 + この限界はサーバマシンの性能に依存して変わりますが、 + 数百のエントリを越えたあたりから速度低下が見られると予期されています。 + その時は他の認証方法を考慮に入れた方が良いでしょう。</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="dbmdbd" id="dbmdbd">パスワードの保存形式を変える</a></h2> + + <p>プレーンテキストでパスワードを保存する方法には上記の問題があり、 + データベースのような別の場所にパスワードを保存したいと思う + かもしれません。</p> + + <p><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> と <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> + を使うと、それができるようになります。 + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicsource">AuthBasicSource</a></code> + で file の代わりに、<code>dbm</code> あるいは <code>dbd</code> + を格納形式として選べます。</p> + + <p>テキストファイルの代わりに dbm ファイルを選択する場合は、たとえば次のようにします。</p> + + <div class="example"><p><code> + <Directory /www/docs/private><br /> + AuthName "Private"<br /> + AuthType Basic<br /> + AuthBasicProvider dbm<br /> + AuthDBMUserFile /www/passwords/passwd.dbm<br /> + Require valid-user<br /> + </Directory> + </code></p></div> + + <p>この他のオプションも存在します。詳細に関しては + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> のドキュメントをご覧ください。</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="multprovider" id="multprovider">複数のプロバイダを使用する</a></h2> + + <p>認証承認アーキテクチャに基づいている新しいプロバイダを使うと、 + 認証承認の方法をひとつに縛る必要がなくなります。 + いくつものプロバイダを組み合わせて、自分の望みの挙動にできます。 + 次の例では file 認証プロバイダと ldap 認証プロバイダを + 組み合わせています。</p> + + <div class="example"><p><code> + <Directory /www/docs/private><br /> + AuthName "Private"<br /> + AuthType Basic<br /> + AuthBasicProvider file ldap<br /> + AuthUserFile /usr/local/apache/passwd/passwords<br /> + AuthLDAPURL ldap://ldaphost/o=yourorg<br /> + Require valid-user + </code></p></div> + + <p>この例では、まず file プロバイダがユーザ認証を試みます。 + 認証できなかった場合には、ldap プロバイダが呼び出されます。 + 組織で複数の認証格納方法を使っている際などに、 + この方法を使って認証のスコープを拡大できます。 + もうひとつのシナリオは、ひとつの認証タイプと異なる承認を + 組み合わせる方法でしょう。たとえば、パスワードファイルで認証して、 + ldap ディレクトリで承認を行うといった場合です。</p> + + <p>認証プロバイダを複数実装できるように、承認方法も複数使用できます。 + この例では file グループ承認と ldap グループ承認を使っています。</p> + + <div class="example"><p><code> + <Directory /www/docs/private><br /> + AuthName "Private"<br /> + AuthType Basic<br /> + AuthBasicProvider file<br /> + AuthUserFile /usr/local/apache/passwd/passwords<br /> + AuthLDAPURL ldap://ldaphost/o=yourorg + AuthGroupFile /usr/local/apache/passwd/groups<br /> + Require group GroupName<br /> + Require ldap-group cn=mygroup,o=yourorg + </code></p></div> + + <p>承認をより細かく制御したい場合は、 + <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyall>"><SatisfyAll></a></code> と + <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyone>"><SatisfyOne></a></code> + ディレクティブを使って AND/OR ロジックで指定し、設定ファイルで + 承認の処理順番の制御ができるようになっています。 + これらのディレクティブをどのように使えるか、網羅した例をご覧ください。</p> + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="beyond" id="beyond">単純な承認のその先</a></h2> + + <p>承認の方法は、ひとつのデータソースを見て一回だけチェックするのと比べて、 + ずっと多彩な適用方法ができます。 + 承認処理の適用順序や制御、選択ができるようになりました。</p> + + <h3><a name="authandororder" id="authandororder">AND/OR ロジックの適用と順序付け</a></h3> + <p>承認がどのような順序で適用されているか、また、それをどのように制御するかは、 + これまで混乱を招いていました。 + Apache 2.2 ではプロバイダベースの認証メカニズムが導入され、 + 承認処理から認証処理とサポート機能とが切り分けられました。 + これによるひとつの効果として、 + 認証モジュールのロード順やモジュール自体の順序に依存することなく、 + 指定した順番で認証プロバイダが呼び出せるよう、 + 設定できるようになりました。 + このプロバイダメカニズムは承認処理でも導入されています。 + つまり、<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + ディレクティブは単にどの承認手法が使われるかを指定するだけではなく、 + それらの呼び出し順序も指定できるようになりました。 + 複数の承認手法があるとき、その呼び出し順は、設定ファイルの + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> ディレクティブ中で + 現れた順序と同じになります。</p> + + <p>追加で導入された + <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyall>"><SatisfyAll></a></code>, + <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyone>"><SatisfyOne></a></code> + ディレクティブを使って、承認手法がいつ呼び出され、アクセスが許可された際に + どの手続きが適用されるか指定することができます。 + たとえば、次の承認ブロックのロジックを見てみましょう:</p> + + <div class="example"><p><code> + # if ((user == "John") ||<br /> + # ((Group == "admin")<br /> + # && (ldap-group <ldap-object> contains auth'ed_user)<br /> + # && ((ldap-attribute dept == "sales")<br /> + # || (file-group contains auth'ed_user))))<br /> + # then<br /> + # auth_granted<br /> + # else<br /> + # auth_denied<br /> + #<br /> + <Directory /www/mydocs><br /> + <span class="indent"> + Authname ...<br /> + AuthBasicProvider ...<br /> + ...<br /> + Require user John<br /> + <SatisfyAll><br /> + <span class="indent"> + Require Group admins<br /> + Require ldap-group cn=mygroup,o=foo<br /> + <SatisfyOne><br /> + <span class="indent"> + Require ldap-attribute dept="sales"<br /> + Require file-group<br /> + </span> + </SatisfyOne><br /> + </span> + </SatisfyAll><br /> + </span> + </Directory> + </code></p></div> + + <p>デフォルトでは <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + ディレクティブは OR 操作として扱われます。つまり、もし指定した承認手法の + ひとつでも合格すれば、承認されます。 + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> ディレクティブのセットを + ひとつの <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyall>"><SatisfyAll></a></code> + ブロックで囲むとAND 操作となり、全ての承認手法で合格しなければ許可されません。</p> + + + + <h3><a name="reqaccessctrl" id="reqaccessctrl">アクセス制御における Require と Reject の使い方</a></h3> + <p>ユーザ名とパスワードによる認証は全体の一部分でしかありません。 + 誰がアクセスしてきたかといった情報以外の条件を使いたい、 + とよく思うことでしょう。 + たとえば、どこからアクセスしてきているか、といった具合です。</p> + + <p>承認プロバイダ <code class="directive"><a href="../mod/mod_authz_host.html#all">all</a></code>, + <code class="directive"><a href="../mod/mod_authz_host.html#env">env</a></code>, + <code class="directive"><a href="../mod/mod_authz_host.html#host">host</a></code>, + <code class="directive"><a href="../mod/mod_authz_host.html#ip">ip</a></code> + を使うと、リクエストを送信してきているマシンのホスト名や IP アドレス + といった、ホストベースでのアクセス制御ができます。</p> + + <p>これらプロバイダの扱いは + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> や + <code class="directive"><a href="../mod/mod_authz_core.html#reject">Reject</a></code> で + 指定されます。これらのディレクティブは承認プロバイダを登録し、 + リクエスト処理の承認段階で呼び出されます。たとえば:</p> + + <div class="example"><p><code> + Require ip <var>address</var> + </code></p></div> + + <p>ここで、<var>address</var> は IP アドレス (あるいは IP アドレスの + 一部) か : </p> + + <div class="example"><p><code> + Require host <var>domain_name</var> + </code></p></div> + + <p>ここで <var>domain_name</var> は FQDN (あるいはドメイン名の一部) + で、必要であれば複数のアドレスやドメイン名を書くことができます。</p> + + <p>たとえば、スパムメッセージを送信してくる誰かを拒否したい場合、 + 次のようになります : </p> + + <div class="example"><p><code> + Reject ip 10.252.46.165 + </code></p></div> + + <p>このディレクティブが有効な範囲のコンテンツに対しては、 + そのアドレスからアクセスしてきても見ることができません。 + もしマシン名がわかっていて IP アドレスよりもそちらで + 指定したいのであれば、そのマシン名が使えます。</p> + + <div class="example"><p><code> + Reject host <var>host.example.com</var> + </code></p></div> + + <p>また、特定のドメインからのアクセス全てをブロックしたい場合は、 + IP アドレスの一部や、ドメイン名が指定できます :</p> + + <div class="example"><p><code> + <SatisfyAll><br /> + <span class="indent"> + Reject ip <var>192.168.205</var><br /> + Reject host <var>phishers.example.com</var> <var>moreidiots.example</var><br /> Reject host ke<br /> + </span> + </SatisfyAll> + </code></p></div> + + <p><code class="directive"><a href="../mod/mod_authz_host.html#reject">Reject</a></code> ディレクティブを + <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyall>"><SatisfyAll></a></code> ブロックの中で使うと、 + 許可したいグループにのみアクセスができるように確認できます。</p> + + <p>上記の例では <code class="directive"><a href="../mod/mod_authz_core.html#<satisfyall>"><SatisfyAll></a></code> + を使って、アクセスに合格する前段階で、全ての + <code class="directive"><a href="../mod/mod_authz_host.html#reject">Reject</a></code> ディレクティブが + 満たされていることを確認しています。</p> + + + + <h3><a name="filesystem" id="filesystem">アクセス制御の後方互換性</a></h3> + <p>認証プロバイダベースの機構があるため、以前使用されていたディレクティブ + <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code> + は必要なくなりました。 + とはいうものの、古い設定ファイルでの後方互換性を提供するため、 + これらのディレクティブは <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> モジュールに移されました。</p> + + <p>これらのディレクティブの抱えていた問題のひとつに、承認の設定行とアクセス制御の設定行の + 関係がとてもあいまいだったことが挙げられます。 + <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code> ディレクティブは + リクエスト処理中でそれ自身を呼び出すことによって、これらの 2 つの処理段階を結びつけようとします。 + 現在は、これらのディレクティブは <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> に移動し、 + 新しい認証ディレクティブと古いアクセス制御ディレクティブを混ぜて使うことは + 難しくなっています。この問題のため、<code class="module"><a href="../mod/mod_authz_default.html">mod_authz_default</a></code> モジュールを + ロードすることがとても重要で、必須になっています。 + <code class="module"><a href="../mod/mod_authz_default.html">mod_authz_default</a></code> モジュールの主な目的は、どの承認プロバイダで + 処理されなかった承認リクエストを受けることにあります。 + しかし、古いアクセス制御ディレクティブが用いられた場合には、 + アクセス制御と承認を結びつけて、すべての処理段階の出力結果を見てアクセスに合格するかを決めています。 + ですから、古いディレクティブがうまく動作しない場合は、 + <code class="module"><a href="../mod/mod_authz_default.html">mod_authz_default</a></code> がロードされていないからかもしれない、 + と疑ってみてください。</p> + + + +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="moreinformation" id="moreinformation">追加情報</a></h2> + <p>これら全てがどのように動作するかについて + もっと多くの情報が書かれている <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> と + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> + の文書も読むとよいでしょう。 + <code class="directive"><a href="../mod/mod_authn_core.html#<authnprovideralias>"><AuthnProviderAlias></a></code> + ディレクティブを使うと、特定の認証設定が簡単に書けるようになります。</p> + + <p><a href="access.html">アクセス制御</a>の方法も、 + 関連するトピックがたくさん記載されていますので、ご覧ください。</p> + +</div></div> +<div class="bottomlang"> +<p><span>翻訳済み言語: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</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">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2023 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p> +<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/howto/auth.html.ko.euc-kr b/docs/manual/howto/auth.html.ko.euc-kr new file mode 100644 index 0000000..a6013b8 --- /dev/null +++ b/docs/manual/howto/auth.html.ko.euc-kr @@ -0,0 +1,355 @@ +<?xml version="1.0" encoding="EUC-KR"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head> +<meta content="text/html; charset=EUC-KR" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>(Authentication), Ѻο(Authorization), +(Access Control) - Apache HTTP Server Version 2.4</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/"></a> | <a href="../mod/directives.html">þ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html"></a> | <a href="../sitemap.html">Ʈ</a></p> +<p class="apache">Apache HTTP Server Version 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.4</a> > <a href="./">How-To / Tutorials</a></div><div id="page-content"><div id="preamble"><h1>(Authentication), Ѻο(Authorization), +(Access Control)</h1> +<div class="toplang"> +<p><span> : </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</div> +<div class="outofdate"> ֽ ƴմϴ. + ֱٿ ϼ.</div> + + <p>(authentication) ڽ ϴ + Ȯϴ ̴. Ѻο(authorization) + Ȥ ϴ ϴ ̴.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related"> þ</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#introduction">Ұ</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">⺻ </a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">⺻ ϱ</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin"> 鿩</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems"> ִ </a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#whatotherneatstuffcanido">ٸ Ѱ?</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation"> </a></li> +</ul><h3></h3><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related"> þ</a></h2> + <table class="related"><tr><th>õ </th><th>õ þ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li><li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li><li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li><li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code></li><li><code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code></li><li><code class="directive"><a href="../mod/core.html#authname">AuthName</a></code></li><li><code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code></li><li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li><li><code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li></ul></td></tr></table> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="introduction" id="introduction">Ұ</a></h2> + <p> Ʈ ִ Ҽ 鸸 ̰ų + ̵鸸 , ۿ ϴ Ͽ + ϴ ִ.</p> + + <p> Ʈ Ϻθ ȣϱ + ϴ "ǥ" ٷ.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="theprerequisites" id="theprerequisites">⺻ </a></h2> + <p> ۿ ٷ þ ּ(Ϲ + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> + )̳ 丮 (<code>.htaccess</code> ) + Ѵ.</p> + + <p><code>.htaccess</code> Ϸ Ͽ ִ + þ ϵ ؾ Ѵ. ̸ + 丮 Ͽ þ ִ ϴ + <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> þ + Ѵ.</p> + + <p>⼭ ٷ , + <code>AllowOverride</code> þ ʿϴ.</p> + + <div class="example"><p><code> + AllowOverride AuthConfig + </code></p></div> + + <p>Ȥ þ ּϿ ´ٸ, Ͽ + ־ Ѵ.</p> + + <p> ȣ ִ ˱ 丮 + ˾ƾѴ. ʰ, + ڼ ̴.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="gettingitworking" id="gettingitworking">⺻ ϱ</a></h2> + <p> 丮 ȣ ȣϴ ⺻ + Ѵ.</p> + + <p> ȣ Ѵ. + ־ Ѵ. ٸ ȣ ٿε + ϰϱ ؼ. , + <code>/usr/local/apache/htdocs</code> ִٸ ȣ() + <code>/usr/local/apache/passwd</code> д.</p> + + <p>ġ Ե <a href="../programs/htpasswd.html">htpasswd</a> Ͽ + ȣ . α ġ ġ + <code>bin</code> 丮 ִ. + ԷѴ.</p> + + <div class="example"><p><code> + htpasswd -c /usr/local/apache/passwd/passwords rbowen + </code></p></div> + + <p><code>htpasswd</code> ȣ , Ȯ + ȣ ٽ Է϶ ûѴ.</p> + + <div class="example"><p><code> + # htpasswd -c /usr/local/apache/passwd/passwords rbowen<br /> + New password: mypassword<br /> + Re-type new password: mypassword<br /> + Adding password for user rbowen + </code></p></div> + + <p> <code>htpasswd</code> ο ٸ + ü θ Էؾ Ѵ. ϴ + <code>/usr/local/apache/bin/htpasswd</code> + ִ.</p> + + <p> ȣ ûϵ ϰ, + ˷ Ѵ. + <code>httpd.conf</code> ϰų <code>.htaccess</code> + Ͽ Ѵ. , + <code>/usr/local/apache/htdocs/secret</code> 丮 + ȣϷ, Ʒ þ + <code>/usr/local/apache/htdocs/secret/.htaccess</code> ̳ + <code>httpd.conf</code> <Directory + /usr/local/apache/apache/htdocs/secret> ǿ + Ѵ.</p> + + <div class="example"><p><code> + AuthType Basic<br /> + AuthName "Restricted Files"<br /> + AuthUserFile /usr/local/apache/passwd/passwords<br /> + Require user rbowen + </code></p></div> + + <p>þ ϳ 캸. <code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code> þ ڸ + Ѵ. Ϲ <code>Basic</code>, + <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> Ѵ. Basic + ȣ ȣȭ ʰ . + Ƿ ڷḦ ȣϱ ϸ ȵȴ. + ġ <code>AuthType Digest</code> Ѵ. + <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> ϸ, ſ + ϴ. ֱ Ŭ̾Ʈ鸸 Digest Ѵٰ + Ѵ.</p> + + <p><code class="directive"><a href="../mod/core.html#authname">AuthName</a></code> þ + <dfn>(realm)</dfn> Ѵ. + ΰ Ѵ. ù° Ŭ̾Ʈ + ȣ ȭâ ش. ι° Ͽ + Ŭ̾Ʈ Ư ȣ Ѵ.</p> + + <p> , ϴ Ŭ̾Ʈ <code>"Restricted Files"</code> + Ͽٸ, Ŭ̾Ʈ ڵ + <code>"Restricted Files"</code> ǥõ + ȣ õѴ. + ϸ ڰ ȣ Է ʾƵ ȴ. + Ȼ Ŭ̾Ʈ ȣƮ ٸ + ȣ .</p> + + <p><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + þ 츮 <code>htpasswd</code> ȣ + θ Ѵ. ڰ ٸ û Ź ڸ + ϱ Ϲ ˻ϴµ ð + ɸ ִ. ġ Ÿ̽ Ͽ + ִ. <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code> þ + Ѵ. <a href="../programs/dbmmanage.html">dbmmanage</a> + α Ͽ ȣ ٷ. <a href="http://modules.apache.org/">ġ + Ÿ̽</a> ٸ ϴ ڰ + ִ.</p> + + <p> <code class="directive"><a href="../mod/core.html#require">Require</a></code> + þ Ư ִ ڸ Ͽ + Ѻο Ѵ. <code>require</code> þ + ϴ پ Ѵ.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin"> 鿩</a></h2> + <p> þ 丮 (ڸ <code>rbowen</code>) + 鿩. κ 鿩 + ̴. <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> + .</p> + + <p> 鿩 ʹٸ 쿡 + ڵ ִ ˷ִ ʿϴ. + ſ Ͽ, ƹ γ ִ. ϳ + .</p> + + <div class="example"><p><code> + GroupName: rbowen dpitts sungo rshersey + </code></p></div> + + <p>׳ ̴.</p> + + <p> ȣϿ ڸ ߰Ϸ ԷѴ</p> + + <div class="example"><p><code> + htpasswd /usr/local/apache/passwd/passwords dpitts + </code></p></div> + + <p> , ʰ Ͽ ڸ + ߰Ѵ. (<code>-c</code> ɼ ȣ ).</p> + + <p> <code>.htaccess</code> Ѵ.</p> + + <div class="example"><p><code> + AuthType Basic<br /> + AuthName "By Invitation Only"<br /> + AuthUserFile /usr/local/apache/passwd/passwords<br /> + AuthGroupFile /usr/local/apache/passwd/groups<br /> + Require group GroupName + </code></p></div> + + <p> <code>GroupName</code> 쿡 ϸ + <code>password</code> Ͽ ִ ڰ ùٸ + ȣ Էϸ Ѵ.</p> + + <p> Ϲ ڸ 鿩 ٸ ִ. + ʿ þ ϱ⸸ ϸ ȴ.</p> + + <div class="example"><p><code> + Require valid-user + </code></p></div> + + <p><code>Require user rbowen</code> þ ϸ + ȣϿ ִ ùٸ ȣ Էϱ⸸ ϸ + Ѵ. 캰 ٸ ȣ Ͽ + ȿ ִ. ġ ΰ(ȣϰ + ) ƴ Ѱ(ȣ) ˻ϸ ȴٴ + ̴. ȣ ؾ ϰ, <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> þ + Ȯ ȣ ؾ ϴ ̴.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="possibleproblems" id="possibleproblems"> ִ </a></h2> + <p>Basic û ڸ + ȣ ȮѴ. ħ + ( ȣ ȣϴ 丮 ִ ) ִ + ٽ ȮѴ. ϵ ӵ . + ȣ ڸ ã + ϱ ȣ ũⰡ Ŀ . + ۾ û Ѵ.</p> + + <p> ȣϿ ִ ڼ + Ѱ谡 ִ. Ѱ ϴ ɿ ٸ, + 鰳 Ѵ´ٸ ٰ ϰ ٸ + ؾ Ѵ.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="whatotherneatstuffcanido" id="whatotherneatstuffcanido">ٸ Ѱ?</a></h2> + <p>ڸ ȣ ٰ ƴϴ. + ҿ ٸ ڸ 鿩 + ִ.</p> + + <p><code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> + <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code> þ + û ǻ ȣƮ Ȥ ȣƮ ּҸ + ϰų źѴ. <code class="directive"><a href="../mod/mod_authz_host.html#order">Order</a></code> þ + þ Ͽ, ġ Ģ + ˸.</p> + + <p>̵ þ .</p> + + <div class="example"><p><code> + Allow from <var>address</var> + </code></p></div> + + <p>⼭ <var>address</var> IP ּ(Ȥ IP ּ Ϻ) + θ(Ȥ θ Ϻ)̴. Ѵٸ ּҳ + θ ִ.</p> + + <p> , Խǿ ø ִٸ + ִ.</p> + + <div class="example"><p><code> + Deny from 205.252.46.165 + </code></p></div> + + <p> ּҿ 湮ڴ þ ȣϴ + . IP ּ ǻ + ִ.</p> + + <div class="example"><p><code> + Deny from <var>host.example.com</var> + </code></p></div> + + <p>, ü ּҳ θ Ϻθ + Ѵ.</p> + + <div class="example"><p><code> + Deny from <var>192.101.205</var><br /> + Deny from <var>cyberthugs.com</var> <var>moreidiots.com</var><br /> + Deny from ke + </code></p></div> + + <p><code class="directive"><a href="../mod/mod_authz_host.html#order">Order</a></code> + <code class="directive"><a href="../mod/mod_authz_host.html#deny">Deny</a></code> <code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> þ + Ͽ ϴ ִ.</p> + + <div class="example"><p><code> + Order deny,allow<br /> + Deny from all<br /> + Allow from <var>dev.example.com</var> + </code></p></div> + + <p><code class="directive"><a href="../mod/mod_authz_host.html#allow">Allow</a></code> + þ ϸ, ش ȣƮ ڸ ϰ ű + ߰ ϹǷ ϴ Ѵ. + Ư <em></em> ϱ Ѵ.</p> +</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="moreinformation" id="moreinformation"> </a></h2> + <p><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> ϴ + ִ.</p> +</div></div> +<div class="bottomlang"> +<p><span> : </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p> +</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&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2023 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> +<p class="menu"><a href="../mod/"></a> | <a href="../mod/directives.html">þ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html"></a> | <a href="../sitemap.html">Ʈ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file diff --git a/docs/manual/howto/auth.html.tr.utf8 b/docs/manual/howto/auth.html.tr.utf8 new file mode 100644 index 0000000..fda3281 --- /dev/null +++ b/docs/manual/howto/auth.html.tr.utf8 @@ -0,0 +1,639 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head> +<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> +<!-- + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + This file is generated from xml source: DO NOT EDIT + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + --> +<title>Kimlik Doğrulama ve Yetkilendirme - Apache HTTP Sunucusu Sürüm 2.4</title> +<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> +<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> +<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" /> +<script src="../style/scripts/prettify.min.js" type="text/javascript"> +</script> + +<link href="../images/favicon.ico" rel="shortcut icon" /></head> +<body id="manual-page"><div id="page-header"> +<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p> +<p class="apache">Apache HTTP Sunucusu Sürüm 2.4</p> +<img alt="" src="../images/feather.png" /></div> +<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> +<div id="path"> +<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="../">Sürüm 2.4</a> > <a href="./">Nasıllar ve Öğreticiler</a></div><div id="page-content"><div id="preamble"><h1>Kimlik Doğrulama ve Yetkilendirme</h1> +<div class="toplang"> +<p><span>Mevcut Diller: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" title="Türkçe"> tr </a></p> +</div> + + <p>Kimlik Doğrulama istediğiniz kişileri teyid etme işlemidir. + Yetkilendirme ise kişilerin nereye gireceklerine ve hangi bilgiye + ulaşacaklarına müsaade edilmesi işlemidir.</p> + + <p>Genel erişim denetimi için <a href="access.html">Erişim Denetimi + Nasıl</a> belgesine bakınız.</p> +</div> +<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#related">İlgili modüller ve Yönergeler</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#introduction">Giriş</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#theprerequisites">Ön gereksinimler</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#gettingitworking">Çalışmaya Başlama</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#lettingmorethanonepersonin">Birden çok kişiye izin vermek</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#possibleproblems">Olası Sorunlar</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#dbmdbd">Diğer parola depolama yöntemleri</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#multprovider">Birden çok tedarikçi kullanmak</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#beyond">Yetkilendirmenin biraz ötesi</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#socache">Kimlik Doğrulama Arabelleği</a></li> +<li><img alt="" src="../images/down.gif" /> <a href="#moreinformation">Daha fazla bilgi</a></li> +</ul><h3>Ayrıca bakınız:</h3><ul class="seealso"><li><a href="#comments_section">Yorumlar</a></li></ul></div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="related" id="related">İlgili modüller ve Yönergeler</a></h2> + + <p>Kimlik Doğrulama ve yetkilendirme işlemi ile ilgili üç tür modül + vardır. Genellikle her bir gruptan en az bir modül seçeceksiniz.</p> + + <ul> + <li>Kimlik Doğrulama türü (bkz. <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> yönergesi) + <ul> + <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li> + <li><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code></li> + </ul> + </li> + + <li>Kimlik Doğrulayıcı (bkz. + <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> + ve <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> yönergeleri) + <ul> + <li><code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code></li> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code></li> + </ul> + </li> + <li>Yetkilendirme (bkz. + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> yönergesi) + <ul> + <li><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_owner.html">mod_authz_owner</a></code></li> + <li><code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code></li> + </ul> + </li> + </ul> + + <p>Bu modüllere ek olarak, <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> ve + <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> modülleri bulunur. Bu modüller + yetkilendirme modüllerinin çekirdeğini oluşturan temel yönergeleri + gerçekler.</p> + + <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> modülü kimlik doğrulama ve + yetkilendirme işlemlerinin ikisini birden gerçekleştirir. + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> modülü bu işlemleri sunucu adına, IP + adresine ve isteğin karekteristiğine bağlı olarak gerçekleştirir. + Ancak kimlik doğrulama sisteminin bir parçası değildir. + <code>mod_access</code> ile geriye uyumluluk için + <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> diye bir modül daha vardır.</p> + + <p>Muhtemelen göz atmak isteyeceğiniz <a href="access.html">Erişim + Denetimi</a> nasıl belgesi, sunucuya erişimlerin çeşitli yollarından + bahsetmektedir.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="introduction" id="introduction">Giriş</a></h2> + <p>Sitenizde sadece küçük bir grup insana hitap eden ya da hassas + bilgileriniz varsa, bu makaledeki teknikleri kullanarak dilediğiniz + kişilerin sadece dilediğiniz sayfaları görüntülemesini + sağlayabilirsiniz.</p> + + <p>Bu makale sitenizin bazı parçalarını korumak için kullanacağınız + "standart" yolları içermektedir.</p> + + <div class="note"><h3>Bilginize:</h3> + <p>Eğer bilgileriniz gerçekten gizliliğe ihtiyaç duyuyorsa kimlik + doğrulamasına ilaveten <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> modülünü de + kullanabilirsiniz.</p> + </div> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="theprerequisites" id="theprerequisites">Ön gereksinimler</a></h2> + + <p>Bu makalede bahsi geçen yönergeler ya ana sunucu yapılandırma + dosyasında (genellikle <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> bölümünde) ya da dizin içi + yapılandırma dosyalarında (<code>.htaccess</code> dosyaları) + bulunmak zorundadır.</p> + + <p>Eğer <code>.htaccess</code> dosyalarını kullanmayı + tasarlıyorsanız, kimlik doğrulama yönergelerine bu dosyaların içine + koymaya izin veren sunucu yapılandırmasına ihtiyacınız olacaktır. + Bunun için, dizin içi yapılandırma dosyalarının içine hangi + yönergelerin konacağını belirleyen <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> yönergesi kullanılır.</p> + + <p>Kimlik doğrulamadan sözettiğimize göre, aşağıda gösterilen + şekilde bir <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> yönergesine ihtiyacınız olacaktır:</p> + + <pre class="prettyprint lang-config">AllowOverride AuthConfig</pre> + + + <p>Yönergeleri doğrudan ana sunucunun yapılandırma dosyasına + koyacaksanız bu dosyaya yazma izniniz olmalıdır.</p> + + <p>Bazı dosyaların nerede saklandığını bilmek için sunucunun dizin + yapısı hakkında biraz bilgi sahibi olmanız gerekmektedir. Bu çok da + zor olmamakla birlikte bu noktaya gelindiğinde konuyu + netleştireceğiz.</p> + + <p>Ayrıca <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> ve + <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> modülleri ya <code>httpd</code> + çalıştırılabilirinin içinde derlenmiş olmalı ya da + <code>httpd.conf</code> yapılandırma dosyası ile yüklenmelidir. Bu + iki modül HTTP sunucusunda kimlik doğrulama ve yetkilendirme + kullanımı ve yapılandırması için büyük öneme sahip temel yönergeleri + ve işlevselliği sağlar.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="gettingitworking" id="gettingitworking">Çalışmaya Başlama</a></h2> + <p>Burada, sunucu üzerindeki bir dizini parolayla korumak için + gereken temel bilgiler verilecektir.</p> + + <p>İlk olarak bir parola dosyası oluşturmalısınız. Bunu nasıl + yapacağınız, özellikle, seçtiğiniz kimlik doğrulayıcıya göre + değişiklik gösterir. Bunun üzerinde ileride daha fazla duracağız. + Başlangıç için parolaları bir metin dosyasında tutacağız.</p> + + <p>Bu dosya belge kök dizini altında olmamalıdır. Böylece başkaları + parola dosyasını indiremezler. Örneğin belgeleriniz + <code>/usr/local/apache/htdocs</code> üzerinden sunuluyorsa parola + dosyanızı <code>/usr/local/apache/passwd</code> dizininde + tutabilirsiniz.</p> + + <p>Dosyayı oluşturmak için Apache ile gelen + <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> uygulamasını kullanacağız. Bu uygulama + Apache'nin kurulumunda belirtilen <code>bin</code> dizininde + bulunur. Eğer Apache'yi üçüncü parti paketlerden kurduysanız, + çalıştırılabilir dosyaların bulunduğu yollar üzerinde olmalıdır.</p> + + <p>Bir dosya oluşturmak için şunları yazın:</p> + + <div class="example"><p><code> + htpasswd -c /usr/local/apache/passwd/passwords umut + </code></p></div> + + <p><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> size parola soracaktır arkasından da + teyit etmek için parolayı tekrar girmenizi isteyecektir:</p> + + <div class="example"><p><code> + # htpasswd -c /usr/local/apache/passwd/passwords umut<br /> + New password: parolam<br /> + Re-type new password: parolam<br /> + Adding password for user umut + </code></p></div> + + <p>Eğer <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> normal yollar üzerinde değilse + çalıştırmak için dosyanın bulunduğu tam yeri belirtmeniz + gerekecektir. Dosyanın öntanımlı kurulum yeri: + <code>/usr/local/apache2/bin/htpasswd</code></p> + + <p>Bundan sonra, sunucuyu, parola sorması için ve kimlerin erişim + izni olacağını belirlemek için yapılandıracaksınız. Bu işlemi + <code>httpd.conf</code>dosyasını düzenleyerek ya da bir + <code>.htaccess</code> dosyası kullanarak yapabilirsiniz. Örneğin, + <code>/usr/local/apache/htdocs/secret</code> dizinini korumayı + amaçlıyorsanız, şu yönergeleri kullanabilirsiniz. Bu yönergeleri + <code>/usr/local/apache/htdocs/secret/.htaccess</code> dosyası içine + veya <code>httpd.conf</code> içindeki <Directory + "/usr/local/apache/htdocs/secret"> bölümüne koyabilirsiniz.</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "Gizli Dosyalar" +# (Aşağıdaki satırın kullanımı isteğe bağlıdır) +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +Require user umut</pre> + + + <p>Bu yönergeleri tek tek inceleyelim. + <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> yönergesi + kullanıcının kimliğini doğrulamakta kullanılacak yöntemi seçer. En + çok kullanılan yöntem <code>Basic</code>'tir ve bu yöntem + <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> modülüyle gerçeklenmiştir. Temel + (<code>Basic</code>) kimlik doğrulamasıyla gönderilen parolanın + şifrelenmeyeceğini unutmayın. Bu yöntem, bu sebepten dolayı + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> eşliğinde kullanılmadığı sürece yüksek + hassasiyete sahip bilgiler için kullanılmamalıdır. Apache bir başka + kimlik doğrulama yöntemini daha destekler: <code>AuthType + Digest</code>. Bu yöntem <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> tarafından + gerçeklenmişti ve çok daha güvenli olacağı düşünülmüştü. Bu artık + geçerliliğini yitirdiğinden bağlantının bundan böyle + <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> ile şifrelenmesi gerekmektedir.</p> + + <p><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code> yönergesi + ile kimlik doğrulamada kullanılacak <dfn>Saha</dfn> da + belirtilebilir. Saha kullanımının, başlıca iki işlevi vardır. + Birincisi, istemci sıklıkla bu bilgiyi kullanıcıya parola diyalog + kutusunun bir parçası olarak sunar. İkincisi, belirtilen kimlik + doğrulamalı alan için gönderilecek parolayı belirlerken istemci + tarafından kullanılır.</p> + + <p>Örneğin, bir istemcinin <code>"Gizli Dosyalar"</code> alanında + kimliği doğrulanmış olsun. Aynı sunucu üzerinde <code>"Gizli + Dosyalar"</code> Sahası olarak belirlenmiş alanlarda aynı parola + özdevinimli olarak yinelenecektir. Böylece parola bir kere girilerek + aynı Sahayı paylaşan çok sayıda kısıtlanmış alana ulaşırken oluşacak + gecikmeden kullanıcı korunmuş olur. Güvenlik gerekçelerinden dolayı, + her sunucu adı değiştirilişinde istemcinin parolayı yeniden sorması + gerekir.</p> + + <p><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> + yönergesinin öntanımlı değeri <code>file</code> olduğundan, bu + durumda, bu yönergenin kullanımı isteğe bağlıdır. Ancak, eğer kimlik + doğrulaması için <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ya da + <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> gibi farklı bir kaynak seçecekseniz + bu yönergeyi kullanmanız gerekecektir.</p> + + <p><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + yönergesi <code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code> ile oluşturduğumuz parola + dosyasının yerini belirtmek için kullanılır. Eğer çok sayıda + kullanıcınız varsa her bir kullanıcıyı her kimlik doğrulama isteği + için kimlik bilgilerini bir metin dosyasında aramak gayet yavaş + olacaktır. Apache, kullanıcı bilgilerini hızlı bir veritabanı + dosyasında depolama özelliğine de sahiptir. Bu amaçla, + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> modülünün + <code class="directive"><a href="../mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code> + yönergesi kullanılabilir. Bu dosyalar <code class="program"><a href="../programs/dbmmanage.html">dbmmanage</a></code> ve + <code class="program"><a href="../programs/htdbm.html">htdbm</a></code> programı ile oluşturulabilir ve değiştirilebilir. + Üçüncü parti modüllerinde çok sayıda + başka kimlik doğrulama türü de vardır.</p> + + <p>Son olarak <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> + yönergesi, sunucunun bu bölgesine erişimine izin verilen + kullanıcıları ayarlama işleminin kimlik doğrulamasıyla ilgili + kısmını sağlar. Bir sonraki bölümde <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> yönergesini kullanmanın + çeşitli yoları üzerinde duracağız.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Birden çok kişiye izin vermek</a></h2> + + <p>Yukarıdaki yönergelerle bir dizinde sadece bir kişiye + (<code>umut</code> adlı kullanıcıya) izin verir. Çoğunlukla birden + çok kişiye izin verilmesi istenir. Bu durumda <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> yönergesi + devreye girer.</p> + + <p>Eğer birden çok kişiye izin vermek istiyorsanız içinde kullanıcı + isimlerinin olduğu bir grup dosyası oluşturmalısınız. Bu dosyanın + biçemi gayet basittir ve bunu herhangi bir metin düzenleyici ile + oluşturabilirsiniz. Bu dosyanın içeriği aşağıdaki gibi + görünecektir:</p> + + <div class="example"><p><code> + GroupName: umut samet engin kubilay + </code></p></div> + + <p>Dosya, sadece, boşluklarla birbirinden ayrılmış gurup üyelerinin + isimlerinden oluşan uzun bir liste içerir.</p> + + <p>Varolan parola dosyasına bir kullanıcı eklemek için şunu + yazın:</p> + + <div class="example"><p><code> + htpasswd /usr/local/apache/passwd/passwords birey + </code></p></div> + + <p>Evvelce almış olduğunuz yanıtı yine alacaksınız ama bu sefer yeni + bir dosya oluşturulmak yerine var olan bir dosyaya eklenecektir. + (Yeni bir parola dosyası oluşturmak için <code>-c</code> seçeneği + kullanılır).</p> + + <p>Şimdi, <code>.htaccess</code> dosyanızı veya + <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> bölümünüzü + aşağıda görüldüğü şekilde değiştirebilirsiniz:</p> + + <pre class="prettyprint lang-config">AuthType Basic +AuthName "Davete Binaen" +# Satır isteğe bağlıdır: +AuthBasicProvider file +AuthUserFile "/usr/local/apache/passwd/passwords" +AuthGroupFile "/usr/local/apache/passwd/groups" +Require group Grupismi</pre> + + + <p>Artık, <code>Grupismi</code> gurubunda listelenmiş ve + <code>password</code> dosyasında kaydı olan kişiye, parolayı doğru + yazdığı takdirde izin verilecektir.</p> + + <p>Çoklu kullanıcıya izin veren biraz daha az kullanılan başka bir + yol daha mevcuttur. Bir gurup dosyası oluşturmaktansa, şu yönergeyi + kullanabilirsiniz:</p> + + <pre class="prettyprint lang-config">Require valid-user</pre> + + + <p><code>Require user umut</code> satırı ile parola dosyasında + listelenmiş ve parolayı doğru olarak giren herhangi bir kişiye izin + vermektense, her grup için ayrı bir parola dosyası tutarak grup + davranışını taklit edebilirsiniz.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="possibleproblems" id="possibleproblems">Olası Sorunlar</a></h2> + <p>Temel kimlik doğrulama yolu belirtildiği için, sunucuya + yaptığınız her belge istediğinde kullanıcı adınızın ve parolanızın + doğrulanması gerekir. Hatta aynı sayfayı yeniden yüklerken ya da + sayfadaki her bir resim için bu yapılmalıdır (şayet korunmakta olan + bir dizinden geliyorsa). Bu işlem hızı azaltacaktır. Yavaşlama + miktarı parola dosyanızın büyüklüğü ile orantılı olacaktır, çünkü bu + işlem sırasında dosya açılacak ve kullanıcıların arasında isminiz + bulunana kadar liste aşağı doğru taranacaktır. Bu işlem sayfa her + yüklenişinde tekrar edilecektir.</p> + + <p>Buradan çıkacak sonuç, bir parola dosyasına konulan kullanıcı + sayısında bir üst sınır olması gerekliliğidir. Bu sınır sunucunuzun + başarımına bağlı olarak değişiklik gösterir. Bir kaç yüz kayıtın + üstünde giriş yaptığınızda hız düşüşünü gözlemlebilirsiniz İşte bu + anda kimlik doğrulama için başka bir yöntem aramaya başlarsınız.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="dbmdbd" id="dbmdbd">Diğer parola depolama yöntemleri</a></h2> + + <p>Parolaları basit bir metin dosyasında depolamak yukarıda + bahsedilen sorunlara yol açtığından parolaları başka bir yerde + depolamayı düşünebilirsiniz; örneğin bir veritabanında.</p> + + <p><code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ve <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> + modülleri bunu mümkün kılan iki modüldür. Depolama yönemi olarak + <code><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> file</code> yerine, <code>dbm</code> + veya <code>dbd</code> kullanabilirsiniz.</p> + + <p>Bir metin dosyası yerine bir dbm dosyası kullanım örneği:</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider dbm + AuthDBMUserFile "/www/passwords/passwd.dbm" + Require valid-user +</Directory></pre> + + + <p>Başka seçenekler de mümkündür. Ayrınılar için + <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code> belgesine başvurun.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="multprovider" id="multprovider">Birden çok tedarikçi kullanmak</a></h2> + + <p>Kimlik doğrulama ve yetkilendirme mimarisine dayalı yeni + tedarikçiyi kullanarak tek bir yetkilendirme ya da kimlik doğrulama + yöntemine kilitlenip kalmayacaksınız. Aslında birden çok tedarikçi + ihtiyacınıza cevap vermek için bir arada kullanılabilir. Aşağıdaki + örnekte dosya ve LDAP tabanlı kimlik doğrulama tedarikçileri bir + arada kullanılmıştır.</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider file ldap + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + Require valid-user +</Directory></pre> + + + <p>Bu örnekte dosya tedarikçisi, ilk olarak kullanıcının kimliğini + doğrulamaya teşebbüs edecektir. Kullanıcının kimliği + doğrulanamıyorsa LDAP tedarikçisi çağırılır. Eğer kurumunuz birden + çok kimlik doğrulama tedarikçisini yürürlüğe koyuyorsa bu, kimlik + doğrulama faaliyet alanının genişletilmesini sağlar. Diğer kimlik + kanıtlama ve yetkilendirme senaryoları tek bir kimlik doğrulaması + ile birden fazla yetkilendirme türüne izin verebilir.</p> + + <p>Çok sayıda kimlik doğrulama tedarikçisi uygulamaya konulabileceği + gibi, çok sayıda yetkilendirme yöntemi de kullanılabilir. Bu örnekte + dosya için hem dosyalı hem de LDAP grup kimlik doğrulaması + kullanılmıştır.</p> + + <pre class="prettyprint lang-config"><Directory "/www/docs/private"> + AuthName "Private" + AuthType Basic + AuthBasicProvider file + AuthUserFile "/usr/local/apache/passwd/passwords" + AuthLDAPURL ldap://ldaphost/o=yourorg + AuthGroupFile "/usr/local/apache/passwd/groups" + Require group GroupName + Require ldap-group cn=mygroup,o=yourorg +</Directory></pre> + + + <p>Kimlik doğrulama konusunu biraz daha genişletirsek, <code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> ve + <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> gibi yetkilendirme taşıyıcısı + yönergelerle hangi iznin hangi sırayla uygulanacağını + belirlenebilir. <a href="../mod/mod_authz_core.html#logic">Yetkilendirme Taşıyıcıları</a> bölümünde bunun bir uygulama + örneğini görebilirsiniz.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="beyond" id="beyond">Yetkilendirmenin biraz ötesi</a></h2> + <p>Tek bir veri deposundan yapılacak tek bir sınamadan çok daha + esnek kimlik doğrulaması yapılabilir. Sıralama, mantık ve hangi + kimlik doğrulamasının kullanılacağını seçmek mümkündür.</p> + + <h3><a name="authandororder" id="authandororder">Mantık ve sıralamanın uygulanması</a></h3> + + <p>Yetkilendirmenin hangi sırayla uygulanacağı ve nasıl + denetleneceği geçmişte biraz gizemli bir konuydu. Apache 2.2'de, + tedarikçi tabanlı kimlik doğrulamasının devreye girmesiyle asıl + kimlik doğrulama işlemini yetkilendirme ve destek işlevselliğinden + ayırmak mümkün oldu. Bunun faydalarından birisi de kimlik + doğrulama tedarikçilerinin yapılandırılabilmesi ve auth modülünün + kendi yükleme sırasından bağımsız olarak özel bir sırayla + çağrılabilmesidir. Bu tedarikçi tabanlı mekanizmanın aynısı + yetkilendirmeye de getirilmiştir. Bunun anlamı <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> yönergesinde hangi + izin yönteminin kullanılması gerektiğinin belirtmesinin yanında + hangi sırayla çağırılacaklarının da belirlenebildiğidir. Çok + sayıda yetkilendirme yöntemi kullanıldığında, bunlar, <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> yönergelerinin + yapılandırma dosyasında göründükleri sıra ile çağırılır.</p> + + <p><code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> ve <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> gibi yetkilendirme + taşıyıcısı yönergelerin devreye girmesiyle yetkilendirme + yöntemlerinin ne zaman çağırılacağı ve çağırıldığında ve erişime + izin verirken hangi kuralların uygulanacağı konusunda denetim + yapılandırmanın eline geçmektedir. Karmaşık yetkilendime mantığını + ifade etmek için kullanılan bir örneği görmek için + <a href="../mod/mod_authz_core.html#logic">Yetkilendirme + Taşıyıcıları</a> bölümüne bakınız.</p> + + <p>Öntanımlı olarak tüm <code class="directive"><a href="../mod/mod_authz_core.html#require"> + Require</a></code> yönergeleri, <code class="directive"><a href="../mod/mod_authz_core.html#requireany"><RequireAny></a></code> + taşıyıcı yönergesinin içine konur. Başka bir deyişle eğer + belirtilen kimlik doğrulama yöntemlerinden herhangi biri başarılı + olursa yetkilendirme de sağlanmış olur.</p> + + + + <h3><a name="reqaccessctrl" id="reqaccessctrl">Erişim denetimi için yetkilendirme tedarikçilerinin + kullanımı</a></h3> + + <p>Kullanıcı adı ve parolasına göre kimlik doğrulama hikayenin + sadece bir bölümüdür. Sıklıkla insanlara kim olduklarına göre + değil birşeylere dayanarak izin vermek istersiniz. Örneğin nereden + geldikleri gibi.</p> + + <p><code>all</code>, <code>env</code>, <code>host</code> ve + <code>ip</code> gibi yetkilendirme tedarikçileri ile, bir belgenin + istendiği makinenin IP adresi veya konak ismi gibi bazı özelliklerine + dayalı olarak erişime izin verip vermeyeceğinizi belirtebilirsiniz.</p> + + <p>Bu tedarikçilerin kullanımı <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> yönergesinde açıklanmıştır. Bu yönergeler, + isteklerin işlenmesi sırasında yetkilendirme aşamasında + çağırılacak yetkilendirme tedarikçilerini kayda geçirir. Örneğin: + </p> + + <pre class="prettyprint lang-config">Require ip <var>adres</var> + </pre> + + + <p>Burada, <var>adres</var> bir IP adresidir (veya kısmi bir IP + addresidir)</p> + + <pre class="prettyprint lang-config">Require host <var>alan_adı</var> + </pre> + + + <p>Burada, <var>alan_adı</var> bir tam nitelikli alan adıdır + (ya da kısmi alan adıdır); gerekirse çok sayıda alan adı veya IP + adresi de belirtilebilir.</p> + + <p>Örneğin, yorum alanını gereksiz iletilerle dolduran birini uzak + tutmak istediğinizi varsayalım. Bu kişiyi uzak tutmak için şunları + yapabilirsiniz:</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 10.252.46.165 +</RequireAll></pre> + + + <p>Bu adresden gelen ziyaretçiler bu yönergedeki içeriği + göremeyeceklerdir. Bunun yerine, elinizde IP adresi değil de + makine adı varsa şunu kullanabilirsiniz:</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not host host.example.com +</RequireAll></pre> + + + <p>Eğer alan adının tamanıdan gelecek olan bütün erişimleri + engellemek isterseniz adresin ya da alan adının bir parçasını + belirtin:</p> + + <pre class="prettyprint lang-config"><RequireAll> + Require all granted + Require not ip 192.168.205 + Require not host phishers.example.com moreidiots.example + Require not host ke +</RequireAll></pre> + + + <p><code class="directive"><a href="../mod/mod_authz_core.html#requireall"><RequireAll></a></code> yönergesini çok sayıda + <code class="directive"><a href="../mod/mod_authz_core.html#require"><Require></a></code> yönergesi ile birlikte kullanarak, + sadece <code>not</code> ile olumsuzlanan tüm koşulları gerçekleyen + bağlantılara erişim verilir. Başka bir deyişle, olumsuzlanan koşulları + gerçeklemeyen bağlantıların erişimi engellenir.</p> + + + + <h3><a name="filesystem" id="filesystem">Erişim denetimi ve geriye uyumluluk</a></h3> + + <p>Kimlik doğrulama için tedarik tabanlı mekanizma kullanımının + yan etkilerinden birisi, + <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code>, + <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> ve + <code class="directive"><a href="../mod/mod_access_compat.html#satisfy">Satisfy</a></code> erişim + denetim yönergelerine artık ihtiyaç duyulmamasıdır. Ancak eski + yapılandırmalarla uyumluluğu sağlamak için bu yönergeler + <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> modülüne taşınmıştır.</p> + + <div class="warning"><h3>Note</h3> + <p><code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> ile sağlanan yönergelerin + kullanımı artık önerilmemekte, <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> + modülündeki yönergeler önerilmektedir. <code class="directive"><a href="../mod/mod_access_compat.html#order">Order</a></code>, <code class="directive"><a href="../mod/mod_access_compat.html#allow">Allow</a></code> veya <code class="directive"><a href="../mod/mod_access_compat.html#deny">Deny</a></code> ile + <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> gibi daha yeni + olanlarının yenilerle karışık kullanımı teknik olarak mümkünse de + önerilmemektedir. <code class="module"><a href="../mod/mod_access_compat.html">mod_access_compat</a></code> modülü, 2.4 + yükseltmesini kolaylaştırmak için sadece eski yönergeleri içeren + yapılandırmaları desteklemek üzere oluşturulmuştur. Daha ayrıntılı + bilgi için <a href="../upgrading.html">yükseltme</a> belgesine bakınız. + </p> + </div> + + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="socache" id="socache">Kimlik Doğrulama Arabelleği</a></h2> + <p>Zaman zaman kimlik doğrulama ağınızda veya sağlayıcı(ları)nızda kabul + edilemez yükler oluşturur. Bu çoğunlukla <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> + (veya üçüncü parti/özel sağlayıcıların) kullanıcılarını etkiler. Bununla + ilgilenmek için httpd 2.3/2.4, kimlik bilgilerini arabelleklemek ve özgün + sağlayıcıların yüklerini azaltmak için yeni bir arabellekleme sağlayıcısı + olarak <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code> modülü ile gelmektedir.</p> + <p>Bu, bazı kullanıcılar için önemli bir başarım artışı sağlayabilir.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="moreinformation" id="moreinformation">Daha fazla bilgi</a></h2> + <p>Daha fazla bilgi için <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ve + <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> modüllerinin belgelerine bakınız. + <code class="directive"><a href="../mod/mod_authn_core.html#authnprovideralias">AuthnProviderAlias</a></code> + yönergesi ile bazı yapılandırmalarınızı basitleştirebilirsiniz.</p> + + <p>Apache tarafından desteklenen şifrelerle ilgili bilgi için <a href="../misc/password_encryptions.html">Parola Biçemleri</a> + belgesine bakınız.</p> + + <p><a href="access.html">Erişim Denetimi</a> nasıl belgesinden de + bazı bilgiler edinebilirsiniz.</p> + </div></div> +<div class="bottomlang"> +<p><span>Mevcut Diller: </span><a href="../en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | +<a href="../es/howto/auth.html" hreflang="es" rel="alternate" title="Español"> es </a> | +<a href="../fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | +<a href="../ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | +<a href="../ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | +<a href="../tr/howto/auth.html" title="Türkçe"> tr </a></p> +</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">Yorumlar</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> +<script type="text/javascript"><!--//--><![CDATA[//><!-- +var comments_shortname = 'httpd'; +var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html'; +(function(w, d) { + if (w.location.hostname.toLowerCase() == "httpd.apache.org") { + d.write('<div id="comments_thread"><\/div>'); + var s = d.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; + (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); + } + else { + d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); + } +})(window, document); +//--><!]]></script></div><div id="footer"> +<p class="apache">Copyright 2023 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p> +<p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- +if (typeof(prettyPrint) !== 'undefined') { + prettyPrint(); +} +//--><!]]></script> +</body></html>
\ No newline at end of file |