Salesforce 凭据#
你可以使用这些凭据来认证以下节点:
- Salesforce
- Salesforce 触发器
支持的认证方式#
- JWT
- OAuth2
相关资源#
更多关于该服务的信息,请参考 Salesforce 开发者文档。
使用 JWT#
要配置此凭据,你需要一个 Salesforce 账户,以及以下信息:
- 你的 环境类型(生产环境或沙盒环境)
- 客户端 ID(Client ID):创建已连接应用时生成
- 你的 Salesforce 用户名(Username)
- 用于自签名数字证书的 私钥(Private Key)
要进行设置,首先需要创建一个私钥和证书,然后创建一个已连接的应用程序(Connected App):
-
在 n8n 中,为你的连接选择 环境类型(Environment Type)。从 生产环境(Production) 或 沙盒环境(Sandbox) 中选择最符合你当前环境的选项。
-
输入你的 Salesforce 用户名(Username)。
-
登录到你的 Salesforce 组织(org)。
-
你需要一个由证书颁发机构签发的私钥和证书。可以使用你自己的密钥/证书,或使用 OpenSSL 创建一个私钥和自签名数字证书。有关如何创建密钥和证书的说明,请参考 Salesforce 官方文档 Create a Private Key and Self-Signed Digital Certificate。
-
在 Salesforce 的 设置(Setup) 中,在快速查找框输入
App Manager,然后选择 App Manager。 -
在 App Manager 页面,点击 新建已连接应用(New Connected App)。
-
填写已连接应用所需的 基本信息(Basic Info),包括 名称(Name) 和 联系邮箱地址(Contact Email address)。更多详细信息,请参考 Salesforce 官方文档 Configure Basic Connected App Settings。
-
勾选 启用 OAuth 设置(Enable OAuth Settings) 选项。
-
在 回调 URL(Callback URL) 字段中,输入
http://localhost:1717/OauthRedirect。 -
勾选 使用数字签名(Use digital signatures) 选项。
-
点击 选择文件(Choose File),上传包含你的数字证书的文件,例如
server.crt。 -
添加以下 OAuth 权限范围(OAuth scopes):
- 完全访问权限(full access, full)
- 随时执行请求(refresh_token, offline_access)
-
点击 保存(Save),然后点击 继续(Continue)。此时应跳转至 管理已连接应用(Manage Connected Apps) 页面,并显示你刚刚创建的应用。
-
在 API(启用 OAuth 设置) 区域,点击 管理消费者详情(Manage Consumer Details)。
-
复制 消费者密钥(Consumer Key),并将其添加到 n8n 凭据中的 客户端 ID(Client ID) 字段。
-
将私钥文件的内容作为 私钥(Private Key) 输入到 n8n 中。
- 使用 n8n 的多行编辑器。
- 以标准 PEM 密钥格式输入私钥:
1
2
3| ``` -----BEGIN PRIVATE KEY----- KEY DATA GOES HERE -----END PRIVATE KEY-----
---|---
这些步骤是 n8n 一侧所需的操作。Salesforce 还建议设置刷新令牌策略、会话策略和 OAuth 策略:
1. 在 Salesforce 中,选择 **Back to Manage Connected Apps**(返回管理已连接的应用程序)。
2. 选择 **Manage**(管理)。
3. 选择 **Edit Policies**(编辑策略)。
4. 查看 **Refresh Token Policy**(刷新令牌策略)字段。Salesforce 建议设置为 90 天后过期。
5. 在 **Session Policies**(会话策略)部分,Salesforce 建议将 **Timeout Value**(超时时间)设置为 15 分钟。
6. 在 **OAuth Policies**(OAuth 策略)部分,将 **Permitted Users**(允许的用户)设置为 **Admin approved users are pre-authorized for permitted users**(管理员批准的用户可预先授权),然后选择 **OK**(确定)。
7. 选择 **Save**(保存)。
8. 选择 **Manage Profiles**(管理配置文件),选中可预先授权使用此已连接应用程序的配置文件,然后选择 **Save**(保存)。
9. 选择 **Manage Permission Sets**(管理权限集)以选择相应的权限集。如有需要,请创建新的权限集。
有关更多信息,请参考 Salesforce 的 在您的组织中创建已连接的应用程序 文档。
## 使用 OAuth2#
要配置此凭据,您需要一个 Salesforce 账户。
> **n8n Cloud 用户注意**
Cloud 用户无需提供连接详情。选择 **Connect my account** 即可通过浏览器完成连接。
Cloud 和托管用户均需选择您的 **Environment Type(环境类型)**,可在 **Production(生产环境)** 和 **Sandbox(沙盒环境)** 之间选择。
如果您正在n8n 自托管,则需要从头开始配置 OAuth2,方法是创建一个已连接的应用程序:
1. 在 n8n 中,为您的连接选择 **Environment Type(环境类型)**。根据您的实际情况选择 **Production(生产环境)** 或 **Sandbox(沙盒环境)**。
2. 输入您的 Salesforce **Username(用户名)**。
3. 登录到您的 Salesforce 组织(org)。
4. 在 Salesforce 的 **Setup(设置)** 页面中,在 Quick Find 框内输入 `App Manager`,然后选择 **App Manager(应用程序管理器)**。
5. 在 App Manager 页面上,选择 **New Connected App(新建已连接应用)**。
6. 填写已连接应用所需的 **Basic Info(基本信息)**,包括 **Name(名称)** 和 **Contact Email Address(联系邮箱)**。更多详细信息,请参阅 Salesforce 的 配置已连接应用的基本设置 文档。
7. 勾选 **Enable OAuth Settings(启用 OAuth 设置)** 复选框。
8. 对于 **Callback URL(回调 URL)**,请输入 `http://localhost:1717/OauthRedirect`。
9. 添加以下 **OAuth scopes(OAuth 范围)**:
* **Full access (full)**(完全访问权限)
* **Perform requests at any time (refresh_token, offline_access)**(可随时发起请求,包含 refresh_token 和 offline_access 权限)
10. 确保取消勾选以下设置:
* **Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows**(对支持的授权流程要求使用代码交换的证明密钥 PKCE 扩展)
* **Require Secret for Web Server Flow**(Web 服务器流程要求密钥)
* **Require Secret for Refresh Token Flow**(刷新令牌流程要求密钥)
11. 选择 **Save(保存)**,然后点击 **Continue(继续)**。此时应打开 **Manage Connected Apps(管理已连接应用)** 页面,并显示您刚刚创建的应用。
12. 在 **API (Enable OAuth Settings)** 部分,选择 **Manage Consumer Details(管理消费者详情)**。
13. 复制 **Consumer Key(消费者密钥)**,并将其作为 **Client ID(客户端 ID)** 添加到您的 n8n 凭据中。
14. 复制 **Consumer Secret(消费者密钥)**,并将其作为 **Client Secret(客户端密钥)** 添加到您的 n8n 凭据中。
以上步骤即为 n8n 所需的配置。Salesforce 还建议同时设置刷新令牌策略和会话策略:
1. 在 Salesforce 中,选择 **Back to Manage Connected Apps(返回管理已连接应用)**。
2. 选择 **Manage(管理)**。
3. 选择 **Edit Policies(编辑策略)**。
4. 查看 **Refresh Token Policy(刷新令牌策略)** 字段。Salesforce 建议将刷新令牌设置为 90 天后过期。
5. 在 **Session Policies(会话策略)** 部分,Salesforce 建议将 **Timeout Value(超时时间)** 设置为 15 分钟。
请参考 Salesforce 的 在您的组织中创建已连接应用(Create a Connected App in Your Org) 文档以获取更多信息。