Google Sign-in应用无法接收RISC安全事件的配置排查
RISC事件无法接收的修复方案
核心配置错误
你当前配置的核心问题是配置主体和实际登录用的应用不匹配:你通过Service account(服务账号)路径创建的身份实体,仅用于服务间接口调用,和你承接普通用户Google Sign-in登录的OAuth 2.0 Web客户端是完全隔离的两个权限对象,你给服务账号配置的RISC事件流,不会关联到C端用户登录产生的会话、令牌变更事件。
逐步骤修复
- 修正RISC接口的授权身份
不要使用服务账号生成JWT调用RISC配置接口,改用你实际承接Google Sign-in流量的Web OAuth客户端凭证生成授权JWT:- 该Web OAuth客户端需要在Google控制台的
API AND SERVICES -> Credentials -> Create Credentials -> OAuth client ID路径下创建,类型选择Web应用,不是服务账号 - JWT的
iss和sub字段统一填写该Web客户端的客户端ID,不能填服务账号邮箱 - JWT的签名密钥使用该Web客户端对应的客户端密钥,不要用服务账号的私钥
- JWT的
aud字段保持现有值即可,无需修改
- 该Web OAuth客户端需要在Google控制台的
- 清理重复的事件订阅项
你当前的事件列表同时配置了Google自定义事件URN和OpenID通用事件URN,重复订阅会导致推送路由异常,删除所有https://schemas.openid.net/开头的重复事件,仅保留Google官方定义的事件类型和必选的校验事件,最终配置如下:{ "delivery": { "delivery_method": "https://schemas.openid.net/secevent/risc/delivery-method/push", "url": "https://v4.api.indev.proofhub.com/kvsigninjwt/webhooks/Eventshook/validateSecurityEventToken" }, "events_requested": [ "https://schemas.openid.net/secevent/risc/event-type/verification", "https://accounts.google.com/risc/event/sessions-revoked", "https://accounts.google.com/risc/event/all-token-revoked", "https://accounts.google.com/risc/event/account-disabled", "https://accounts.google.com/risc/event/account-enabled", "https://accounts.google.com/risc/event/account-credential-change-required", "https://accounts.google.com/risc/event/one-token-revoked" ] } - 排查Webhook端点可用性
即使通过了stream:verify校验,仍需确认两个容易遗漏的配置:- 你的Webhook地址必须公网可直达,不能配置IP白名单拦截Google的出口IP,不能有WAF规则拦截携带
Sec-Event-Token请求头的POST请求 - 收到Google的事件推送请求后,必须在3秒内返回
200 OK状态码,其他状态码、响应超时都会被判定为推送失败,Google会进入指数退避重试,连续失败超过阈值会自动暂停推送
- 你的Webhook地址必须公网可直达,不能配置IP白名单拦截Google的出口IP,不能有WAF规则拦截携带
- 重新生效配置
使用新的JWT授权重新调用stream:update接口提交修正后的配置,之后再次调用stream:verify触发校验事件,确认你的Webhook能正常收到校验事件并返回正确响应,后续即可正常接收Google Sign-in场景下的相关安全事件。
内容的提问来源于stack exchange,提问作者Rubal Paul
相关产品推荐
相关产品推荐

