Apache Active Directory NTLM Kimlik Doğrulama

 Apache web sunucusu ile Active Directory hesaplarından NTLM Kimlik Doğrulamasının nasıl yapılacağını inceleyeceğiz. Domainde bir Apache sunucunuz varsa domain kullanıcılarının kendi şifreleri ile local intranet sayfanıza erişmelerini istiyorsanız aşağıdaki gibi kurulumu yapabilirsiniz.

İlk olarak mod_authn_ntlm.so modülünü internetten indirin fakat dikkat edilmesi gereken bir durum var. Apache sunucunuz 32bit veya 64bit olabilir, bunu kontrol edip uygun versiyonu indirmelisiniz. Daha sonra indirdiğiniz dosyayı Apache/modules klasörüne kopyalayın.

Httpd.conf dosyasının içersine aşağıdaki satırı ekleyin.

LoadModule auth_ntlm_module modules/mod_authn_ntlm.so

Aşağıdaki iki modülün aktif olduğundan emin olun. (Satır önünde # olmamalı)

LoadModule ldap_module modules/mod_ldap.so

LoadModule rewrite_module modules/mod_rewrite.so

Aşağıdaki satırları da ekleyin. Web root'da /authenticate isimli bir klasör yoksa oluşturun. Bu klasör için şifreleme yapılacaktır.

RequestHeader unset X_ISRW_PROXY_AUTH_USER
<Location /authenticate >
    #AllowOverride None
    AuthName "Private location"
    AuthType SSPI
    NTLMAuth On
    NTLMAuthoritative On
    <RequireAll>
        <RequireAny>
            Require valid-user
            #require sspi-user EMEA\group_name
        </RequireAny>
        <RequireNone>
            Require user "ANONYMOUS LOGON"
            Require user "NT-AUTORITÄT\ANONYMOUS-ANMELDUNG"
        </RequireNone>
    </RequireAll>
    # use this to add the authenticated username to you header
    # so any backend system can fetch the current user
    # rewrite_module needs to be loaded then
    # while X_ISRW_PROXY_AUTH_USER is your header name
    RequestHeader set X_ISRW_PROXY_AUTH_USER expr=%{REMOTE_USER}
</Location>

Apache sunucusunu yeniden başlatın. Aşağıdaki kodu şifrelediğiniz klasörde bir php dosyasına yazın ve browser üzerinden sayfaya gidin.

<?php echo $_SERVER['REMOTE_USER']; ?>

Google