Настройка SSO (Single Sign On) авторизации на Apache в Active Directory (Debian 8 Jessie/Ubuntu Server 14.04)

SSO (Single Sing-on) – позволяет пользователям вошедшим в систему не вводить пароль при авторизации на доменных сетевых ресурсах. Этот же механизм можно запросто прикрепить к Apache, что бы позволить доменным пользователям проходить аутентификацию, например на внутреннем сайте компании, не вводя имя пользователя и пароль.

 

Исходные данные:

  • Контроллер домена (DC1) на Windows Server 2012 R2, домен JAKONDA.LOCAL
  • Веб-сервер (webserver) (Apache 2.4.10) на Debian 8 Jessie

 

Настройка системы (Debian 8 Jessie)

Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле (/etc/hostname):

 

Настраиваем синхронизацию времени с контроллером домена, выполняем установку NTP, выполняем синхронизацию времени с контроллером домена:

Более подробно о синхронизации времени на Debian 8 Jessie/Ubuntu Server 14.04 можно почитать в этой статье

 

Настройка Active Directory (Windows Server 2012 R2)

В DNS зону (JAKONDA.LOCAL), добавляем A-запись веб-сервера:

 

Создаем служебного пользователя (прим. apache), с бесконечным срок действия пароля.

 

Создаем KEYTAB-файл (необходим для аутентификации пользователей в Active Directory). В командной строке с правами администраторы выполняем команду (соблюдая регистр):

 

Полученный KEYTAB-файл, передаем любым удобным способом на Веб-сервер (расположение KEYTAB-файла на моем веб-сервере — /etc/webserver.keytab). Как передать файл посредством утилиты PuTTY можно прочитать тут

 

Настройка Kerberos (Debian 8 Jessie)

Установка пакетов для поддержки аутентификации Kerberos:

В ходе установки может появится запрос указать область по-умолчанию для Kerberos, область необходимо его указать в заглавном виде (прим. JAKONDA.LOCAL)

 

Файл конфигурации Kerberos (/etc/krb5.conf), приводим к виду:

 

Проверка работы Kerberos, выполним авторизацию в Active Directory:

Удаляем полученный билет:

 

Настройка Apache (Debian 8 Jessie)

Выставляем права на KEYTAB-файл для веб-сервера:

 

В качестве примера Kerberos аутентификации в Apache, в конфигурацию веб-сервера по-умолчанию (000-default.conf), добавляем:

 

Чтобы SSO аутентификации проходила корректно, необходимо добавить веб-сервер в зону местной интрасети:

 

Хочу обратить внимание, что при попытке доступа на сайт по IP-адресу SSO аутентификация работать не будет. Необходимо обязательно использовать доменное имя (прим. http://webserver)

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Всего комментариев: 4 Комментировать

  1. Иван /

    Подскажите а сервер нужно в домен вводить?

    1. Жаконда / Автор записи

      Нет, сервер в домен вводить не нужно

  2. Сергей /

    а как сделать чтобы при листинге директории через apache были видны при монтированные разделы nfs

  3. Игорь /

    Добрый день!

    Подскажите, можно ли сделать аутентификацию на основе групп AD? Т.е. пользователи не принадлежащие группе, не смогли бы войти на сервер?

Оставить ответ

восемнадцать − шесть =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика