带有 Okta 身份提供商 (IdP) 的 Google 云存储

问题描述

我正在研究构建使用 Google Cloud Storage (GCP) 存储数据和 Okta 作为身份提供者 (IdP) 而不使用任何自定义 SDK 的网络应用程序的可行性。我仅限于客户端 JS 和服务器端 HTTP API 请求。在这些条件下,是否可以使用 Okta IdP 对 Google Cloud Storage (GCP) 请求进行身份验证?

Firebase

Google 的 Cloud Storage authentication 文章指出,“如果您要设计的应用程序支持最终用户的多种身份验证选项,请使用 Firebase 身份验证...”。

Firebase Authentication:“要让用户登录您的应用,您首先需要从用户那里获取身份验证凭据。这些凭据可以是用户的电子邮件地址和密码,也可以是来自联合身份提供商的 OAuth 令牌。然后,您将这些凭据传递给 Firebase 身份验证 SDK。然后我们的后端服务将验证这些凭据并向客户端返回响应。”

这个工作流程描述了我正在尝试做的事情;但是,Firebase 文档中没有提到 Okta 作为身份提供者。也就是说,Authenticate with Firebase in JavaScript Using a Custom Authentication System 意味着可以通过“自定义令牌”使用 Okta。

自定义令牌

Firebase Documentation Create Custom Tokens:“Firebase 允许您使用安全的 JSON 网络令牌 (JWT) 对用户或设备进行身份验证,从而使您能够完全控制身份验证。您在服务器上生成这些令牌,然后将它们传递回客户端设备,然后使用它们通过 signInWithCustomToken() 方法进行身份验证。[...] 自定义令牌是签名的 JWT,其中用于签名的私钥属于 Google 服务帐户。”

Okta Developer Docs Build a JWT With a Private Key:“如果您将客户端配置为使用 private_key_jwt 客户端身份验证方法,那么您希望构建一个 JWT,使用 RSA 或 ECDSA 算法(RS256、RS384、RS512、 ES256、ES384、ES512)。”

结论

似乎可以使用从 Okta 检索的自定义 JSON Web 令牌对向 GCP 发出的请求进行身份验证;但是,尚不清楚是否可以在不使用服务器端 SDK 的情况下对 Firebase 中的自定义 JWT 进行身份验证。

我可以编写一个中间件服务来充当 Firebase SDK 的前端;然而,这是一个复杂的解决方案,它增加了开发时间,产生了额外的故障点,并使操作维护更加困难。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)