用途:帮助开发者搭建 Okta Event Hook 处理程序,完成注册时的一次性验证握手、每次事件投递的请求认证,并理解 Okta 事件类型与载荷结构,也可用于排查验证或投递失败问题。
主要能力:Okta Event Hooks 不使用 HMAC 签名,安全性依赖两点。其一是一次性验证握手:注册钩子时 Okta 发送带 x-okta-verification-challenge 头的 GET 请求,需返回 200 与 JSON {"verification": "<challenge value>"}。其二是逐请求认证:自行选择密钥字符串,Okta 在每次事件投递(HTTPS POST)的 Authorization 头中发送,需用时间安全比较校验,无正文签名。Node 可用 crypto.timingSafeEqual(先比较长度,长度不等会抛错),Python 可用 hmac.compare_digest。
事件与载荷:投递的是 System Log 事件,data.events[] 中每项含 eventType,常见类型有 user.lifecycle.create、user.lifecycle.activate、user.session.start、user.account.lock、user.account.unlock、group.user_membership.add、group.user_membership.remove。外层 eventType 恒为 com.okta.event_hook,实际分发依据是 data.events[].eventType。
使用方式:设置环境变量 OKTA_WEBHOOK_SECRET 为注册时使用的 Authorization 头值。本地开发可运行 npx hookdeck-cli listen 3000 okta --path /webhooks/okta 启动隧道。完整处理器、路由接线、事件分发与测试示例见 examples/express/、examples/nextjs/、examples/fastapi/。参考材料包括 references/overview.md、references/setup.md、references/verification.md。建议同时安装 webhook-handler-patterns 技能以处理处理器顺序、幂等、错误处理与重试逻辑。
限制:资料未提供收费、价格、平台支持范围及具体效果数据。