注册Google RISC接收器端点遇403权限拒绝错误求助
针对你遇到的403权限错误,结合你的配置和代码,以下是具体排查方向和解决建议:
确认服务账号角色权限正确
必须为服务账号分配**roles/risc.eventReceiver**专属角色,通用角色(如Editor、Owner)无法满足RISC API的权限要求。登录Cloud Console的IAM页面,检查该角色是否已绑定到目标服务账号,且生效范围是当前启用RISC API的项目。验证JWT核心字段的准确性
你的代码中withIssuer和withSubject使用的"MyClientEmail"必须是服务账号的完整邮箱(格式如xxx@your-project-id.iam.gserviceaccount.com),不能有拼写错误、多余空格或截断。此外,确保withKeyId传入的是服务账号密钥对应的private_key_id(从JSON密钥文件中获取),而非自定义名称。检查服务账号密钥有效性
确认使用的私钥是从Cloud Console下载的服务账号JSON密钥文件中的private_key内容,且该密钥未被删除或标记为过期。建议重新生成一个新的服务账号密钥,替换现有密钥后重试请求。对齐API启用项目与服务账号所属项目
检查Cloud Console中启用Google Identity RISC API的项目,和服务账号创建时所属的项目是否为同一个。若为跨项目调用,需在目标项目的IAM中添加该服务账号并分配对应权限。确认请求端点和方法正确性
注册RISC端点的正确请求是POST https://risc.googleapis.com/v1beta/riscRegistrations,确保你使用的是POST方法,且URL无拼写错误(比如不要遗漏v1beta路径)。校验JWT有效期与时间同步
你的代码设置了1小时有效期,符合要求,但需确保本地服务器时间与Google服务器时间同步,避免因时间差导致JWT被判定为过期。
内容的提问来源于stack exchange,提问作者moazelshebly

