我可以使用同一组织的管理员的 Salesforce 访问令牌访问所有用户数据吗

Can I be able to access all users data using Salesforce Access Token of Admin of the same organization

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

天哪。 “食人魔有层次”。

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

第一道防线是“你能在数据库中看到这个table吗”,由Profile/Permission设置级别控制。

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

第 3 行是“好的,因此您可以 see/edit”记录中的哪些特定字段。这又回到了 Profiles/Permission 集合和字段级安全性 (FLS)。 SF UI 对于系统管理员来说有点放松,但在 REST API 中强制执行 FLS(不记得 SOAP API)。所以 MAD 是不够的,你的 SF 管理员必须注意并检查,勾选所有复选框......如果你查询一个字段你不应该看到错误就像你真正做了一个 typo/field不存在。

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

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

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

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

这些可能有帮助: