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="<-" alt="<-" src="/images/left.gif" /></a></div> 21<div id="path"> 22<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> 23<div class="toplang"> 24<p><span>Mevcut Diller: </span><a href="/en/howto/auth.html" hreflang="en" rel="alternate" title="English"> en </a> | 25<a href="/fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 26<a href="/ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 27<a href="/ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 28<a href="/tr/howto/auth.html" title="Türkçe"> tr </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"><Directory></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 <Directory 213 /usr/local/apache/htdocs/secret> 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"><Directory></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"><Directory /www/docs/private> 380 AuthName "Private" 381 AuthType Basic 382 AuthBasicProvider dbm 383 AuthDBMUserFile /www/passwords/passwd.dbm 384 Require valid-user 385</Directory></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"><Directory /www/docs/private> 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</Directory></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"><Directory /www/docs/private> 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</Directory></pre> 435 436 437 <p>Kimlik doğrulama konusunu biraz daha genişletirsek, <code class="directive"><a href="/mod/mod_authz_core.html#requireall"><RequireAll></a></code> ve 438 <code class="directive"><a href="/mod/mod_authz_core.html#requireany"><RequireAny></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"><RequireAll></a></code> ve <code class="directive"><a href="/mod/mod_authz_core.html#requireany"><RequireAny></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"><RequireAny></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"><RequireAll> 519 Require all granted 520 Require not ip 10.252.46.165 521</RequireAll></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"><RequireAll> 529 Require all granted 530 Require not host host.example.com 531</RequireAll></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"><RequireAll> 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</RequireAll></pre> 544 545 546 <p><code class="directive"><a href="/mod/mod_authz_core.html#requireall"><RequireAll></a></code> yönergesini çok sayıda 547 <code class="directive"><a href="/mod/mod_authz_core.html#require"><Require></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"> en </a> | 594<a href="/fr/howto/auth.html" hreflang="fr" rel="alternate" title="Français"> fr </a> | 595<a href="/ja/howto/auth.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> | 596<a href="/ko/howto/auth.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 597<a href="/tr/howto/auth.html" title="Türkçe"> tr </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&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>