gpt4 book ai didi

web-services - Salesforce 不同的 WSDL 文件以及何时使用

转载 作者:行者123 更新时间:2023-12-04 04:45:40 24 4
gpt4 key购买 nike

我正在开发一个 salesforce 功能,我们试图将自定义类中的单个 Web 服务方法公开给“合作伙伴”,以便他们可以生成潜在客户。

该类/方法已经创建/测试并且按预期运行,因此我们正在致力于实现。

我一直在仔细研究 Salesforce 的所有 Web 服务文档和菜谱,但我看到的所有内容都只讨论使用企业或合作伙伴 WSDL 文件,这将使他们获得比我认为应该需要的更多访问权限。

如果我导入从类本身生成的 WSDL 文件,我可以访问这些方法,但我似乎找不到任何登录方法(使用它们的示例作为引用)。

我有两个基本问题。

  1. 我真的需要授予对我的实例的完全访问权限才能公开单个方法吗?
  2. 我需要提供的最低限度是多少?

最佳答案

WSDL 本身只是 Web 服务的定义,并不控制对您组织的实际访问。要访问您的组织,对 Web 服务的每个请求中必须包含 session ID。 session ID 与您组织中的给定用户绑定(bind),因此您还可以通过为他们提供自己的个人资料并仅锁定他们需要访问的内容来控制他们可以访问的内容。配置文件与对象/字段相关,而不是 Web 服务本身,请考虑它们需要访问哪些数据,因为它们始终可以使用同一 session 来访问其他 Web 服务。配置文件上还有 Apex 类级访问控制,但这并不能阻止他们通过 SOAP API 执行相同的数据操作,因此请确保他们的配置文件仅公开他们需要访问的内容,并且将强制执行无处不在。

就获取 session ID 而言,这在某种程度上取决于您与它们的交互方式以及它们的应用程序是什么样的。一般来说,推荐的方法是使用 OAuth(在 Salesforce 帮助中称为“远程访问”),这使得用户名和密码不必在应用程序中使用,而是在最后直接发送到 Salesforce用户。根据应用程序的不同,有几种不同的流程可供选择,并在帮助中进行了说明。 REST API doc has a nice intro to using OAuht获取 session ID(OAuth 中的“ token ”)。说到 REST,您甚至可以考虑使用新的 Apex REST API ,它允许您从 Apex 制作类似的自定义 Web 服务,但具有 REST 接口(interface)。

合作伙伴和企业 API 也有一个 login() 方法,该方法很方便,因为它也是基于 SOAP 的,但由于应用程序必须直接处理用户名和密码而失去青睐。如果您选择此选项,您将使用合作伙伴和企业 API 登录,获取 session ID,然后切换到您的自定义 Web 服务。因此,是的,对于此选项,您必须使用您的 WSDL 以及合作伙伴或企业 WSDL,并且忽略其他方法,但同样,这些方法只是存在并不意味着它们可以访问它们(例如,如果您删除从给定对象类型的配置文件中删除,他们将无法使用 delete() 方法。

关于web-services - Salesforce 不同的 WSDL 文件以及何时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com