通过 OpenID Connect 进行 Firebase 身份验证

Posted

技术标签:

【中文标题】通过 OpenID Connect 进行 Firebase 身份验证【英文标题】:Firebase Authentication via OpenID Connect 【发布时间】:2018-04-12 19:10:48 【问题描述】:

我想通过 OpenID Connect 对用户进行 Firebase 身份验证。换句话说:

创建一个 Firebase 项目 在认证下添加用户 为我的实现 OIDC 发现的项目获取颁发者 URL 获取客户端 ID 在充当 OIDC 客户端的我的应用中使用颁发者 URL 和 clientID 为 Firebase 项目中的用户检索信息/id_token

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

但是:

使用 OIDC 是执行这些操作的标准方法 this 和 this 的帖子实际上告诉我这是/可能的 他们提到的 OIDC 发现文档实际上也可用于我的项目,尽管它不完整(缺少端点 URL) 在 GC 开发控制台中挖掘,似乎 OAuth2 在 Firebase SDK 内部使用 - 新创建的服务帐户继承了一些属于我的 Firebase 项目的回调 URL

使用 Firebase Auth 实现我自己的 IDP 似乎有点过头了,尤其是它可能已经可用了。

任何提示任何人?

【问题讨论】:

嗨。很抱歉碰到一个老话题,但您找到解决问题的方法了吗? 不,我放弃了这个想法,而是与 SDK 集成。 这令人难以置信,看起来这仍然不受支持,公钥只是不是以 OpenID 格式发布的。 googleapis.com/robot/v1/metadata/x509/… 【参考方案1】:

老问题,但我很惊讶没有人回答这个问题。

借助 Firebase,您可以选择使用更简单的 Firebase 身份验证或更全面的 Identity Platform 来验证您的用户和 Identity Platform does support OIDC 身份验证。

Here's a comparison of the differences.

只需为您的项目启用身份平台,它就会开始验证用户而无需更改任何代码行。两种服务都使用相同的 Firebase JS SDK 进行身份验证,从而使转换变得容易。

唯一的“缺点”是 Identity Platform 不是免费的,但确实有一个非常慷慨的免费层。

【讨论】:

以上是关于通过 OpenID Connect 进行 Firebase 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

通过 OpenID Connect 进行 Firebase 身份验证

设置 openid-connect 基础设施

使用 OAuth2/OpenId Connect 和微服务进行身份验证和授权

如何使用 openid connect OIDC 加密 REST 正文

现在他们正在弃用他们的 OpenID2 提供程序,因此与 Google 进行 OpenID Connect 委托?

OpenID Connect Core 1.0ID Token