1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>Kimlik Doğrulama ve Yetkilendirme - Apache HTTP Sunucusu</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<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" />
12<script src="/style/scripts/prettify.min.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body id="manual-page"><div id="page-header">
17<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>
18<p class="apache">Apache HTTP Sunucusu Sürüm 2.4</p>
19<img alt="" src="/images/feather.gif" /></div>
20<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
21<div id="path">
22<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">Sürüm 2.4</a> &gt; <a href="./">Nasıllar ve Öğreticiler</a></div><div id="page-content"><div id="preamble"><h1>Kimlik Doğrulama ve Yetkilendirme</h1>
23<div class="toplang">
24<p><span>Mevcut Diller: </span><a href="/en/howto/auth.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25<a href="/fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26<a href="/ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27<a href="/ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28<a href="/tr/howto/auth.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29</div>
30
31    <p>Kimlik Doğrulama istediğiniz kişileri teyid etme işlemidir.
32      Yetkilendirme ise kişilerin nereye gireceklerine ve hangi bilgiye
33      ulaşacaklarına müsaade edilmesi işlemidir.</p>
34
35    <p>Genel erişim denetimi için <a href="access.html">Erişim Denetimi
36      Nasıl</a> belgesine bakınız.</p>
37</div>
38<div id="quickview"><ul id="toc"><li><img alt="" src="/images/down.gif" /> <a href="#related">İlgili modüller ve Yönergeler</a></li>
39<li><img alt="" src="/images/down.gif" /> <a href="#introduction">Giriş</a></li>
40<li><img alt="" src="/images/down.gif" /> <a href="#theprerequisites">Ön gereksinimler</a></li>
41<li><img alt="" src="/images/down.gif" /> <a href="#gettingitworking">Çalışmaya Başlama</a></li>
42<li><img alt="" src="/images/down.gif" /> <a href="#lettingmorethanonepersonin">Birden çok kişiye izin vermek</a></li>
43<li><img alt="" src="/images/down.gif" /> <a href="#possibleproblems">Olası Sorunlar</a></li>
44<li><img alt="" src="/images/down.gif" /> <a href="#dbmdbd">Diğer parola depolama yöntemleri</a></li>
45<li><img alt="" src="/images/down.gif" /> <a href="#multprovider">Birden çok tedarikçi kullanmak</a></li>
46<li><img alt="" src="/images/down.gif" /> <a href="#beyond">Yetkilendirmenin biraz ötesi</a></li>
47<li><img alt="" src="/images/down.gif" /> <a href="#socache">Kimlik Doğrulama Arabelleği</a></li>
48<li><img alt="" src="/images/down.gif" /> <a href="#moreinformation">Daha fazla bilgi</a></li>
49</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
50<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
51<div class="section">
52<h2><a name="related" id="related">İlgili modüller ve Yönergeler</a></h2>
53
54    <p>Kimlik Doğrulama ve yetkilendirme işlemi ile ilgili üç tür modül
55    vardır. Genellikle her bir gruptan en az bir modül seçeceksiniz.</p>
56
57    <ul>
58      <li>Kimlik Doğrulama türü (bkz. <code class="directive"><a href="/mod/mod_authn_core.html#authtype">AuthType</a></code> yönergesi)
59        <ul>
60          <li><code class="module"><a href="/mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
61          <li><code class="module"><a href="/mod/mod_auth_digest.html">mod_auth_digest</a></code></li>
62        </ul>
63      </li>
64
65      <li>Kimlik Doğrulayıcı (bkz.
66      <code class="directive"><a href="/mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
67      ve <code class="directive"><a href="/mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> yönergeleri)
68        <ul>
69          <li><code class="module"><a href="/mod/mod_authn_anon.html">mod_authn_anon</a></code></li>
70          <li><code class="module"><a href="/mod/mod_authn_dbd.html">mod_authn_dbd</a></code></li>
71          <li><code class="module"><a href="/mod/mod_authn_dbm.html">mod_authn_dbm</a></code></li>
72          <li><code class="module"><a href="/mod/mod_authn_file.html">mod_authn_file</a></code></li>
73          <li><code class="module"><a href="/mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
74          <li><code class="module"><a href="/mod/mod_authn_socache.html">mod_authn_socache</a></code></li>
75        </ul>
76      </li>
77      <li>Yetkilendirme (bkz.
78          <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> yönergesi)
79        <ul>
80          <li><code class="module"><a href="/mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></li>
81          <li><code class="module"><a href="/mod/mod_authz_dbd.html">mod_authz_dbd</a></code></li>
82          <li><code class="module"><a href="/mod/mod_authz_dbm.html">mod_authz_dbm</a></code></li>
83          <li><code class="module"><a href="/mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
84          <li><code class="module"><a href="/mod/mod_authz_host.html">mod_authz_host</a></code></li>
85          <li><code class="module"><a href="/mod/mod_authz_owner.html">mod_authz_owner</a></code></li>
86          <li><code class="module"><a href="/mod/mod_authz_user.html">mod_authz_user</a></code></li>
87        </ul>
88      </li>
89    </ul>
90
91    <p>Bu modüllere ek olarak, <code class="module"><a href="/mod/mod_authn_core.html">mod_authn_core</a></code> ve
92    <code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code> modülleri bulunur. Bu modüller
93    yetkilendirme modüllerinin çekirdeğini oluşturan temel yönergeleri
94    gerçekler.</p>
95
96    <p><code class="module"><a href="/mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> modülü kimlik doğrulama ve
97    yetkilendirme işlemlerinin ikisini birden gerçekleştirir.
98    <code class="module"><a href="/mod/mod_authz_host.html">mod_authz_host</a></code> modülü bu işlemleri sunucu adına, IP
99    adresine ve isteğin karekteristiğine bağlı olarak gerçekleştirir.
100    Ancak kimlik doğrulama sisteminin bir parçası değildir.
101    <code>mod_access</code> ile geriye uyumluluk için
102    <code class="module"><a href="/mod/mod_access_compat.html">mod_access_compat</a></code> diye bir modül daha vardır.</p>
103
104    <p>Muhtemelen göz atmak isteyeceğiniz <a href="access.html">Erişim
105    Denetimi</a> nasıl belgesi, sunucuya erişimlerin çeşitli yollarından
106    bahsetmektedir.</p>
107  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
108<div class="section">
109<h2><a name="introduction" id="introduction">Giriş</a></h2>
110    <p>Sitenizde sadece küçük bir grup insana hitap eden ya da hassas
111    bilgileriniz varsa, bu makaledeki teknikleri kullanarak dilediğiniz
112    kişilerin sadece dilediğiniz sayfaları görüntülemesini
113    sağlayabilirsiniz.</p>
114
115    <p>Bu makale sitenizin bazı parçalarını korumak için kullanacağınız
116    "standart" yolları içermektedir.</p>
117
118    <div class="note"><h3>Bilginize:</h3>
119      <p>Eğer bilgileriniz gerçekten gizliliğe ihtiyaç duyuyorsa kimlik
120      doğrulamasına ilaveten <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> modülünü de
121      kullanabilirsiniz.</p>
122    </div>
123
124  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
125<div class="section">
126<h2><a name="theprerequisites" id="theprerequisites">Ön gereksinimler</a></h2>
127    
128    <p>Bu makalede bahsi geçen yönergeler ya ana sunucu yapılandırma
129    dosyasında (genellikle <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> bölümünde) ya da dizin içi
130    yapılandırma dosyalarında (<code>.htaccess</code> dosyaları)
131    bulunmak zorundadır.</p>
132
133    <p>Eğer <code>.htaccess</code> dosyalarını kullanmayı
134    tasarlıyorsanız, kimlik doğrulama yönergelerine bu dosyaların içine
135    koymaya izin veren sunucu yapılandırmasına ihtiyacınız olacaktır.
136    Bunun için, dizin içi yapılandırma dosyalarının içine hangi
137    yönergelerin konacağını belirleyen <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> yönergesi kullanılır.</p>
138
139    <p>Kimlik doğrulamadan sözettiğimize göre, aşağıda gösterilen
140    şekilde bir <code class="directive"><a href="/mod/core.html#allowoverride">AllowOverride</a></code> yönergesine ihtiyacınız olacaktır:</p>
141
142    <pre class="prettyprint lang-config">AllowOverride AuthConfig</pre>
143
144
145    <p>Yönergeleri doğrudan ana sunucunun yapılandırma dosyasına
146    koyacaksanız bu dosyaya yazma izniniz olmalıdır.</p>
147
148    <p>Bazı dosyaların nerede saklandığını bilmek için sunucunun dizin
149    yapısı hakkında biraz bilgi sahibi olmanız gerekmektedir. Bu çok da
150    zor olmamakla birlikte bu noktaya gelindiğinde konuyu
151    netleştireceğiz.</p>
152
153    <p>Ayrıca <code class="module"><a href="/mod/mod_authn_core.html">mod_authn_core</a></code> ve
154    <code class="module"><a href="/mod/mod_authz_core.html">mod_authz_core</a></code> modülleri ya <code>httpd</code>
155    çalıştırılabilirinin içinde derlenmiş olmalı ya da
156    <code>httpd.conf</code> yapılandırma dosyası ile yüklenmelidir. Bu
157    iki modül HTTP sunucusunda kimlik doğrulama ve yetkilendirme
158    kullanımı ve yapılandırması için büyük öneme sahip temel yönergeleri
159    ve işlevselliği sağlar.</p>
160
161  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
162<div class="section">
163<h2><a name="gettingitworking" id="gettingitworking">Çalışmaya Başlama</a></h2>
164    <p>Burada, sunucu üzerindeki bir dizini parolayla korumak için
165    gereken temel bilgiler verilecektir.</p>
166
167    <p>İlk olarak bir parola dosyası oluşturmalısınız. Bunu nasıl
168    yapacağınız, özellikle, seçtiğiniz kimlik doğrulayıcıya göre
169    değişiklik gösterir. Bunun üzerinde ileride daha fazla duracağız.
170    Başlangıç için parolaları bir metin dosyasında tutacağız.</p>
171
172    <p>Bu dosya belge kök dizini altında olmamalıdır. Böylece başkaları
173    parola dosyasını indiremezler. Örneğin belgeleriniz
174    <code>/usr/local/apache/htdocs</code> üzerinden sunuluyorsa parola
175    dosyanızı <code>/usr/local/apache/passwd</code> dizininde
176    tutabilirsiniz.</p>
177
178    <p>Dosyayı oluşturmak için Apache ile gelen
179    <code class="program"><a href="/programs/htpasswd.html">htpasswd</a></code> uygulamasını kullanacağız. Bu uygulama
180    Apache'nin kurulumunda belirtilen  <code>bin</code> dizininde
181    bulunur. Eğer Apache'yi üçüncü parti paketlerden  kurduysanız,
182    çalıştırılabilir dosyaların bulunduğu yollar üzerinde olmalıdır.</p>
183
184    <p>Bir dosya oluşturmak için şunları yazın:</p>
185
186    <div class="example"><p><code>
187      htpasswd -c /usr/local/apache/passwd/passwords umut
188    </code></p></div>
189
190    <p><code class="program"><a href="/programs/htpasswd.html">htpasswd</a></code> size parola soracaktır arkasından da
191    teyit etmek için parolayı tekrar girmenizi isteyecektir:</p>
192
193    <div class="example"><p><code>
194      # htpasswd -c /usr/local/apache/passwd/passwords umut<br />
195      New password: parolam<br />
196      Re-type new password: parolam<br />
197      Adding password for user umut
198    </code></p></div>
199
200    <p>Eğer <code class="program"><a href="/programs/htpasswd.html">htpasswd</a></code> normal yollar üzerinde değilse
201    çalıştırmak için dosyanın bulunduğu tam yeri belirtmeniz
202    gerekecektir. Dosyanın öntanımlı kurulum yeri:
203    <code>/usr/local/apache2/bin/htpasswd</code></p>
204
205    <p>Bundan sonra, sunucuyu, parola sorması için ve kimlerin erişim
206    izni olacağını belirlemek için yapılandıracaksınız. Bu işlemi
207    <code>httpd.conf</code>dosyasını düzenleyerek ya da bir
208    <code>.htaccess</code> dosyası kullanarak yapabilirsiniz. Örneğin,
209    <code>/usr/local/apache/htdocs/secret</code> dizinini korumayı
210    amaçlıyorsanız, şu yönergeleri kullanabilirsiniz. Bu yönergeleri
211    <code>/usr/local/apache/htdocs/secret/.htaccess</code> dosyası içine
212    veya <code>httpd.conf</code> içindeki &lt;Directory
213    /usr/local/apache/htdocs/secret&gt; bölümüne koyabilirsiniz.</p>
214
215    <pre class="prettyprint lang-config">AuthType Basic
216AuthName "Gizli Dosyalar"
217# (Aşağıdaki satırın kullanımı isteğe bağlıdır)
218AuthBasicProvider file
219AuthUserFile /usr/local/apache/passwd/passwords
220Require user umut</pre>
221
222
223    <p>Bu yönergeleri tek tek inceleyelim.
224    <code class="directive"><a href="/mod/mod_authn_core.html#authtype">AuthType</a></code> yönergesi
225    kullanıcının kimliğini doğrulamakta kullanılacak yöntemi seçer. En
226    çok kullanılan yöntem <code>Basic</code>'tir ve bu yöntem
227    <code class="module"><a href="/mod/mod_auth_basic.html">mod_auth_basic</a></code> modülüyle gerçeklenmiştir. Temel
228    (<code>Basic</code>) kimlik doğrulamasıyla gönderilen parolanın
229    şifrelenmeyeceğini unutmayın. Bu yöntem, bu sebepten dolayı
230    <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> eşliğinde kullanılmadığı sürece yüksek
231    hassasiyete sahip bilgiler için kullanılmamalıdır. Apache bir başka
232    kimlik doğrulama yöntemini daha destekler: <code>AuthType
233    Digest</code>. Bu yöntem <code class="module"><a href="/mod/mod_auth_digest.html">mod_auth_digest</a></code> tarafından
234    gerçeklenmişti ve çok daha güvenli olacağı düşünülmüştü. Bu artık
235    geçerliliğini yitirdiğinden bağlantının bundan böyle
236    <code class="module"><a href="/mod/mod_ssl.html">mod_ssl</a></code> ile şifrelenmesi gerekmektedir.</p>
237
238    <p><code class="directive"><a href="/mod/mod_authn_core.html#authname">AuthName</a></code> yönergesi
239    ile kimlik doğrulamada kullanılacak <dfn>Saha</dfn> da
240    belirtilebilir. Saha kullanımının, başlıca iki işlevi vardır.
241    Birincisi, istemci sıklıkla bu bilgiyi kullanıcıya parola diyalog
242    kutusunun bir parçası olarak sunar. İkincisi, belirtilen kimlik
243    doğrulamalı alan için gönderilecek parolayı belirlerken istemci
244    tarafından kullanılır.</p>
245
246    <p>Örneğin, bir istemcinin <code>"Gizli Dosyalar"</code> alanında
247    kimliği doğrulanmış olsun. Aynı sunucu üzerinde <code>"Gizli
248    Dosyalar"</code> Sahası olarak belirlenmiş alanlarda aynı parola
249    özdevinimli olarak yinelenecektir. Böylece parola bir kere girilerek
250    aynı Sahayı paylaşan çok sayıda kısıtlanmış alana ulaşırken oluşacak
251    gecikmeden kullanıcı korunmuş olur. Güvenlik gerekçelerinden dolayı,
252    her sunucu adı değiştirilişinde istemcinin parolayı yeniden sorması
253    gerekir.</p>
254
255    <p><code class="directive"><a href="/mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
256    yönergesinin öntanımlı değeri <code>file</code> olduğundan, bu
257    durumda, bu yönergenin kullanımı isteğe bağlıdır. Ancak, eğer kimlik
258    doğrulaması için  <code class="module"><a href="/mod/mod_authn_dbm.html">mod_authn_dbm</a></code> ya da
259    <code class="module"><a href="/mod/mod_authn_dbd.html">mod_authn_dbd</a></code> gibi farklı bir kaynak seçecekseniz
260    bu yönergeyi kullanmanız gerekecektir.</p>
261
262    <p><code class="directive"><a href="/mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
263    yönergesi <code class="program"><a href="/programs/htpasswd.html">htpasswd</a></code> ile oluşturduğumuz parola
264    dosyasının yerini belirtmek için kullanılır. Eğer çok sayıda
265    kullanıcınız varsa her bir kullanıcıyı her kimlik doğrulama isteği
266    için kimlik bilgilerini bir metin dosyasında aramak gayet yavaş
267    olacaktır. Apache, kullanıcı bilgilerini hızlı bir veritabanı
268    dosyasında depolama özelliğine de sahiptir. Bu amaçla,
269    <code class="module"><a href="/mod/mod_authn_dbm.html">mod_authn_dbm</a></code> modülünün
270    <code class="directive"><a href="/mod/mod_authn_dbm.html#authdbmuserfile">AuthDBMUserFile</a></code>
271    yönergesi kullanılabilir. Bu dosyalar <code class="program"><a href="/programs/dbmmanage.html">dbmmanage</a></code> ve
272    <code class="program"><a href="/programs/htdbm.html">htdbm</a></code> programı ile oluşturulabilir ve değiştirilebilir.
273    <a href="http://modules.apache.org/">Apache modülleri
274    Veritabanı</a> içindeki üçüncü parti modüllerinde çok sayıda
275    başka kimlik doğrulama türü de vardır.</p>
276
277    <p>Son olarak <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code>
278    yönergesi, sunucunun bu bölgesine erişimine izin verilen
279    kullanıcıları ayarlama işleminin kimlik doğrulamasıyla ilgili
280    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
281    çeşitli yoları üzerinde duracağız.</p>
282  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
283<div class="section">
284<h2><a name="lettingmorethanonepersonin" id="lettingmorethanonepersonin">Birden çok kişiye izin vermek</a></h2>
285    
286    <p>Yukarıdaki yönergelerle bir dizinde sadece bir kişiye
287    (<code>umut</code> adlı kullanıcıya) izin verir. Çoğunlukla birden
288    çok kişiye izin verilmesi istenir. Bu durumda <code class="directive"><a href="/mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> yönergesi
289    devreye girer.</p>
290
291    <p>Eğer birden çok kişiye izin vermek istiyorsanız içinde kullanıcı
292    isimlerinin olduğu bir grup dosyası oluşturmalısınız. Bu dosyanın
293    biçemi gayet basittir ve bunu herhangi bir metin düzenleyici ile
294    oluşturabilirsiniz. Bu dosyanın içeriği aşağıdaki gibi
295    görünecektir:</p>
296
297    <div class="example"><p><code>
298     GroupName: umut samet engin kubilay
299    </code></p></div>
300
301    <p>Dosya, sadece, boşluklarla birbirinden ayrılmış gurup üyelerinin
302    isimlerinden oluşan uzun bir liste içerir.</p>
303
304    <p>Varolan parola dosyasına bir kullanıcı eklemek için şunu
305    yazın:</p>
306
307    <div class="example"><p><code>
308      htpasswd /usr/local/apache/passwd/passwords birey
309    </code></p></div>
310
311    <p>Evvelce almış olduğunuz yanıtı yine alacaksınız ama bu sefer yeni
312    bir dosya oluşturulmak yerine var olan bir dosyaya eklenecektir.
313    (Yeni bir parola dosyası oluşturmak için <code>-c</code> seçeneği
314    kullanılır).</p>
315
316    <p>Şimdi, <code>.htaccess</code> dosyanızı veya
317    <code class="directive"><a href="/mod/core.html#directory">&lt;Directory&gt;</a></code> bölümünüzü
318    aşağıda görüldüğü şekilde değiştirebilirsiniz:</p>
319
320    <pre class="prettyprint lang-config">AuthType Basic
321AuthName "Davete Binaen"
322# Satır isteğe bağlıdır:
323AuthBasicProvider file
324AuthUserFile /usr/local/apache/passwd/passwords
325AuthGroupFile /usr/local/apache/passwd/groups
326Require group Grupismi</pre>
327
328
329    <p>Artık, <code>Grupismi</code> gurubunda listelenmiş ve
330    <code>password</code> dosyasında kaydı olan kişiye, parolayı doğru
331    yazdığı takdirde izin verilecektir.</p>
332
333    <p>Çoklu kullanıcıya izin veren biraz daha az kullanılan başka bir
334    yol daha mevcuttur. Bir gurup dosyası oluşturmaktansa, şu yönergeyi
335    kullanabilirsiniz:</p>
336
337    <pre class="prettyprint lang-config">Require valid-user</pre>
338
339
340    <p><code>Require user umut</code> satırı ile parola dosyasında
341    listelenmiş ve parolayı doğru olarak giren herhangi bir kişiye izin
342    vermektense, her grup için ayrı bir parola dosyası tutarak grup
343    davranışını taklit edebilirsiniz.</p>
344
345  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
346<div class="section">
347<h2><a name="possibleproblems" id="possibleproblems">Olası Sorunlar</a></h2>
348    <p>Temel kimlik doğrulama yolu belirtildiği için, sunucuya
349    yaptığınız her belge istediğinde kullanıcı adınızın ve parolanızın
350    doğrulanması gerekir. Hatta aynı sayfayı yeniden yüklerken ya da
351    sayfadaki her bir resim için bu yapılmalıdır (şayet korunmakta olan
352    bir dizinden geliyorsa). Bu işlem hızı azaltacaktır. Yavaşlama
353    miktarı parola dosyanızın büyüklüğü ile orantılı olacaktır, çünkü bu
354    işlem sırasında dosya açılacak ve kullanıcıların arasında isminiz
355    bulunana kadar liste aşağı doğru taranacaktır. Bu işlem sayfa her
356    yüklenişinde tekrar edilecektir.</p>
357
358    <p>Buradan çıkacak sonuç, bir parola dosyasına konulan kullanıcı
359    sayısında bir üst sınır olması gerekliliğidir. Bu sınır sunucunuzun
360    başarımına bağlı olarak değişiklik gösterir. Bir kaç yüz kayıtın
361    üstünde giriş yaptığınızda hız düşüşünü gözlemlebilirsiniz İşte bu
362    anda kimlik doğrulama için başka bir yöntem aramaya başlarsınız.</p>
363
364  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
365<div class="section">
366<h2><a name="dbmdbd" id="dbmdbd">Diğer parola depolama yöntemleri</a></h2>
367    
368    <p>Parolaları basit bir metin dosyasında depolamak yukarıda
369    bahsedilen sorunlara yol açtığından parolaları başka bir yerde
370    depolamayı düşünebilirsiniz; örneğin bir veritabanında.</p>
371
372    <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>
373    modülleri bunu mümkün kılan iki modüldür. Depolama yönemi olarak
374    <code><code class="directive"><a href="/mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> file</code> yerine, <code>dbm</code>
375    veya <code>dbd</code> kullanabilirsiniz.</p>
376
377    <p>Bir metin dosyası yerine bir dbm dosyası kullanım örneği:</p>
378
379    <pre class="prettyprint lang-config">&lt;Directory /www/docs/private&gt;
380    AuthName "Private"
381    AuthType Basic
382    AuthBasicProvider dbm
383    AuthDBMUserFile /www/passwords/passwd.dbm
384    Require valid-user
385&lt;/Directory&gt;</pre>
386
387
388    <p>Başka seçenekler de mümkündür. Ayrınılar için
389    <code class="module"><a href="/mod/mod_authn_dbm.html">mod_authn_dbm</a></code> belgesine başvurun.</p>
390
391  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
392<div class="section">
393<h2><a name="multprovider" id="multprovider">Birden çok tedarikçi kullanmak</a></h2>
394    
395    <p>Kimlik doğrulama ve yetkilendirme mimarisine dayalı yeni
396    tedarikçiyi kullanarak tek bir yetkilendirme ya da kimlik doğrulama
397    yöntemine kilitlenip kalmayacaksınız. Aslında birden çok tedarikçi
398    ihtiyacınıza cevap vermek için bir arada kullanılabilir. Aşağıdaki
399    örnekte dosya ve LDAP tabanlı kimlik doğrulama tedarikçileri bir
400    arada kullanılmıştır.</p>
401
402    <pre class="prettyprint lang-config">&lt;Directory /www/docs/private&gt;
403    AuthName "Private"
404    AuthType Basic
405    AuthBasicProvider file ldap
406    AuthUserFile /usr/local/apache/passwd/passwords
407    AuthLDAPURL ldap://ldaphost/o=yourorg
408    Require valid-user
409&lt;/Directory&gt;</pre>
410
411
412    <p>Bu örnekte dosya tedarikçisi, ilk olarak kullanıcının kimliğini
413    doğrulamaya teşebbüs edecektir. Kullanıcının kimliği
414    doğrulanamıyorsa LDAP tedarikçisi çağırılır. Eğer kurumunuz birden
415    çok kimlik doğrulama tedarikçisini yürürlüğe koyuyorsa bu, kimlik
416    doğrulama faaliyet alanının genişletilmesini sağlar. Diğer kimlik
417    kanıtlama ve yetkilendirme senaryoları tek bir kimlik doğrulaması
418    ile birden fazla yetkilendirme türüne izin verebilir.</p>
419
420    <p>Çok sayıda kimlik doğrulama tedarikçisi uygulamaya konulabileceği
421    gibi, çok sayıda yetkilendirme yöntemi de kullanılabilir. Bu örnekte
422    dosya için hem dosyalı hem de LDAP grup kimlik doğrulaması
423    kullanılmıştır.</p>
424
425    <pre class="prettyprint lang-config">&lt;Directory /www/docs/private&gt;
426    AuthName "Private"
427    AuthType Basic
428    AuthBasicProvider file
429    AuthUserFile /usr/local/apache/passwd/passwords
430    AuthLDAPURL ldap://ldaphost/o=yourorg
431    AuthGroupFile /usr/local/apache/passwd/groups
432    Require group GroupName
433    Require ldap-group cn=mygroup,o=yourorg
434&lt;/Directory&gt;</pre>
435
436
437    <p>Kimlik doğrulama konusunu biraz daha genişletirsek, <code class="directive"><a href="/mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code> ve
438    <code class="directive"><a href="/mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code> gibi yetkilendirme taşıyıcısı
439    yönergelerle hangi iznin hangi sırayla uygulanacağını
440    belirlenebilir. <a href="/mod/mod_authz_core.html#logic">Yetkilendirme Taşıyıcıları</a> bölümünde bunun bir uygulama
441    örneğini görebilirsiniz.</p>
442
443  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
444<div class="section">
445<h2><a name="beyond" id="beyond">Yetkilendirmenin biraz ötesi</a></h2>
446    <p>Tek bir veri deposundan yapılacak tek bir sınamadan çok daha
447    esnek kimlik doğrulaması yapılabilir. Sıralama, mantık ve hangi
448    kimlik doğrulamasının kullanılacağını seçmek mümkündür.</p>
449
450    <h3><a name="authandororder" id="authandororder">Mantık ve sıralamanın uygulanması</a></h3>
451      
452      <p>Yetkilendirmenin hangi sırayla uygulanacağı ve nasıl
453      denetleneceği geçmişte biraz gizemli bir konuydu. Apache 2.2'de,
454      tedarikçi tabanlı kimlik doğrulamasının devreye girmesiyle asıl
455      kimlik doğrulama işlemini yetkilendirme ve destek işlevselliğinden
456      ayırmak mümkün oldu. Bunun faydalarından birisi de kimlik
457      doğrulama tedarikçilerinin yapılandırılabilmesi ve auth modülünün
458      kendi yükleme sırasından bağımsız olarak özel bir sırayla
459      çağrılabilmesidir. Bu tedarikçi tabanlı mekanizmanın aynısı
460      yetkilendirmeye de getirilmiştir. Bunun anlamı <code class="directive"><a href="/mod/mod_authz_core.html#require">Require</a></code> yönergesinde hangi
461      izin yönteminin kullanılması gerektiğinin belirtmesinin yanında
462      hangi sırayla çağırılacaklarının da belirlenebildiğidir. Çok
463      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
464      yapılandırma dosyasında göründükleri sıra ile çağırılır.</p>
465
466      <p><code class="directive"><a href="/mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code> ve <code class="directive"><a href="/mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code> gibi yetkilendirme
467      taşıyıcısı yönergelerin devreye girmesiyle yetkilendirme
468      yöntemlerinin ne zaman çağırılacağı ve çağırıldığında ve erişime
469      izin verirken hangi kuralların uygulanacağı konusunda denetim
470      yapılandırmanın eline geçmektedir. Karmaşık yetkilendime mantığını
471      ifade etmek için kullanılan bir örneği görmek için
472      <a href="/mod/mod_authz_core.html#logic">Yetkilendirme
473      Taşıyıcıları</a> bölümüne bakınız.</p>
474
475      <p>Öntanımlı olarak tüm <code class="directive"><a href="/mod/mod_authz_core.html#require">
476      Require</a></code> yönergeleri, <code class="directive"><a href="/mod/mod_authz_core.html#requireany">&lt;RequireAny&gt;</a></code>
477      taşıyıcı yönergesinin içine konur. Başka bir deyişle eğer
478      belirtilen kimlik doğrulama yöntemlerinden herhangi biri başarılı
479      olursa yetkilendirme de sağlanmış olur.</p>
480
481    
482
483    <h3><a name="reqaccessctrl" id="reqaccessctrl">Erişim denetimi için yetkilendirme tedarikçilerinin
484      kullanımı</a></h3>
485      
486      <p>Kullanıcı adı ve parolasına göre kimlik doğrulama hikayenin
487      sadece bir bölümüdür. Sıklıkla insanlara kim olduklarına göre
488      değil birşeylere dayanarak izin vermek istersiniz. Örneğin nereden
489      geldikleri gibi.</p>
490
491      <p><code>all</code>, <code>env</code>, <code>host</code> ve
492      <code>ip</code> gibi yetkilendirme tedarikçileri ile, bir belgenin
493      istendiği makinenin IP adresi veya konak ismi gibi bazı özelliklerine
494      dayalı olarak erişime izin verip vermeyeceğinizi belirtebilirsiniz.</p>
495
496      <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,
497      isteklerin işlenmesi sırasında yetkilendirme aşamasında
498      çağırılacak yetkilendirme tedarikçilerini kayda geçirir. Örneğin:
499      </p>
500
501      <pre class="prettyprint lang-config">Require ip <var>adres</var></pre>
502
503
504      <p>Burada, <var>adres</var> bir IP adresidir (veya kısmi bir IP
505        addresidir)</p>
506
507      <pre class="prettyprint lang-config">Require host <var>alan_adı</var></pre>
508
509
510      <p>Burada, <var>alan_adı</var> bir tam nitelikli alan adıdır
511      (ya da kısmi alan adıdır); gerekirse çok sayıda alan adı veya IP
512      adresi de belirtilebilir.</p>
513
514      <p>Örneğin, yorum alanını gereksiz iletilerle dolduran birini uzak
515      tutmak istediğinizi varsayalım. Bu kişiyi uzak tutmak için şunları
516      yapabilirsiniz:</p>
517
518        <pre class="prettyprint lang-config">&lt;RequireAll&gt;
519    Require all granted
520    Require not ip 10.252.46.165
521&lt;/RequireAll&gt;</pre>
522
523
524      <p>Bu adresden gelen ziyaretçiler bu yönergedeki içeriği
525      göremeyeceklerdir. Bunun yerine, elinizde IP adresi değil de
526      makine adı varsa şunu kullanabilirsiniz:</p>
527
528        <pre class="prettyprint lang-config">&lt;RequireAll&gt;
529    Require all granted
530    Require not host host.example.com
531&lt;/RequireAll&gt;</pre>
532
533
534      <p>Eğer alan adının tamanıdan gelecek olan bütün erişimleri
535      engellemek isterseniz adresin ya da alan adının bir parçasını
536      belirtin:</p>
537
538        <pre class="prettyprint lang-config">&lt;RequireAll&gt;
539    Require all granted
540    Require not ip 192.168.205
541    Require not host phishers.example.com moreidiots.example
542    Require not host ke
543&lt;/RequireAll&gt;</pre>
544
545
546        <p><code class="directive"><a href="/mod/mod_authz_core.html#requireall">&lt;RequireAll&gt;</a></code> yönergesini çok sayıda
547        <code class="directive"><a href="/mod/mod_authz_core.html#require">&lt;Require&gt;</a></code> yönergesi ile birlikte kullanarak,
548        sadece <code>not</code> ile olumsuzlanan tüm koşulları gerçekleyen
549        bağlantılara erişim verilir. Başka bir deyişle, olumsuzlanan koşulları
550        gerçeklemeyen bağlantıların erişimi engellenir.</p>
551
552    
553
554    <h3><a name="filesystem" id="filesystem">Erişim denetimi ve geriye uyumluluk</a></h3>
555      
556      <p>Kimlik doğrulama için tedarik tabanlı mekanizma kullanımının
557      yan etkilerinden birisi,
558      <code class="directive"><a href="/mod/mod_access_compat.html#order">Order</a></code>,
559      <code class="directive"><a href="/mod/mod_access_compat.html#allow">Allow</a></code>,
560      <code class="directive"><a href="/mod/mod_access_compat.html#deny">Deny</a></code> ve
561      <code class="directive"><a href="/mod/mod_access_compat.html#satisfy">Satisfy</a></code> erişim
562      denetim yönergelerine artık ihtiyaç duyulmamasıdır. Ancak eski
563      yapılandırmalarla uyumluluğu sağlamak için bu yönergeler
564      <code class="module"><a href="/mod/mod_access_compat.html">mod_access_compat</a></code> modülüne taşınmıştır.</p>
565
566    
567
568  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
569<div class="section">
570<h2><a name="socache" id="socache">Kimlik Doğrulama Arabelleği</a></h2>
571    <p>Zaman zaman kimlik doğrulama ağınızda veya sağlayıcı(ları)nızda kabul
572    edilemez yükler oluşturur. Bu çoğunlukla <code class="module"><a href="/mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
573    (veya üçüncü parti/özel sağlayıcıların) kullanıcılarını etkiler. Bununla
574    ilgilenmek için httpd 2.3/2.4, kimlik bilgilerini arabelleklemek ve özgün
575    sağlayıcıların yüklerini azaltmak için yeni bir arabellekleme sağlayıcısı
576    olarak <code class="module"><a href="/mod/mod_authn_socache.html">mod_authn_socache</a></code> modülü ile gelmektedir.</p>
577    <p>Bu, bazı kullanıcılar için önemli bir başarım artışı sağlayabilir.</p>
578  </div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
579<div class="section">
580<h2><a name="moreinformation" id="moreinformation">Daha fazla bilgi</a></h2>
581    <p>Daha fazla bilgi için <code class="module"><a href="/mod/mod_auth_basic.html">mod_auth_basic</a></code> ve
582    <code class="module"><a href="/mod/mod_authz_host.html">mod_authz_host</a></code> modüllerinin belgelerine bakınız.
583    <code class="directive"><a href="/mod/mod_authn_core.html#authnprovideralias">AuthnProviderAlias</a></code>
584    yönergesi ile bazı yapılandırmalarınızı basitleştirebilirsiniz.</p>
585
586    <p>Apache tarafından desteklenen şifrelerle ilgili bilgi için <a href="/misc/password_encryptions.html">Parola Biçemleri</a>
587    belgesine bakınız.</p>
588
589    <p><a href="access.html">Erişim Denetimi</a> nasıl belgesinden de
590    bazı bilgiler edinebilirsiniz.</p>
591  </div></div>
592<div class="bottomlang">
593<p><span>Mevcut Diller: </span><a href="/en/howto/auth.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
594<a href="/fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
595<a href="/ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
596<a href="/ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
597<a href="/tr/howto/auth.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
598</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">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
599<script type="text/javascript"><!--//--><![CDATA[//><!--
600var comments_shortname = 'httpd';
601var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/auth.html';
602(function(w, d) {
603    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
604        d.write('<div id="comments_thread"><\/div>');
605        var s = d.createElement('script');
606        s.type = 'text/javascript';
607        s.async = true;
608        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
609        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
610    }
611    else { 
612        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
613    }
614})(window, document);
615//--><!]]></script></div><div id="footer">
616<p class="apache">Copyright 2014 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>
617<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[//><!--
618if (typeof(prettyPrint) !== 'undefined') {
619    prettyPrint();
620}
621//--><!]]></script>
622</body></html>