Аутентификация на сервере LDAP с использованием пользовательских токенов React Native и Firebase - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь аутентифицировать своих пользователей (из моего приложения RN) через сервер LDAP (я уже нашел один, чтобы попробовать аутентификацию здесь , и это работает!). Я могу создать собственный токен с помощью Firebase каждый раз, когда получаю учетные данные пользователей (имя пользователя и пароль) и сохраняю их в базе данных Firebase в реальном времени.

Основная проблема в том, что я не знаю, как подключить свое приложение к серверу LDAP, я проверил и обнаружил, что мне нужно установить что-то вроде openLDAP или ldapjs , но я не понимаю как должна быть аутентификация Мое предположение:

  1. Логин пользователя в моем приложении RN
  2. Приложение RN отправляет учетные данные в Firebase
  3. Firebase создает пользовательский токен (использует функции Firebase для генерации пользовательского токена)
  4. Firebase возвращает пользовательский токен приложению RN
  5. Приложение RN отправляет токен на сервер LDAP (на сервере уже заданы пользователи и пароли для тестирования)
  6. Сервер LDAP проверяет токен, следовательно, аутентификация
  7. Сервер LDAP возвращает атрибуты или «не найден» приложению RN
  8. Приложение RN предоставляет / запрещает доступ к приложению

Любая помощь или совет будут хорошо приняты, спасибо :) Извините за мой плохой английский.

1 Ответ

0 голосов
/ 05 января 2019

Вы почти на месте, но вместо того, чтобы отправлять пользовательский токен Firebase на сервер LDAP, вы аутентифицируете пользователя на сервере LDAP перед созданием токена Firebase. Оба они должны быть выполнены в надежной среде, например на сервере, которым вы управляете, или в облачных функциях, и вы обычно используете Firebase Admin SDK в этой среде.

Итак:

  1. Логин пользователя в моем приложении RN.
  2. Приложение RN отправляет учетные данные в доверенную среду.
  3. Проверенные учетные данные доверенной среды на сервере LDAP.
  4. Доверенная среда создает собственный токен, используя Firebase Admin SDK. При необходимости этот токен может содержать настраиваемые атрибуты с сервера LDAP в виде Настраиваемые утверждения .
  5. Доверенная среда возвращает пользовательский токен приложению RN
  6. Приложение RN предоставляет / запрещает доступ к приложению

Подробнее об этом см. Документацию Firebase по пользовательской аутентификации . Оттуда:

Для этого необходимо создать конечную точку сервера, которая принимает учетные данные для входа, такие как имя пользователя и пароль, и, если учетные данные действительны, возвращает пользовательский JWT. Пользовательский JWT, возвращенный с вашего сервера, может затем использоваться клиентским устройством для аутентификации с помощью Firebase ( iOS , Android , web ).

...