使用 React Native 和 Firebase 自定义令牌在 LDAP 服务器上进行身份验证

Ren*_*emy 3 openldap ldapjs react-native firebase-authentication firebase-admin

我正在尝试通过 LDAP 服务器对我的用户(从我的 RN 应用程序)进行身份验证(我已经找到一个尝试在此处进行身份验证,并且它有效!)。每次收到用户的凭据(用户名和密码)时,我都可以使用 Firebase 创建自定义令牌,并将其保存在 Firebase 实时数据库中。

主要问题是我不知道如何将我的应用程序与 LDAP 服务器连接,我调查并发现我必须安装openLDAPldapjs之类的东西,但我不明白如何进行身份验证我的猜测是:

  1. 用户登录我的 RN 应用程序
  2. RN 应用程序将凭据发送到 Firebase
  3. Firebase 创建自定义令牌(使用 Firebase 函数生成自定义令牌)
  4. Firebase 将自定义令牌返回给 RN 应用程序
  5. RN应用程序将令牌发送到LDAP服务器(服务器有预定的用户和密码用于测试)
  6. LDAP 服务器验证令牌,因此,身份验证
  7. LDAP 服务器向 RN 应用程序返回属性或“未找到”
  8. RN 应用程序授予/拒绝对应用程序的访问

任何帮助或建议都会受到欢迎,谢谢:) 抱歉我的英语不好。

Fra*_*len 5

您已经快完成了,但您无需将 Firebase 自定义令牌发送到 LDAP 服务器,而是在创建 Firebase 令牌之前使用 LDAP 服务器对用户进行身份验证。这两项操作都必须在受信任的环境中完成,例如您控制的服务器或 Cloud Functions,并且您通常会在该环境中使用 Firebase Admin SDK。

\n\n

所以:

\n\n
    \n
  1. 用户登录我的 RN 应用程序。
  2. \n
  3. RN 应用程序将凭证发送到受信任的环境。
  4. \n
  5. 受信任的环境通过 LDAP 服务器验证了凭据。
  6. \n
  7. 可信环境使用 Firebase Admin SDK 创建自定义令牌。如果需要,此令牌可以包含来自 LDAP 服务器的自定义属性(采用Custom Claims的形式)。
  8. \n
  9. 可信环境将自定义令牌返回给 RN 应用程序
  10. \n
  11. RN 应用程序授予/拒绝对应用程序的访问
  12. \n
\n\n

有关详细信息,请参阅有关自定义身份验证的 Firebase 文档。从那里:

\n\n
\n

为此,您必须创建一个接受登录凭据\xe2\x80\x94(例如用户名和密码\xe2\x80\x94)的服务器终结点,并且如果凭据有效,则返回自定义 JWT。然后,客户端设备可以使用从服务器返回的自定义 JWT 通过 Firebase(iOSAndroidweb)进行身份验证。

\n
\n