Kimlik Doğrulama ve Yetkilendirme
htpasswd -c /usr/local/apache/passwd/passwords umut
(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
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
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.
Genel erişim denetimi için Erişim Denetimi Nasıl belgesine bakınız.
yönergesi) Bu modüllere ek olarak,
modülleri bulunur. Bu modüller yetkilendirme modüllerinin çekirdeğini oluşturan temel yönergeleri gerçekler.modauthzcore
modülü kimlik doğrulama ve yetkilendirme işlemlerinin ikisini birden gerçekleştirir. modauthnzldap
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. modauthzhostmod_access
ile geriye uyumluluk için
diye bir modül daha vardır.modaccesscompat
Muhtemelen göz atmak isteyeceğiniz Erişim Denetimi nasıl belgesi, sunucuya erişimlerin çeşitli yollarından bahsetmektedir.
Bu makale sitenizin bazı parçalarını korumak için kullanacağınız "standart" yolları içermektedir.
Eğer bilgileriniz gerçekten gizliliğe ihtiyaç duyuyorsa kimlik doğrulamasına ilaveten
modülünü de kullanabilirsiniz.mod_ssl
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
Kimlik doğrulamadan sözettiğimize göre, aşağıda gösterilen şekilde bir
yönergesine ihtiyacınız olacaktır:AllowOverride
Yönergeleri doğrudan ana sunucunun yapılandırma dosyasına koyacaksanız bu dosyaya yazma izniniz olmalıdır.
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.
çalıştırılabilirinin içinde derlenmiş olmalı ya da apache2.conf
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.
İ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.
Bu dosya belge kök dizini altında olmamalıdır. Böylece başkaları parola dosyasını indiremezler. Örneğin belgeleriniz /usr/local/apache/htdocs
üzerinden sunuluyorsa parola dosyanızı /usr/local/apache/passwd
Dosyayı oluşturmak için Apache ile gelen
uygulamasını kullanacağız. Bu uygulama Apache'nin kurulumunda belirtilen htpasswdbin
dizininde bulunur. Eğer Apache'yi üçüncü parti paketlerden kurduysanız, çalıştırılabilir dosyaların bulunduğu yollar üzerinde olmalıdır.
Bir dosya oluşturmak için şunları yazın:
size parola soracaktır arkasından da teyit etmek için parolayı tekrar girmenizi isteyecektir:htpasswd
Re-type new password: parolam
Adding password for user umut
normal yollar üzerinde değilse çalıştırmak için dosyanın bulunduğu tam yeri belirtmeniz gerekecektir. Dosyanın öntanımlı kurulum yeri: htpasswd/usr/local/apache2/bin/htpasswd
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 apache2.conf
dosyası kullanarak yapabilirsiniz. Örneğin, /usr/local/apache/htdocs/secret
dizinini korumayı amaçlıyorsanız, şu yönergeleri kullanabilirsiniz. Bu yönergeleri /usr/local/apache/htdocs/secret/.htaccess
içindeki
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
yönergesi kullanıcının kimliğini doğrulamakta kullanılacak yöntemi seçer. En çok kullanılan yöntem AuthTypeBasic
modülüyle gerçeklenmiştir. Temel (modauthbasicBasic
) kimlik doğrulamasıyla gönderilen parolanın şifrelenmeyeceğini unutmayın. Bu yöntem, bu sebepten dolayı
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: mod_ssl AuthType Digest
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 modauthdigest
yönergesi ile kimlik doğrulamada kullanılacak Saha 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.AuthName
alanında kimliği doğrulanmış olsun. Aynı sunucu üzerinde "Gizli Dosyalar"
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.
yönergesinin öntanımlı değeri AuthBasicProviderfile
olduğundan, bu durumda, bu yönergenin kullanımı isteğe bağlıdır. Ancak, eğer kimlik doğrulaması için
gibi farklı bir kaynak seçecekseniz bu yönergeyi kullanmanız gerekecektir.modauthndbd
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, htpasswd
programı ile oluşturulabilir ve değiştirilebilir. htdbmApache modülleri Veritabanı içindeki üçüncü parti modüllerinde çok sayıda başka kimlik doğrulama türü de vardır.
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 Require
yönergesini kullanmanın çeşitli yoları üzerinde duracağız.Require
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:
GroupName: umut samet engin kubilay
Dosya, sadece, boşluklarla birbirinden ayrılmış gurup üyelerinin isimlerinden oluşan uzun bir liste içerir.
Varolan parola dosyasına bir kullanıcı eklemek için şunu yazın:
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 -c
bölümünüzü
aşağıda görüldüğü şekilde değiştirebilirsiniz:
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
gurubunda listelenmiş ve password
dosyasında kaydı olan kişiye, parolayı doğru yazdığı takdirde izin verilecektir.
Ç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:
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.
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.
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.
modülleri bunu mümkün kılan iki modüldür. Depolama yönemi olarak modauthndbd
Bir metin dosyası yerine bir dbm dosyası kullanım örneği:
Başka seçenekler de mümkündür. Ayrınılar için
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.
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.
Ç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.
Kimlik doğrulama konusunu biraz daha genişletirsek,
gibi yetkilendirme taşıyıcısı
yönergelerle hangi iznin hangi sırayla uygulanacağını
belirlenebilir.
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ı
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, Require
yönergelerinin yapılandırma dosyasında göründükleri sıra ile çağırılır.Require
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
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.
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.
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.
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: Require
Burada, adres bir IP adresidir (veya kısmi bir IP addresidir)
Burada, alan_adı 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.
Örneğin, yorum alanını gereksiz iletilerle dolduran birini uzak tutmak istediğinizi varsayalım. Bu kişiyi uzak tutmak için şunları yapabilirsiniz:
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:
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:
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.
Kimlik doğrulama için tedarik tabanlı mekanizma kullanımının yan etkilerinden birisi,
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 Satisfy
(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 modauthndbd
modülü ile gelmektedir.modauthnsocache
Bu, bazı kullanıcılar için önemli bir başarım artışı sağlayabilir.
Apache tarafından desteklenen şifrelerle ilgili bilgi için Parola Biçemleri belgesine bakınız.
Erişim Denetimi nasıl belgesinden de bazı bilgiler edinebilirsiniz.
Modüller | Yönergeler | SSS | Terimler | Site Haritası
Apache HTTP Sunucusu Sürüm 2.4
Kimlik Doğrulama ve Yetkilendirme
Mevcut Diller: en | fr | ja | ko | tr
İlgili modüller ve Yönergeler
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.
Giriş
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.
Ön gereksinimler
Bu makalede bahsi geçen yönergeler ya ana sunucu yapılandırma dosyasında (genellikle
Çalışmaya Başlama
Burada, sunucu üzerindeki bir dizini parolayla korumak için gereken temel bilgiler verilecektir.
Birden çok kişiye izin vermek
Yukarıdaki yönergelerle bir dizinde sadece bir kişiye (umut adlı kullanıcıya) izin verir. Çoğunlukla birden çok kişiye izin verilmesi istenir. Bu durumda AuthGroupFile yönergesi devreye girer.
Diğer parola depolama yöntemleri
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.
Birden çok tedarikçi kullanmak
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ğr
Yetkilendirmenin biraz ötesi
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.
Kimlik Doğrulama Arabelleği
Zaman zaman kimlik doğrulama ağınızda veya sağlayıcı(ları)nızda kabul edilemez yükler oluşturur. Bu çoğunlukla mod_authn_dbd (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 aza
Daha fazla bilgi
Daha fazla bilgi için mod_auth_basic ve mod_authz_host modüllerinin belgelerine bakınız. AuthnProviderAlias yönergesi ile bazı yapılandırmalarınızı basitleştirebilirsiniz.