我正在尝试通过LDAP服务器对我的用户(来自RN应用程序)进行身份验证(我已经在这里找到了一个尝试身份验证的服务器,它很有效!)。每次收到用户的凭据(用户名和密码)时,我都可以使用Firebase创建一个自定义令牌,并将其保存在Firebase实时数据库中。
主要的问题是我不知道如何将我的应用程序与LDAP服务器连接,我进行了调查,发现我必须安装openLDAP或ldapjs之类的东西,但我不知道身份验证必须如何我的猜测是:
- 用户登录我的注册护士应用程序
- RN应用程序向Firebase发送凭据
- Firebase创建自定义令牌(使用Firebase函数生成自定义令牌)
- Firebase将自定义令牌返回到RN应用程序
- RN应用程序将令牌发送到LDAP服务器(服务器具有用于测试的预定用户和密码)
- LDAP服务器验证令牌,因此验证
- LDAP服务器向RN应用程序返回属性或"未找到">
- RN应用程序授予/拒绝访问该应用程序
我们将竭诚为您提供任何帮助或建议,谢谢:)抱歉我英语不好。
您已接近目标,但您没有将Firebase自定义令牌发送到LDAP服务器,而是在生成Firebase令牌之前使用LDAP服务器对用户进行身份验证。这两者都必须在受信任的环境中完成,例如您控制的服务器或云功能,并且您通常会在该环境中使用Firebase Admin SDK。
因此:
- 用户登录我的注册护士应用程序
- RN应用程序向可信环境发送凭证
- 受信任的环境已通过LDAP服务器验证凭据
- 受信任的环境使用Firebase Admin SDK创建自定义令牌。如果需要,此令牌可以以自定义声明的形式包含LDAP服务器的自定义属性
- 可信环境将自定义令牌返回给RN应用程序
- RN应用程序授予/拒绝访问该应用程序
有关此方面的更多信息,请参阅有关自定义身份验证的Firebase文档。从那里:
要实现这一点,您必须创建一个接受登录凭据(如用户名和密码)的服务器端点,如果凭据有效,则返回一个自定义JWT。然后,客户端设备可以使用从服务器返回的自定义JWT向Firebase(iOS、Android、web)进行身份验证。