利用位置变化辅助登录审查
将某次登录基于 IP 推断出的位置,与该用户此前存储的位置点进行比较,从而标记出值得再次核查的登录——该端点的可用性与方案执行方式尚未确认,因此在生产环境中集成之前,请先与我们沟通接入事宜。
可用性
POST /v1/risk/check 与 IP 查询共用同一套私密密钥中间件,该中间件只检查密钥是否为私密密钥——并不会独立强制执行单独的风险方案系列,且预置的风险定价目前尚未配置有效价格。在生产环境中依赖该端点之前,请与我们确认当前的可用性与条款。
可靠的客户端 IP 提取
对于该端点,Watch-IP 不会从您的请求中提取终端用户的 IP——需要由您以 ip 参数提供。请在您的后端根据自己可信的代理/CDN 请求头链路来解析该 IP,就像您在任何依赖客户端 IP 做出安全决策的场景中所采取的谨慎做法一样。
不透明的用户 ID
以 userId 传入您自己的内部标识符。Watch-IP 针对每一个(您的客户账户,userId)组合,只保存一个存储位置——请在同一用户的各次登录中复用相同的标识符,以使基线保持有意义。
先建立基线,再进行预检查
某个用户的首次调用始终会返回 risk: "low",且 previousLocation 为 null——此时尚无可供比较的对象。对于之后的登录,可以在您自己做出身份验证决策之前,先以 commit: false 调用一次作为早期信号;该调用只读取已存储的基线,不会移动它。
在自行完成验证后再提交
一旦您确信该次登录是合法的——密码及任何第二因素均已验证通过——请再次调用,并将 commit 保留为默认值(true),使这次观测结果成为下一次登录的新基线。
并发与重试
v1 只存储单个最新位置点,而非历史记录——两次时间相近的已提交调用会覆盖同一个值,而超时后的重试请求本身也可能触发提交并改变基线。请在设计重试逻辑时考虑到这一点,而不是假定每次提交都会被独立记录。
合法的网络变化
商务出差、酒店或机场 Wi-Fi、移动运营商 IP 变动,以及普通的 VPN 使用,都可能产生 medium 或 high 级别的分类结果——v1 目前没有针对 VPN/数据中心的抑制机制。请将被标记的登录视为您自身审查流程中的一项输入,而不是账户被攻破的证据。
这不能保证什么
high 级别的分类只是两点之间的原始速度计算结果,并不能确认账户已被接管;low 级别的分类也不能排除某次登录出于其他原因而值得怀疑。数据保留遵循上述存储行为:存储的位置点会一直保留,直到被下一次已提交的检查覆盖,目前没有自动过期机制,也没有可用的删除端点——在向您自己的用户做出任何数据保留承诺时,请将这一点纳入考虑。