用途
Intercom Security Basics 是一份面向 Intercom 集成的安全最佳实践技能,帮助开发者在接入 Intercom 时正确处理访问令牌、Webhook 签名验证、身份验证(Identity Verification / HMAC)以及最小权限 OAuth 作用域。技能本身以高层清单形式呈现,便于端到端快速执行,完整代码则放在 references/ 目录中供深入查阅。
主要能力
- 安全存储令牌:将 INTERCOM_ACCESS_TOKEN、INTERCOM_WEBHOOK_SECRET、INTERCOM_IDENTITY_SECRET 等密钥放入 .env 或密钥管理器,并确保 .gitignore 覆盖相关文件。
- 扫描历史泄露:使用 git log --all -p | grep 搜索已提交内容中的令牌标记,发现后立即轮换并用 git-filter-repo 从历史中移除。
- Webhook 签名验证:Intercom 使用 HMAC-SHA1 通过 X-Hub-Signature 对 Webhook 通知签名,需针对原始请求体(raw Buffer,而非解析后的 JSON)进行校验,并使用时间安全比较,签名不匹配时返回 401。
- 身份验证(User Hash):通过服务端生成用户标识的 HMAC-SHA256 user_hash,与 app_id、user_id 一起用于 Messenger 启动,防止冒充。
- 最小权限 OAuth 作用域:仅申请应用实际使用的作用域,降低令牌泄露后的影响范围。
- 令牌轮换流程:先将新令牌加入密钥管理器并部署,再吊销旧令牌,避免出现无可用令牌的窗口期。
使用方式
技能按步骤组织:第一步安全存储令牌并扫描历史泄露;第二步实现 Webhook 签名验证;第三步启用身份验证生成 user_hash;第四步配置最小权限 OAuth 作用域;第五步执行令牌轮换。每个控制项的完整代码位于 references/ 中,包括 implementation.md(Webhook、身份验证、轮换、作用域代码)与 examples.md(四个端到端示例)。
适用场景
- 从零开始保护一个新的 Intercom 集成。
- 扫描现有仓库中是否泄露了令牌。
- 为 Express 应用添加 Webhook 验证,拒绝伪造载荷。
- 为 Messenger 开启身份验证,阻止冒充。
- 验证轮换后的令牌是否生效(例如 curl https://api.intercom.io/me 应返回 "admin")。
限制
技能要求具备 Intercom 访问令牌或 OAuth 凭据、理解 HMAC 加密签名,并能访问 Intercom Developer Hub。关于生产部署加固(如速率限制、错误监控、分阶段发布)不在本技能范围内,需参考 intercom-prod-checklist 技能。具体收费、价格、平台支持等信息暂未提供。