#javascript #angularjs #authentication #pki
#javascript #angularjs #аутентификация #pki
Вопрос:
Я борюсь с попыткой аутентификации в приложении AngularJS с использованием PKI. Все вопросы и примеры, которые я видел, показывают аутентификацию с использованием логина / пароля вместо этого. Однако я работаю в интрасети, где мы последовательно используем ключи PKI. Я прочитал различные предложения в Интернете, но, похоже, ни в одном из них не обсуждается моя конкретная архитектура.
Угловая сторона содержит несколько страниц / контроллеров, и у меня нет способа контролировать, какую страницу пользователь посещает первой. Мне нужна информация об авторизации на каждой странице.
Приложение настроено с помощью службы NodeJS REST для получения авторизаций пользователя и другой информации на основе открытого ключа пользователя (передаваемого через сертификаты). Поскольку служба NodeJS должна связываться с внешними серверами, я хочу вызвать ее только один раз и сохранить объект authorizedUser (возможно, в rootScope?)
Я рассмотрел создание сервисов, поставщиков и т.д. Но, похоже, ни один из них не подходит для этой задачи. Подводя итог:
- Авторизация с использованием сертификатов PKI, а не логина / пароля
- Сертификаты используются для доступа к службе REST NodeJS, но должны быть вызваны только один раз
- Нескольким угловым контроллерам / страницам требуется информация для авторизации
Каков был бы наилучший подход здесь?
Комментарии:
1. Как насчет того, чтобы отправить сертификат на сервер и сгенерировать токен jwt, действительный для каждого запроса?
Ответ №1:
Хорошо — я понял это. Мой подход состоял в том, чтобы поместить вызов веб-сервиса на серверную часть NodeJS в module.run() и установить $ rootScope в блоке $ http.get().success(). Серверная часть NodeJS получает сертификаты из вызова webservice и выполняет поиск, который ей необходимо выполнить.
Я не уверен, что это лучший подход, но пока он работает.