如何在 couchbase 同步网关中使用 firebase 身份验证

Lax*_*dey 5 android couchbase firebase couchbase-sync-gateway firebase-authentication

我正在开发一个 Android 应用程序。我使用了 firebase(电子邮件、密码)身份验证机制,该机制非常安全且易于实现。由于我希望将数据存储在我们的服务器中,因此我没有使用 firebase 存储。Couchbase同步网关支持任何开放的ID身份验证。但我发现很难将两者整合起来。我已经找了一个多星期了。任何已经使用过它的人。你能帮我配置一下吗?

fun*_*983 0

对于任何寻求答案的人,请执行以下步骤:

  • Firebase 向您发送一个 id_token(未签名)。我想你已经到了这一部分了。
  • 您将此未签名的 firebase id_token 转换为已签名的第 3 方 oidc id_token。我使用在 docker 容器中运行轻量级的 Keycloak 来完成这项工作。请记住,您需要 id_token,而不是 access_token。

在此输入图像描述

  • (可选)您使用同步网关 (SGW) ADMIN REST 端点来创建用户并将该用户分配到他/她适当的 [admin_channels]。
  • 当您在 /_session 端点点击其 REST 接口时,SGW 将接受您的 Keycloak 签名 oidc 并为您提供一个 cookie。确保将 id_token 字符串以“Bearer id_token_string........”格式放入授权标头中。

一些注意事项:

  • SGW 将根据 SGW.json 配置文件中的“username_claim”关键字定义使用用户名(如果不存在则创建一个新用户名)。如果您想自定义 SGW 用户名,请使用 Keycloak 客户端的映射器功能。
  • 如果您想在不知道用户密码的情况下获取用户的 id_token,请使用此处提到的实验性令牌交换功能。在此输入链接描述

在此输入图像描述

在此输入图像描述

  • 您可以像往常一样使用此 cookie 信息通过 SGW 连接到 couchbase 并同步数据。

Couchbase 有一篇文章介绍如何使用syncgateway源实现oidc的隐式流程