如何排查后端服务校验签名失败的原因?
<p><span style="font-size:18px"><strong>现象描述</strong></span></p>
<p>后端服务校验签名结果失败。</p>
<p><span style="font-size:18px"><strong>排查思路</strong></span></p>
<p><img src="https://pcp-portal-sca.obs-cn-shenzhen.pinganyun.com/pcp-portal-sca/20193110112141-1fd743589503.png" style="height:627px; width:433px" /></p>
<p><span style="font-size:18px"><strong>排查步骤</strong></span></p>
<p>1. 开启Debug模式:调用方在调用API网关时,发送的请求Header中增加 PA-AG-Request-Mode = debug字段,开启Debug模式。</p>
<p>2. API网关在发送到后端服务的请求Header中会增加PA-AG-Gateway-Signature-StrToSign字段即拼接后的签名原文,签名原文不参与后端签名计算。</p>
<p><!--[if gte mso 9]><xml>
<o:OLEObject Type="Embed" ProgID="PBrush" ShapeID="_x0000_i1025"
DrawAspect="Content" ObjectID="_1634027053">
</o:OLEObject>
</xml><![endif]--> <img src="https://pcp-portal-sca.obs-cn-shenzhen.pinganyun.com/pcp-portal-sca/20193110112215-10fa66cb9e57.png" style="height:26px; margin:0px; width:65px" />:由于API网关发送的请求Header的内容中不允许出现换行符“\n”,因此“\n”替换为“|”。</p>
<p>3. 后端服务根据API网关传递的PA-AG-Gateway-Signature-StrToSign字段获取API网关拼接的签名原文,并将自身拼接的签名原文与API网关传递的签名原文进行对比,定位问题。</p>
<p>• 如果拼接的签名原文不相同,请检查拼接过程。</p>
<p>• 如果拼接的签名原文相同,请执行步骤4。</p>
<p>4. 检查签名计算使用的Key、Secret 是否正确。</p>
<p>• 如果不正确,请修改相应的Key和Secret。</p>
<p>• 如果正确,请执行步骤5。</p>
<p>5. 检查是否额外添加了空格等不容易发现的字符等问题。</p>
<p>• 如果有,请删除额外添加的内容。</p>
<p>• 如果没有,请联系收集相关信息,提交<a href="https://pinganyun.com/console/workorder/create" target="_blank">工单</a>,联系平安云工程师处理。</p>
提交成功!非常感谢您的反馈,我们会继续努力做到更好!