【问题标题】:Can I be able to access all users data using Salesforce Access Token of Admin of the same organization我能否使用同一组织的管理员的 Salesforce 访问令牌访问所有用户数据
【发布时间】:2021-10-06 07:56:31
【问题描述】:

我能够为 Salesforce 中的管理员获取刷新和访问令牌。我的问题是: 与 Microsoft 类似,我能否使用此令牌访问同一组织/租户内的所有用户及其数据。 我不确定,Salesforce 是否已在其文档中的任何地方写过此内容。 我已经为 Microsoft 实现了 API(我们有应用程序权限),我正在使用 Client_credentials 流并且可以使用管理员令牌访问所有用户及其数据,但我不确定 Salesforce。 Salesforce 是否有任何应用程序权限概念? 请帮帮我。

【问题讨论】:

    标签: api oauth-2.0 salesforce access-token


    【解决方案1】:

    哦,伙计。 “食人魔有层次”。

    不,即使您有权访问系统管理员,也无法保证。 (实际的配置文件名称无关紧要,这都是关于勾选“修改所有数据”之类的复选框)。即使使用 MAD,管理员也可以在 UI 中看到字段,但在修复管理员的配置文件之前,您将无法将它们拉入 API。然后是 OAuth2。

    第一道防线是“你能在数据库中看到这个表吗”,这是由配置文件/权限集级别控制的。

    第 2 行是“好的,但是你能在表格中看到/编辑/删除这条特定记录”。这可以通过修改所有数据、记录所有权、共享规则、角色层次结构来授予...

    第 3 行是“好的,因此您可以查看/编辑此记录中的哪些特定字段”。这又回到了配置文件/权限集和字段级安全性 (FLS)。 SF UI 对系统管理员来说有点放松,但 FLS 在 REST API 中强制执行(不记得 SOAP API)。所以 MAD 是不够的,您的 SF 管理员必须注意并检查,勾选勾选所有复选框...如果您查询一个字段,您不应该看到错误与您确实输入错字/字段相同'不存在。

    如果您要使用 SOAP API 或 OAuth2 用户名-密码流程,这可能就结束了。但是,当您使用不同的流程并获取刷新令牌时,OAuth2 范围就更重要了。

    假设您制作了一款出色的移动应用程序,并且您允许使用 Salesforce 登录该应用程序。你需要对 SF 用户的数据做多少,他们会同意多少。关于用户、电子邮件的基本信息,可能会在 Chatter 提要上发布一些内容 - 当然可以。完全访问数据库 - 没办法。 OAuth 范围限制了连接应用程序可以执行的操作,即使它是系统管理员访问它。如果您获得的只是 Chatter 和 OpenId 用户信息 - 您将在您的应用中获得会话 ID,但您将无法提升它并对帐户、联系人等运行查询。

    这是一个巨大的话题,其中一部分是向 Google 提出正确的问题。当他们从办公室网络/VPN 登录时,偏执的组织可能会将用户权限设置为类似系统管理员,但当他们从家里登录时会受到限制。所以说真的,拥有令牌并不能保证成功。

    TL;DR - 检查它是否具有“修改所有数据”以及在您需要在字段级安全性中查看的字段旁边的所有复选框。这将是一个好的开始,但可能会有更多,管理员可能需要为您构建一个特殊的集成用户。系统管理员并不意味着 root,尤其是 API 访问权限。

    这些可能会有所帮助:

    【讨论】:

    • 谢谢@eyescream。我明白了,但作为公司说。我想使用 Salesforce 备份组织的所有数据。假设有数百万用户,只是为了获取他们的数据(比如聊天、帖子、文件等),我是否会获得数百万次的同意,我认为如果他们所有人都有不同的令牌可以访问,这是不可能的他们的数据。我该如何处理这个问题(这就是我谈论应用程序级别权限之类的原因),请帮助我。
    • 具有“修改所有数据”的系统管理员和管理员检查配置文件是否至少对您感兴趣的表中的所有字段具有“读取”权限。因为如果有字段管理员看不到- 它也不会出现在 api 调用中
    • 感谢您的澄清。我现在明白了。
    猜你喜欢
    • 2015-04-05
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2011-09-18
    相关资源
    最近更新 更多