LINUX-BG Адрес : http://www.linux-bg.org |
Удостоверяване на потребител в Apache към Microsoft Active D |
![]() |
![]() |
От: Милен Панков Публикувана на: 15-04-2007 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=392214166 |
![]() |
![]() |
![]() |
![]() |
![]() |
Ако трябва да правим удостоверяване към Apache сървър работещ под линукс в Windows базирана мрежа използването на вече съществуващите акаунти на потребителите в активната директория на Windows сървъра ще улесни потребителите ни и няма да се налага да ги караме да помнят по две или повече потребителски имена и пароли. Тук ще опиша как може да стане това. ToDo: Да се тества дали конфигурациите работят към Windows 2000 Server. Вариант I - ползване на mod_auth_ldap Инсталираме си apache и openldap, ако нямаме вече инсталирани:
За да позволим удостоверяване, във файла ‘/etc/apache2/sites-enabled/000-default’ трябва да променим реда ‘AllowOverride None’ на ‘AllowOverride AuthConfig None’.
Създаваме директория, за която ще искаме удостоверяване:
и я описваме в конфигурацията на apache:
Файлът ‘/etc/apache2/conf.d/ldap_test’ трябва да съдържа следното:
Директивата ‘AuthLDAPURL’ ни дава адреса на ‘LDAP’ сървъра, като съответно трябва да замените ‘ldap.domain.com’ със хоста на Windows сървъра, а също така и ‘DC=domain’ и ‘DC=com’ със тези във вашата структура. За директивата ‘AuthLDAPBindDN’ ползвайте активен акаунт в MS Active Directory, като синтаксиса е от вида DOMAIN\username, а за директивата ‘AuthLDAPBindPassword’ - паролата на акаунта. Последните две са нужни, защото активната директория не позволява анонимни връзки. За порт ползвайте 3268 - порта на Global Catalog-а, защото при използването на стандартния LDAP порт 389 активната директория връща препратки, с които има проблеми.
вече всичко би трябвало да работи и адреса “http://the_linux_box/ldap_test” да ни удостовери с валиден потребител към активната директория. За да използваме удостоверяване по принадлежнаст към група, трябва да направим следните промени в конфигурацията - закоментираме или махаме директивата ‘Require valid-user’ и я заменяме със следното:
където ‘GroupName’ е името на групата, а domain и com заменяте с тези във вашата структурата. ToDo: Да се провери за възможност горните проблеми да се преодолеят. Ако искаме да удостоверяваме към група Administrators синтаксисът е по-различен, тъй като тя се намира в Builtin структурата на активната директория:
Вариант II - ползване на mod_auth_pam Инсталираме libapache2-mod-auth-pam и libpam-ldap, ако нямаме вече инсталирани:
Създаваме директория, за която ще искаме удостоверяване:
и я описваме в конфигурацията на apache:
Файлът ‘/etc/apache2/conf.d/pam_test’ трябва да съдържа следното:
Във файла ‘/etc/pam.d/apache2′ закоментираме всичко и добавяме следните два реда:
Във файла ‘/etc/pam_ldap.conf’ закоментираме всичко и добавяме следните редове:
Конфигурацията е аналогична с варианта с mod_auth_ldap. ‘host’ трябва да сочи към Windows хоста, ‘binddn’ и ‘bindpw’ съдържат активни потребителско име и парола от активната директория, като потребителското име е от вида ‘username@domain.com’. За порт пак ползваме порта на Global Catalog-а.
вече всичко би трябвало да работи и адреса “http://the_linux_box/pam_test” да ни удостовери с валиден потребител към активната директория. ToDo: Да се провери за възможност да се имплементира аутентикация по принадлежност към група. Вариант III - ползване на mod_auth_kerb За да ползваме удостоверяване чрез Kerberos първо трябва да направим няколко неща на Windows сървъра.
Съответно заменяме ‘ubuntu.domain.com’ и ‘DOMAIN.COM’ с тези в нашата структура, а за ‘DOMAIN\username’ и ‘password’ използваме активен потребител от активната директория. След това трябва да копираме файла keytab някъде на линукс машината, например в ‘/etc/apache2/auth’ и да рестриктираме правата върху него, така че само Apache сървъра да има достъп:
На Apache сървъра инсталираме mod-auth-kerb и krb5-config, ако вече нямаме инсталирани:
Файлът ‘/etc/krb5.conf’ трябва да съдържа следното:
Като трябва да замените ‘DOMAIN.COM’ с името на домейна във вашата структура, а вместо ‘kdc.domain.com’ да сложите хоста на Windows сървъра. Създаваме директория, за която ще искаме удостоверяване:
и я описваме в конфигурацията на apache:
Файлът ‘/etc/apache2/conf.d/krb_test’ трябва да съдържа следното:
като съответно заменяме ‘DOMAIN.COM’ с нашия домейн.
вече всичко би трябвало да работи и адреса “http://the_linux_box/krb_test” да ни удостовери с валиден потребител към активната директория. ToDo: Да се провери за възможност да се имплементира аутентикация по принадлежност към група. Вариант IV - ползване на mod_auth_imap Това не е точно удостоверяване към активната директория, защото се прави удостоверяване към IMAP сървъра на Windows-а, но може да свърши работа, ако имаме инсталиран Microsoft Exchange Server и потребителите, които удостоверяваме имат активни пощенски кутии на Exchange-а. Тук удостоверяването става по следния начин - потребителите подават към Apache-то потребителско име и парола, а Apache-то от своя страна пробва да се свърже с тях към IMAP сървъра. Ако IMAP сървъра удостовери потребителя, то и Apache-то от своя страна го удостоверява. На Apache-то ще ползваме mod_auth_imap и тъй като единствената дистрибуция, който има пакет за него е Mandriva 2007 ще го свалим и компилираме от официалната му станица, но първо за да го компилираме ще ни трябва dev пакета на Apache сървъра:
след това ще компилираме и инсталираме mod_auth_imap:
Създаваме директория, за която ще искаме удостоверяване:
и я описваме в конфигурацията на apache:
Файлът ‘/etc/apache2/conf.d/imap_test’ трябва да съдържа следното:
като за ‘imap.domain.com’ слагаме IMAP сървъра, а в ‘Auth_IMAP_Port’ - IMAP порта.
вече всичко би трябвало да работи и адреса “http://the_linux_box/imap_test” да ни удостовери с валиден потребител към активната директория. Ако ползвате mod-auth-pam и mod_auth_imap едновременно, добавете реда ‘AuthPAM_Enabled off’ в конфигурацията за директорията, за да забраните pam аутентикацията за тази директория, защото в противен случай ако pam модула се зарежда преди imap модула, то Apache-то винаги ще ползва удостоверяване чрез pam. ToDo: Всички конфигуррации позволяват единствено ползване на потребителско име от вида ‘username’, но не и от вида ‘DOMAIN\username’ или ‘username@domain.com’. Да се провери за възможност това да се имплементира. |
![]() |
![]() |
![]() |
![]() |
![]() |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|