如何在 Okta 中使用 Firebase 身份验证?

Nar*_*esh 3 openid-connect okta firebase-authentication

我目前正在使用内置 OIDC 提供商(Google、Facebook 等)的应用程序中使用 Firebase 身份验证。是否可以将 Okta 用作额外的 OIDC 提供程序,对我的应用程序进行最少的修改,这意味着 Okta 的行为应该与任何其他内置提供程序一样?Firebase Auth apis,例如firebase.auth().currentUser并且firebase.auth().onAuthStateChanged()应该仍然有效。

自定义身份验证的文档页面讨论了从身份验证服务器获取自定义令牌,但没有说明这是否是 OAuth 访问令牌。是否有与 Firebase 身份验证无缝协作的 Okta 集成示例或通用 OIDC 集成示例?

Fra*_*len 8

Firebase 身份验证没有内置的 Okta 提供程序,但如果您有现有的身份验证流程,则可以很容易地将其作为自定义提供程序集成到 Firebase 中。

这是一个6步过程:

  1. 您在客户端上收集用户凭据。
  2. 您将这些凭据传递给受信任的环境,无论是您控制的服务器还是 Cloud Functions。
  3. 在服务器上,您根据 Okta 验证凭据是否正确,通常是通过调用服务器端 API 以及您提供的密钥来提供。
  4. 然后,您使用该调用的结果为用户创建一个新的 ID 令牌。这是 JWT,而不是 OAuth 访问令牌。
  5. 您将该 ID 令牌从服务器传递回客户端。
  6. 然后客户端firebase.auth().signInWithCustomToken(token)使用 ID 令牌调用以登录 Firebase 身份验证。