首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防火墙管理:代表第三方管理员访问数据库

防火墙管理:代表第三方管理员访问数据库
EN

Stack Overflow用户
提问于 2020-09-15 11:37:43
回答 1查看 100关注 0票数 0

我正在使用Oauth2对第三方Firebase项目所有者进行身份验证,并使用他们的Google帐户授予他们对Firestore平台项目的访问权限。我的目标是让数据库触发器运行,不是从我自己的数据库运行,而是在第三方管理员拥有的数据库上运行,即我不拥有或没有直接访问权限的数据库。

对于我自己的管理员,我会用我自己的服务帐户:

代码语言:javascript
运行
复制
const admin = require('firebase-admin');

const serviceAccount = require('./path/to/serviceAccountKey.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

const db = admin.firestore();

是否有一种方法让第三方Firebase管理员在不手动共享他们的项目的情况下授予他们对数据库的访问权?

向不完全通过firebase-admin sdk的选项开放

可能的选择可能是这样的:

  1. 通过Oauth获得第三方访问
  2. 通过使用Google获得serviceAccount.jsonFirebase Project SettingsOauth许可或其他方式。

为实现这一目标:

代码语言:javascript
运行
复制
const admin = require('firebase-admin');
    
   //Maybe this??
    const thirdPartyServiceAccount = require('./path/to/serviceAccountKey.json');
    
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount)
    });
    
   //Or this??  
    admin.initializeApp({
      credential: admin.credential.refreshToken(thirdPartyRefreshToken)
    });


    const thirdPartyDB = admin.firestore();

类似的问题似乎没有解决我的用例。

如何使用有限权限的Admin?

EN

回答 1

Stack Overflow用户

发布于 2020-09-15 15:21:27

当编写后端代码来使用firebase-admin或任何Google (而不是 web和移动客户端)访问Firestore时,所有访问都是通过用于初始化SDK的服务帐户授予的。几乎所有的Google产品都是这样的,而auth系统称为云IAM

如果您想让某些方访问您的数据库,典型的过程是对创建服务帐户进行访问,并且只授予它对派对所需的权限的访问权限。然后,他们可以使用该服务帐户初始化他们想要使用的SDK,IAM将确保该帐户只能采取任何允许的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63901019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档