使用OpenID Connect进行Firebase身份验证

35
我想通过OpenID Connect对用户进行Firebase身份验证。换句话说:
  • 创建Firebase项目
  • 在身份验证下添加用户
  • 获取实现OIDC Discovery的项目的发行者URL
  • 获取客户端ID
  • 在充当OIDC客户端的应用中使用发行者URL和客户端ID,以检索Firebase项目中用户的信息/ id_token。

文档没有提到这种可能性,所以如果不可能,我会理解的。

然而:

  • 使用OIDC是执行这些操作的标准方式。
  • 这篇文章这篇文章实际上告诉我这是/曾经可以实现的。
  • 他们提到的OIDC发现文档在我的项目中也是可用的,尽管它不完整(缺少端点URL)
  • 研究GC dev控制台后,似乎OAuth2在Firebase SDK内部使用-新创建的服务帐户继承了一些回调URL,这些URL属于我的Firebase项目

使用Firebase Auth实现自己的IDP似乎过于繁琐,特别是它可能已经可用。

有任何提示吗?


嗨。很抱歉打扰了一个旧话题,但你找到解决问题的方法了吗? - parser_failed
不,我放弃了这个想法,改为与SDK集成。 - sfThomas
这真是令人费解,看起来仍不支持,公钥已发布,但不符合OpenID格式。 https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com - darnmason
1个回答

9

虽然这是一个老问题,但我很惊讶没有人回答它。

Firebase 提供了使用更简单的 Firebase Auth 或更全面的 Identity Platform 进行用户认证,而且 Identity Platform 支持 OIDC 认证

这里有一个比较表格。

只需启用 Identity Platform 的项目即可开始认证用户,无需改变任何代码。这两个服务都使用同样的 Firebase JS SDK 进行身份验证,使得迁移变得容易。

唯一的 "缺点" 是 Identity Platform 不是免费的,但拥有非常慷慨的免费层级。


1
您所描述的是如何在使用Firebase或Google Identity SDK时通过联合提供程序进行登录。如果我理解正确,OP所问的是相反的:他希望用户目录位于Firebase中,然后只需将OIDC兼容的应用程序指向Firebase的“/well-known/openid-configuration”端点即可使其正常工作。 - Pieter Ennes
+1 对Pieter所说的内容表示赞同。尽管你说的完全正确,但并没有回答到原帖问题,即如何在你的应用中使用OIDC协议以将Firebase作为IDP。 - AgileZebra
@Brian Burton 你有没有想法如何在Flutter中实现这个功能? - Deven
@AgileZebra 身份平台支持自己构建身份提供者(IDP),如果你认为这是 OP 的最终目标。如果你觉得我的回答不正确,请随意提供你自己的答案。 - Brian Burton
1
@BrianBurton。我没有自己的答案。我来这里是为了寻找与OP相同问题的答案。 - AgileZebra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接