微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带有 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 举报,一经查实,本站将立刻删除。