以Salesforce为IdP的SAML 2.0 SSO报错:无效HTTP方法
解决SAML 2.0对接Salesforce IdP时的“Invalid HTTP method”错误(错误码1505)
这个1505错误的核心原因很明确:Salesforce身份提供商(IdP)要求SAML认证请求必须通过POST方法发送,要是你的服务提供商(SP)用了GET方法重定向发起请求,就会触发这个报错。
你可以按下面的步骤排查修复:
- 检查SP的SAML请求发起逻辑:生成SAML AuthnRequest后,必须通过HTML表单以POST方式提交到Salesforce的IdP登录URL,不能直接用GET跳转。
- 核对Connected App配置:
- 确认登录URL相关配置的逻辑是否依赖正确的请求方法
- 检查“SAML设置”里的请求签名方法等参数,要和SP侧保持一致,避免因签名问题间接导致请求方法被误判
- 用浏览器开发者工具验证:打开Network面板,查看跳转时的请求方法,确认是不是POST。如果是GET,修改SP代码,生成自动提交的POST表单来发送SAML请求。
附一个简单的POST表单示例:
<form method="POST" action="https://login.salesforce.com/idp/endpoint/HttpRedirect"> <input type="hidden" name="SAMLRequest" value="你的Base64编码SAML请求内容"> <input type="hidden" name="RelayState" value="你的RelayState参数值"> <button type="submit">前往Salesforce登录</button> </form> <script> // 自动提交表单,无需用户点击按钮 document.forms[0].submit(); </script>
内容的提问来源于stack exchange,提问作者Preety
相关产品推荐
相关产品推荐

