Serwer www Apache z autoryzacją w Active Directory

Apache

Laboratorium
  • Windows Server 2016 - Active Directory (SATKAS.LOCAL)
  • Linux SUSE Standard Enterprise 15 - usługa www oparta o httpd
Operacje na Windows Server

Na Windows Server mamy utworzoną domenę SATKAS.LOCAL. Tworzymy grupę apache i użytkowników wedle uznania. Dodajemy użytkowników do grupy apache. Utworzyłem w grupie apache jeszcze jednego użytkownika, który odpowiedzialny będzie za powiązanie nazwy DN podczas fazy wyszukiwania. Nazwałem użytkownika Server Web (konto suse@satkas.local)

Operacje na SUSE Linux

Zainstalowany mamy serwer www httpd. Uaktywniamy moduły odpowiedzialne za autoryzację w bazie ldap. Są to: ldap i authnz_ldap

Można to zrobić w yast2 (Network Services->HTTP Server). Po czym wykonujemy alt+M (wchodzimy do sekcji Moduły) i z listy wybieramy wspomniane moduły wykonując na nich alt+t (zmień status). Wychodzimy wprowadzając alt+k i alt+z

Można powyższą operację wykonać bezpośrednio w pliku /etc/sysconfig/apache2 dopisując do sekcji

APACHE_MODULES="authz_host actions alias authz_user authz_groupfile authn_file auth_basic autoindex cgi dir env expires include log_config mime negotiation setenvif userdir ldap authnz_ldap ssl php7 authn_core reqtimeout socache_shmcb authz_core"

odpowiednie moduły ldap

Teraz trzeba skonfigurować miejsce w systemie plików do którego dostęp będzie na hasło z Active Directory.

Domyślnie w SUSE tzw DirectoryRoot serwera webowego znajduje się w:

/srv/www/htdocs (odpowiada za to plik konfiguracyjny w /etc/apache2/default-server.conf)

Tworzymy sobie katalog

mkdir /srv/www/htdoc/sec

Tworzymy zawartość katalogu

touch /srv/www/htdoc/sec/index.html
echo "Strona z uwzględnieniem autoryzacji w AD" > /srv/www/htdoc/sec/index.html

Edytujemy plik /etc/apache2/default-server.conf i tworzymy nową sekcję Directory (zaraz pod aktualną sekcją Directory)

<Directory /srv/www/htdocs/sec>
          AuthLDAPBindDN "CN=Server Web,CN=Users,DC=satkas,DC=local"
          AuthLDAPBindPassword xxxxxxx
          AuthLDAPURL "ldap://satkas.local/CN=Users,DC=satkas,DC=local?sAMAccountName?sub?(objectClass=*)"
          AuthType Basic
          AuthName "SATKAS.LOCAL Authentication"
          AuthBasicProvider ldap
          AuthLDAPGroupAttributeIsDN on
          Require ldap-group CN=apache,CN=Users,DC=satkas,DC=local
</Directory>

Po zapisaniu zmian wystarczy zrestartować usługę www

systemctl restart apache2

Autoryzujemy się użytkownikami z grupy (w AD) apache