🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx skills add https://skills.sh/jaganpro/sf-skills/sf-connected-apps
💡 提示:需要 Node.js 和 NPM
sf-connected-apps: Salesforce 连接应用与外部客户端应用
当用户在 Salesforce 中需要OAuth 应用配置时使用此技能:连接应用、外部客户端应用、JWT bearer 设置、PKCE 决策、范围设计,或从旧版连接应用模式迁移到新版外部客户端应用模式。
此技能适用的场景
当工作涉及以下内容时,使用 sf-connected-apps:
.connectedApp-meta.xml或.eca-meta.xml文件- OAuth 流程选择和回调/范围设置
- JWT bearer 认证、设备流、客户端凭证或授权码决策
- 连接应用与外部客户端应用架构选择
- 消费者密钥/密钥/证书处理策略
当用户处于以下情况时,委托给其他技能:
- 配置命名凭证或运行时调用 → sf-integration
- 分析访问/权限策略分配 → sf-permissions
- 编写 Apex 令牌处理代码 → sf-apex
- 将元数据部署到组织 → sf-deploy
首要决策:连接应用还是外部客户端应用
| 如果需求是… | 优先选择 |
|---|---|
| 简单的单组织 OAuth 应用 | 连接应用 |
| 需要更好密钥处理的新开发 | 外部客户端应用 |
| 多组织/打包/更强的操作控制 | 外部客户端应用 |
| 直接的遗留兼容性 | 连接应用 |
默认指导:
- 对于新的受监管、可打包或自动化密集型解决方案,选择外部客户端应用
- 当简单性和遗留兼容性更重要时,选择连接应用
需要预先收集的上下文
询问或推断:
- 应用类型:连接应用或外部客户端应用
- OAuth 流程:授权码、PKCE、JWT bearer、设备流、客户端凭证
- 客户端类型:机密客户端与公共客户端
- 回调 URL / 重定向地址
- 所需的范围
- 分发模型:仅本地组织与可打包/多组织
- 是否需要证书或密钥轮换
推荐工作流程
1. 选择应用模型
决定连接应用或外部客户端应用哪个更适合长期使用。
2. 选择 OAuth 流程
| 使用场景 | 默认流程 |
|---|---|
| 后端 Web 应用 | 授权码 |
| 单页应用/移动端/公共客户端 | 授权码 + PKCE |
| 服务器到服务器/CI/CD | JWT Bearer |
| 设备/CLI 认证 | 设备流 |
| 服务账户风格应用 | 客户端凭证(通常为外部客户端应用) |
3. 从正确模板开始
使用提供的资产,而不是从头开始构建:
assets/connected-app-basic.xmlassets/connected-app-oauth.xmlassets/connected-app-jwt.xmlassets/external-client-app.xmlassets/eca-global-oauth.xmlassets/eca-oauth-settings.xmlassets/eca-policies.xml
4. 应用安全加固
优先选择:
- 最小权限范围
- 明确的回调 URL
- 公共客户端使用 PKCE
- 适当时使用基于证书的认证
- 可轮换的密钥/证书处理
- 在可行且可维护时设置 IP 限制
5. 验证部署就绪状态
在移交前,确认:
- 元数据文件命名正确
- 范围设置合理
- 回调 URL 和认证模型与实际客户端类型匹配
- 密钥未嵌入源代码中
高信号安全规则
避免这些反模式:
| 反模式 | 失败原因 |
|---|---|
| 通配符/过于宽泛的回调 URL | 令牌拦截风险 |
默认使用 Full 范围 |
不必要的权限 |
| 为公共客户端禁用 PKCE | 代码拦截风险 |
| 消费者密钥提交到源代码 | 凭证泄露 |
| 自动化缺乏轮换/证书策略 | 脆弱的长期运维 |
默认修复方向:
- 缩小范围
- 限制回调地址
- 为公共客户端启用 PKCE
- 将密钥保存在版本控制之外
- 在适当时使用 JWT 证书或受控密钥存储
重要的元数据说明
连接应用
通常位于:
force-app/main/default/connectedApps/
外部客户端应用
通常涉及多个元数据文件,包括:
- 基础外部客户端应用头文件
- 全局 OAuth 设置
- 实例 OAuth 设置
- 可选的策略元数据
重要的文件名注意事项:
- 全局 OAuth 的后缀是
.ecaGlblOauth,而不是.ecaGlobalOauth
输出格式
完成时,按此顺序报告:
- 选择的应用类型
- 选择的 OAuth 流程
- 创建或更新的文件
- 安全决策
- 下一步部署/测试
建议格式:
应用:<名称>
类型:连接应用 | 外部客户端应用
流程:<oauth流程>
文件:<路径>
安全:<范围、PKCE、证书、密钥、IP策略>
下一步:<部署、获取消费者密钥或测试认证流程>
跨技能集成
| 需求 | 委托给 | 原因 |
|---|---|---|
| 命名凭证/运行时调用配置 | sf-integration | 运行时集成设置 |
| 部署应用元数据 | sf-deploy | 组织验证和部署 |
| Apex 令牌或刷新处理 | sf-apex | 实现逻辑 |
| 部署后权限审查 | sf-permissions | 访问治理 |
参考映射
从这里开始
- references/oauth-flows-reference.md
- references/security-checklist.md
- references/testing-validation-guide.md
迁移/示例
评分指南
| 分数 | 含义 |
|---|---|
| 80+ | 可投入生产的 OAuth 应用配置 |
| 54–79 | 可行但需要安全加固审查 |
| < 54 | 阻止部署直至修复 |

评论(0)