Запуск Kerberos для отдельного сервиса на NodeJS
Столкнулся с проблемой получения имени пользователя авторизованного в системе. Условие, пользователь должен автоматически производить вход в веб приложения компании(компьютер в домене) без запроса ввода логина и пароля от своей учетки (AD).
Фронт написан на React JS. Бэк на Node JS с использованием фреймворка express, работает по такому же адресу что и фронт но с другим портом(5001). Дополнительно в бек скачен npm пакет Kerberos. Для работы с протоколом kerberos использовал промежуточное программное обеспечение в express (app.use) и после получения информации о пользователе уже опрокидывал информацию в get запрос (app.get). Где ищется информация в AD по идентификатору пользователя. В итоге фронт и бек залиты на удаленную машину на Ubuntu где установлен веб-сервере Nginx. На удаленной машине произведена настройка протокола Kerberos. Успешно протестировано получение билетов на удаленной машине с помощью команды knit. И так же при заходе на сайт успешно отображается авторизация и пользователь.
Это скин со вкладки сеть при загрузке веб-приложения:
Но если делать сделать запрос в браузере на адрес веб-сервера, то авторизации там нет, как я понимаю потому что используется другой порт. Вся информация при этом в браузере отображается как мне нужно, возвращаемый формат JSON.
Скрин по адресу веб-сервиса:
Вот конфиг в nginx:
server {
listen *:80 default_server;
server_name site.ru;
root /путь/html;
index index.html index.htm;
location / {
auth_gss on;
auth_gss_realm AD.DOMEN.RU;
add_header 'UserAD' $remote_user always;
auth_gss_keytab /etc/krb5.keytab;
auth_gss_service_name HTTP/site.ru;
}
}
Как прикрутить авторизацию к адресу веб-сервиса, а не к самому сайту, где нужно указать порт или полностью весь адрес? Или как то в react JS можно просто получить авторизованного пользователя системы?
Как пример, сайт имеет название http://site.ru, а веб-сервис адрес: http://site.ru:5001/api/user
