微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Salesforce 服务器到服务器集成,无需任何用户参与

如何解决Salesforce 服务器到服务器集成,无需任何用户参与

我正在使用 REST API 与 Salesforce 集成,作为项目的一部分,我需要向 Salesforce 发送更新,这些更新不是用户触发的,而是系统触发的。 因此,我希望在 Salesforce Field History 上看到的不是用户名,而是我们连接的应用程序(进行更新的应用程序)的名称。 我今天看到的是用户名,因为最初使用 OAuth 授权代码流进行集成的方式。

为了更改项目的那部分,我点击了链接(OAuth 2.0 JWT Bearer Flow for Server-to-Server Integration):https://help.salesforce.com/articleView?id=sf.remoteaccess_oauth_flows.htm&type=5

这样做,我想为系统而不是用户生成令牌,但事实并非如此:当我使用从 JWT 承载流生成的令牌并运行更新时,字段历史记录仍然显示用户名

那我能做什么? Salesforce 中有哪些选项可以实现我期望的行为? 在我看来,最重要的是为我们的系统而不是用户拥有一个 Token。

谢谢!

解决方法

每个人都是 Salesforce 中的用户。即使您访问未经身份验证的页面(某些与我们联系的表单?案例或潜在客户捕获) - 它也会在特殊访客用户下进行跟踪。

这听起来很愚蠢,但为您提供了统一的界面来控制权限(配置文件/权限集)。您希望访客仅访问常见问题解答文章并制作案例吗?当然,在个人资料中这样做,不要对试图猜测正确 URL 的人感到偏执。你认为一个应用程序被黑了?您可以像任何其他“用户”一样终止会话。想要只允许在特定时间和特定 IP 登录?当然。

与 JWT 连接的应用程序仍然需要用户名(主要区别在于它是用于签署请求的“只是”证书而不是密码)。

最好的办法是创建专门的“系统先生”、“SystemX 集成”帐户。这听起来像是在浪费许可证,但从长远来看,可以避免“你为什么在凌晨 1 点编辑我的帐户”的问题,如果你使用 SSO 并且它失败了,你甚至可以将它用作备份帐户......

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。