2016-12-05 2 views
0

Мне было поручено создать аутентификацию LDAP в интерфейсном приложении Javascript.POST Call to Authenticate User to Front end Application

Я очень ограничен во времени и располагаю очень маленьким набором инструментов. Набор инструментов - это внешнее приложение javascript и доступное приложение C#, которое я могу сделать почтой и получить запросы.

Я думал, что могу просто позвонить, например https://mybackend.com/authenticate Где бы я разместил имя пользователя и пароль.

И на бэкэнд это вернет, был ли пользователь действительным в AD. Который я могу использовать на интерфейсе, чтобы пользователь вошел в систему.

Этот подход крайне небезопасен или имеет недостатки? Я думаю, что если я отправляю на бэкэнд выше, то не много будет выставлено.

Любые советы были бы очень полезны.

+0

Поскольку вы - магазин окон с AD, вы также можете рассмотреть возможность использования ADFS с oAuth2. Затем вам нужно будет перенаправить своих пользователей на экран входа в систему, вместо того, чтобы самостоятельно получать имя пользователя и пароль. С другой стороны, вам не нужно беспокоиться о том, что ваш собственный Webapp обрабатывает пароли или разговаривает с AD. http://blog.scottlogic.com/2015/03/09/OAUTH2-Authentication-with-ADFS-3.0.html – gnud

+0

Если бы у меня была возможность использовать backend-узел, здесь не было бы проблем! – Xogle

ответ

1

Этот подход крайне небезопасен или имеет недостатки?

Это небезопасно, это обычный способ, которым вы это сделаете. Можно добавить дополнительную безопасность, добавив токен CSRF, который будет проверен на сервере для любой формы submit.

И да, вы должны отправить все данные по HTTPS, это зашифрует полезную нагрузку.

+0

Спасибо, подожду еще несколько ответов, прежде чем принимать это. – Xogle

0

Весь метод небезопасен. Особенно без HTTPS.

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

+0

Это будет HTTPS. Если бы кто-то пытался аутентифицироваться через HTTP, я бы чувствовал себя очень плохо для них.;) – Xogle

1

Что вы делаете, это нормально для интерфейсных JavaScript-фреймворков, таких как Angular. До тех пор, пока вы используете Https, все должно быть в порядке.

Только проблема заключается в том, как вы будете обрабатывать запросы страницы подпоследовательности. Есть два способа справиться с этим -

  1. Самый простой способ заключается в использовании ASP.Net MVC в качестве страницы входа, и использовать Cookie Owin Middleware. Поскольку тот же файл cookie отправляется обратно на сервер по вызовам API, вам не нужно делать никаких дополнительных работ. Вы можете скачать my sample code at GitHub - OwinAuthenticationService.

  2. Другой способ - использовать токен-носитель, в котором вам придется отправлять один и тот же токен на сервер при каждом запросе страницы.

+0

Но мне нужно только пройти аутентификацию, а затем я закончил с сервером. Поэтому теоретически у меня не было бы последующих запросов на страницу. Правильно? – Xogle

+0

Ответ - нет. HTTP *** без гражданства ***. Это означает, что вам придется как-то отправить обратно авторизацию в любом варианте 1 или 2. – Win

+0

Приложение представляет собой один пейджер. Нет маршрутизации и 1 простая задача. Аутентифицируйте пользователя и выполните 1 функцию (отправьте электронное письмо). Вот и все. – Xogle