Использование Active Directory (с LDAP) для аутентификации на фронте angularjs / javascript - каким должен быть поток процесса? - PullRequest
1 голос
/ 14 июня 2019

Я работаю над проектом, в котором нам нужно аутентифицировать пользователя в приложении, используя его / ее учетные данные Windows.Frontend использует Angularjs и backend java.

После значительных исследований я обнаружил, что на внешнем интерфейсе нет способа напрямую получить пользователя Windows и пройти из-за безопасности.проблемы.

Но я думаю, что весь процесс должен начаться здесь, с внешнего интерфейса, с получения этих двух зашифрованных учетных данных или, по крайней мере, токена и отправки их бэкэнду, чтобы запустить процесс аутентификации ntlm.

А также, не уверен, должен ли пользователь войти в приложение, введя свои учетные данные Windows, или это должно быть автоматически выполнено с помощью ntlm passthrough.

У меня нет хорошегосхватить концепцию, и это потому, что большинство связанных источников, которые я обнаружил, имеют отношение к серверным решениям (C # 80% из них), но почти ничего для фронтэнда.Итак, мне скромно требуются некоторые разъяснения на эту тему.Есть ли какое-то промежуточное программное обеспечение или пакет npm, который я должен использовать, чтобы получить user & pass, или что бы вы посоветовали?

1 Ответ

1 голос
/ 18 июня 2019

Веб-серверы предоставляют определенные серверные переменные для обработки запросов кода, которые они обслуживают.

Для меня, используя IIS, они описаны здесь: https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms524602%28v%3dvs.90%29

Так как я использую IISNode; моя среда node.js полностью встроена в IIS; У меня есть доступ к этим переменным сервера. Как описано в ссылке, у каждого языка программирования есть свой способ доступа к этим переменным.

Так что я бы усомнился, если бы в Java их тоже не было. Точный код будет зависеть от вашего бэк-энда.

Но быстрый поиск «переменных сервера java» уже дает мне следующее:

https://docs.oracle.com/cd/E19534-01/820-3288/gawim/index.html для менеджера доступа Java.

http://users.polytech.unice.fr/~buffa/cours/internet/POLYS/servlets/Servlet-Tutorial-CGI-Variables.html для JSP старой школы.

Как получить переменные сервера, используя apache wicket 1.54? для сервера java wicket.

Итак, взгляните на документацию по вашему конкретному программному обеспечению веб-сервера или API Java. Должен быть список и пример кода того, как получить к ним доступ.

Как только вы получите эту сторону сервера данных, вы можете выполнить запрос LDAP и затем вернуть результаты клиентской стороне.

...