Kerberos - Настройка доменной авторизации для нескольких доменов
    • 29 May 2023
    • 1 Minute to read
    • Contributors
    • Dark
      Light
    • PDF

    Kerberos - Настройка доменной авторизации для нескольких доменов

    • Dark
      Light
    • PDF

    Article summary

    Настройка файлов конфигурации AD


    Рассмотрим на примере: Приложением пользуются сотрудники из двух разных доменов, и web-сайт размещён в другой отдельной доменной зоне:

    Домены: KUBIK.COM и RUBIK.COM

    Web-сайт: doczilla.kubikrubik.com

    1. На контроллере AD  каждого домена создать системного пользователя и добавить Service Principal Names (SPN) для него

    Логин:        doczilla
    Пароль:    doczPswd!

    описание команды: 

    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731241(v=ws.11)

    пример команды:

    setspn -A HTTP/doczilla.kubikrubik.com  doczilla

    2. На сервере приложения создать в  /opt/doczilla/cong/spnego/ отдельные директории под каждый домен и скопировать туда по 2 конфигурационных файла (jaas.conf, krb5.ini)

    cd /opt/doczilla/cong/spnego/
    
    mkdir kubik.com
    
    cp ./jaas.conf ./kubik.com/
    
    cp ./krb5.ini  ./kubik.com/
    
    mkdir rubik.com
    
    cp ./jaas.conf ./rubik.com/
    
    cp ./krb5.ini  ./rubik.com/

    3. На контроллере AD  каждого домена создать отдельный  «krb5.keytab» 

    описание команды:

    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass

    пример команды:

    ktpass -princ HTTP/doczilla.testdomain.local@TESTDOMAIN.LOCAL -mapuser doczilla@testdomain.local -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass doczPswd! -out krb5.keytab

    Если запрещено использовать шифрование RC4-HMAC-NT возможно AES256-SHA1. Необходимо в команде у ключа -crypto заменить алгоритм, и в Свойствах системной учетной записи в AD поставить галку «Поддержка Kerberos AES 256»

    Скопировать на сервер приложения в свои соответствующие папки:

    - создаем для домена kubik.com и копируем в /opt/doczilla/cong/spnego/kubik.com/

    ktpass -princ HTTP/doczilla.kubikrubik.com@KUBIKRUBIK.COM -mapuser doczilla@kubik.com -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass doczPswd! -out krb5.keytab

    - создаем для домена rubik.com и копируем в /opt/doczilla/cong/spnego/rubik.com/

    ktpass -princ HTTP/doczilla.kubikrubik.com@KUBIKRUBIK.COM -mapuser doczilla@rubik.com -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass doczPswd! -out krb5.keytab

    4. Необходимо отредактировать под свой домен все шаблоны конфигурационных файлов согласно комментариям внутри файлов:

    • jaas.conf
    • krb5.ini

    (при обновлении проекта шаблоны файлов не перезаписывать)

    5. В файле проекта ./bin/service.sh 

    - Включите режим расширенных логов для отладки, раскомментируйте:

    DEBUG="true"

    - Включите режим мультидоменной авторизации:

    SSO="MULTISPNEGO"

    - Замените наименование домена, в переменной (обязательно Большими Буквами). Указываем не домены пользователей, а который один для всех:

    DOMAIN="KUBIKRUBIK.COM"

    - Замените наименование сайта с приложением (HTTP/  не удалять)

    TARGET="HTTP/doczilla.kubikrubik.com"

    6. Настройка доверенной зоны (выполните п.1.6) указав web-сайт:

    doczilla.kubikrubik.com

    Настройка  LDAP  подключения


    1. Зайти в приложение и открыть раздел «Настройки» -> «Параметры» -> «Ldap»


    2. В блоке Ldap заполнить переменные (в поле description указаны примеры):

    - ldap url – адрес подключения

    ldap://192.168.0.1:389

    - ldap principal name - логин пользователя

    doczilla@testdomain.local

    - ldap password - пароль пользователя

    doczPswd!

    - search base - базовое уникальное имя

    dc=testdomain,dc=local

    3. Открыть раздел  «Администрирование» -> «Задания»

    4. Найти задание «Синхронизация AD пользователей»

    5. Сделать задачу активной и написать крон-выражение периодичности выполнения задачи, например каждый час:

    0  */24  *  *  *


    Содержимое шаблонов


    Пример для мульти-доменной авторизации 

    (для второго домена соответственно только kubik.com  заменить на  rubik.com)


      


    Was this article helpful?