Переводим Active Directory «LastLogon:» в Unix timestamp

В AD время храниться как количество 100-наносекундных интервалов, прошедших с 0 часов от 1 января 1601 года. Вряемя всегда хранится по Гринвичу. В данном формате храняться атрибуты LastLogon, LastLogonTimestamp и LastPwdSet. Для перевода в Unix timestamp вы можете воспользоваться следующей формулой:

$UnixTimestamp = ($WindowsTimeStamp/10000000)-11676009600

В самой Винде есть утилита w32tm при помощи которой вы можете конвериторовать:

C:\WINNT>w32tm /ntte 128905137323318000
149195 18:15:32.3318000 — 6/26/2009 12:15:32 PM (local time)

Active Directory аутентификация в Apache через Ldap

В принципе ничего сложного в этом нет, но все же есть кое какие нюансы. Покажу вам пример конфигурации в котором буду необходимые комментарии что бы понять что к чему. Права доступа я выставляю на папку /var/www/vhosts/weather.teaseo.ru/httpdocs/

SuexecUserGroup demo demo
ServerAdmin [email protected]
DocumentRoot /var/www/vhosts/weather.teaseo.ru/httpdocs
ServerName weather.teaseo.ru
ScriptAlias /cgi-bin/ «/var/www/vhosts/weather.teaseo.ru/cgi-bin/»
DirectoryIndex index.php index.html index.shtml
ErrorLog /var/www/vhosts/weather.teaseo.ru/logs/error.log
CustomLog /var/www/vhosts/weather.teaseo.ru/logs/access.log common DirectoryIndex index.php index.htm index.html
Options +Indexes // распространяется на файлы в /var/www/vhosts/weather.teaseo.ru/httpdocs/ и все другие папки и файлы в этой директории
AllowOverride all
AuthName «Weather Access»
AuthType Basic
AuthBasicProvider ldap // Собственно включаем ldap аутентификацию
AuthzLDAPAuthoritative Off //означает, что впоследствии модуль может разрешать доступ даже в тех случаях, если LDAP отклоняет авторизацию
AuthLDAPUrl ldap://ip адрес AD сервера:порт(как пример 192.168.1.1:389)/ou=организейшен юнит,dc=домен(как пример demo),dc=домен(как пример ua)?sAMAccountName?sub?(objectClass=*) // Сдесь есть маленький нюанс, как видите путь начинается с организационного юнита и это не спроста, иначе работать ничего не хочет, причину к сожалению обнаружить не удалось
AuthLDAPBindDN [email protected] // имя пользователя который имеет право смотреть в АД
AuthLDAPBindPassword «пароль» // Тут пароль на доступ в домен в кавычках обязательно
Require ldap-group cn=wm,ou=users_ITDepartment,ou=ITDepartment,ou=myou,dc=osticket,dc=org // Тут полный путь к группе в которую будут входить пользователи имеющие доступ