Аутентификация на сервере LDAP с использованием пользовательских токенов React Native и Firebase
Я пытаюсь аутентифицировать своих пользователей (из моего приложения RN) через сервер LDAP (я уже нашел один, чтобы попробовать аутентификацию здесь, и это работает!). Я могу создать собственный токен с помощью Firebase каждый раз, когда получаю учетные данные пользователей (имя пользователя и пароль) и сохраняю их в базе данных Firebase в реальном времени.
Основная проблема заключается в том, что я не знаю, как связать свое приложение с сервером LDAP, я проверил и обнаружил, что мне нужно установить что-то вроде openLDAP или ldapjs, но я не понимаю, как должна проходить аутентификация.
- Логин пользователя в моем приложении RN
- Приложение RN отправляет учетные данные в Firebase
- Firebase создает собственный токен (использует функции Firebase для генерации собственного токена)
- Firebase возвращает пользовательский токен приложению RN
- Приложение RN отправляет токен на сервер LDAP (на сервере есть заранее определенные пользователи и пароли для тестирования)
- Сервер LDAP проверяет токен, следовательно, аутентификация
- Сервер LDAP возвращает атрибуты или "не найден" приложению RN
- Приложение RN предоставляет / запрещает доступ к приложению
Любая помощь или совет будут хорошо приняты, спасибо:) Извините за мой плохой английский.
1 ответ
Вы почти у цели, но вместо того, чтобы отправлять пользовательский токен Firebase на сервер LDAP, вы аутентифицируете пользователя на сервере LDAP перед созданием токена Firebase. Оба они должны быть выполнены в доверенной среде, такой как сервер, которым вы управляете, или облачные функции, и вы обычно будете использовать Firebase Admin SDK в этой среде.
Так:
- Логин пользователя в моем приложении RN.
- Приложение RN отправляет учетные данные в доверенную среду.
- Проверенные учетные данные доверенной среды на сервере LDAP.
- Доверенная среда создает собственный токен с помощью Firebase Admin SDK. При необходимости этот токен может содержать настраиваемые атрибуты с сервера LDAP в форме настраиваемых утверждений.
- Доверенная среда возвращает пользовательский токен приложению RN
- Приложение RN предоставляет / запрещает доступ к приложению
Подробнее об этом смотрите в документации Firebase по пользовательской аутентификации. Оттуда:
Для этого необходимо создать конечную точку сервера, которая принимает учетные данные для входа, такие как имя пользователя и пароль, и, если учетные данные действительны, возвращает пользовательский JWT. Пользовательский JWT, возвращенный с вашего сервера, может затем использоваться клиентским устройством для аутентификации в Firebase ( iOS, Android, Интернет).