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

How to use Firebase Authentication with Okta?

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

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

没有用于 Firebase 身份验证的内置 Okta 提供程序,但如果您有现有的身份验证流程,则可以很容易地将其作为 custom provider.

集成到 Firebase 中

这是一个 6 步过程:

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