Инструменты пользователя

Инструменты сайта


misc:spnego

Это старая версия документа!


Прозрачная авторизация доменного пользователя через NGINX

Инструкция написана для Ubuntu 24.04

Настройка времени

  1. Настройка временной зоны:
    timedatectl set-timezone Europe/Moscow

    Просмотреть список временных зон можно командой:

    timedatectl list-timezones
  2. Устанавливаем NTP-клиент Chrony
    apt install chrony
  3. Настраиваем список NTP-серверов для синхронизации времени в файле /etc/chrony/chrony.conf
    ...
    pool domain.local
    # pool
    ...

    В данном случае указываем либо список IP-адресов (доменных имен) NTP-серверов в каждой строчке, либо просто указываем имя домена

  4. Запускаем демон chrony
    systemctl enable chronyd --now

Сборка динамического модуля SPNEGO для NGINX

Скомпилировать модуль по инструкции можно на другом ПК скопировав потом файл ngx_http_auth_spnego_module.so
  1. Проверяем установленную версию NGINX:
    nginx -V
  2. Устанавливаем необходимые пакеты
    apt install git build-essential libpcre++-dev zlib1g-dev libkrb5-dev libssl-dev libxslt-dev libgd-dev
  3. Скачиваем и распаковываем исходники nginx согласно установленной версии
    cd ~
    mkdir nginx-dev
    cd nginx-dev
    wget https://nginx.org/download/nginx-1.xx.x.tar.gz
    tar -xzvf nginx-1.xx.x.tar.gz
  4. Скачиваем и компилируем динамический модуль SPNEGO
    cd ~/nginx-dev
    git clone https://github.com/stnoonan/spnego-http-auth-nginx-module.git
    cd nginx-1.xx.x
    ./configure --with-compat --add-dynamic-module=../spnego-http-auth-nginx-module
    make modules

    В папке objs должен появиться файл ngx_http_auth_spnego_module.so

Установка динамического модуля SPNEGO

  1. Скопировать скомпилированный модуль ngx_http_auth_spnego_module.so
    mkdir -p /usr/lib/nginx/modules
    cp path/to/ngx_http_auth_spnego_module.so /usr/lib/nginx/modules/
  2. Создать конфигурационный файл для модуля
    vi /etc/nginx/modules-available/spnego-http-auth-nginx-module.conf
  3. Прописать в файл загрузку модуля
    load_module "/usr/lib/nginx/modules/ngx_http_auth_spnego_module.so";
  4. Включить модуль для nginx
    cd /etc/nginx/modules-enabled
    ln -s ../modules-available/spnego-http-auth-nginx-module.conf
    systemctl reload nginx
misc/spnego.1781973083.txt.gz · Последнее изменение: nikolay