使用Java Rest API创建Google Duo用户报401未授权错误如何解决?
核心问题排查
- 认证方式完全错误
Duo Admin API不支持标准Basic Auth认证,你当前构造的Basic前缀的Authorization头不符合要求。官方要求的认证规则为:
认证头格式为Authorization: DINGO {集成Key}:{签名值},其中签名值需要用HMAC-SHA1算法,以你后台生成的Secret Key为密钥,拼接以下内容加密后转十六进制得到:
- RFC 1123格式的Date头值
- 请求方法(大写,如POST)
- 请求域名
- 接口路径
- 按字母排序后的请求参数键值对(用&拼接)
- 认证方式完全错误
- 缺少接口路径
你当前的请求URL只填了域名,创建用户的对应接口路径为/admin/v1/users,没有指定路径的请求会被直接拦截。
- 缺少接口路径
- 请求参数格式错误
Duo Admin API的POST请求要求参数格式为application/x-www-form-urlencoded,不支持JSON格式的请求体,你当前传入的JSON参数无法被服务端识别。
- 请求参数格式错误
- 时区校验失败风险
Date头必须使用GMT时区的时间,如果你本地生成的时间不是GMT时区,或者和服务端时间差超过5分钟,会直接返回401错误。
- 时区校验失败风险
修正说明
你需要先调整认证逻辑,替换参数格式,补全请求路径。核心的签名构造逻辑可以直接复用官方封装的Java工具类,避免自行写签名出现拼接错误。
内容的提问来源于stack exchange,提问作者Jhonnysins
相关产品推荐
相关产品推荐

