当前位置: 首页 > 知识库问答 >
问题:

ADFS 2.0中的SAML 2签名错误

胡沈义
2023-03-14

在SSO场景中,我们使用ADFS 2.0作为IDP,使用Shibboleth作为SP。这是SP启动的登录。配置后,当我尝试在Shibboleth和ADFS 2.0之间建立通信(抛出浏览器重定向)时,ADFS 2.0抛出以下错误。

SAML消息签名验证失败。消息颁发者:<代码>http://sampleserver/adfs/services/trust异常详细信息:MSIS015:服务器需要签名的SAML身份验证请求,但不存在签名。

事件id-320相关事件id-364

> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolSignatureVerificationException:
> MSIS1015: Server required signed SAML AuthenticationRequest but no
> signature present.    at
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.ValidateSignatureRequirements(SamlMessage
> samlMessage)    at
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.Issue(IssueRequest
> issueRequest)    at
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.ProcessRequest(Message
> requestMessage)

我们还没有使用任何签名。我还在ADFS属性中将SignedSamlRequest设为false。Shibboleth上的SAML签名也被禁用。

除了这类错误的通用指南之外,我在微软网站上找不到任何信息。

请对此错误提供建议。

共有1个答案

孔乐邦
2023-03-14

经过大量分析,我找到了解决方案。这是一个Shibboleth配置问题。在“应用程序默认值”部分中,实体ID对于应用程序来说应该是唯一的。

应用程序默认签名="false"entityID="超文本传输协议://受保护应用程序的URL"REMOTE_USER="eppn持久化ID目标ID"

当sigining设置为true时,会发生此错误的另一种变化。这将导致ADF中出现签名不匹配错误。

 类似资料:
  • 我正在尝试将OpenAM Saml SSO集成到我的。net 5应用程序。ITfoxtec。Saml2用于处理SP上的身份验证。尝试登录时,会发送有效的post samlResponse。但在验证响应时,我得到以下异常。 确认签名算法正确(http://www.w3.org/2000/09/xmldsig#rsa-sha1) 当手动验证saml响应时(通过浏览器插件saml Chrome面板),我

  • 我需要用c语言验证由JAVA签名API生成的签名。我有一套相同的公钥和私钥。我还验证了c语言的签名和验证工作。但是我在验证JAVA生成的签名时遇到了问题。我看了所有的文件,尝试了不同的方法,但我似乎还是不明白。我将使用用于验证的原始JAVA代码粘贴等效的c代码。 原始JAVA代码: C代码: 我有3个问题: 这是验证签名的正确方法吗? 我需要在验证数据之前对其进行散列吗?如果是,那么JAVA在签名

  • 我想用PHP实现一个XML数字签名。我正在这个验证器上测试签名的正确性。 我得到了错误的签名值,所以我要一步一步地解释我在做什么,请纠正我做错了什么。 我要签名的XML(无新行): 首先,我规范化XML,然后使用sha256对其进行散列,从而生成正确的摘要值。 第二,创建SignedInfo XML元素并规范化它(无新行): 最后,使用RSA-SHA256对SignedInfo元素进行签名。这是产

  • 我在实现SLO时遇到了困难,遇到了Okta的“畸形请求”错误[403错误]。OKTA系统日志。 调试时,AuthController中的取消绑定开始出错。 [SingleLogout错误:ITfoxtec。身份。Saml2。Saml2BindingException:HTTP表单不包含SAMLRequest] 与link类似的设置:https://developer.okta.com/blog/2

  • 我正在尝试从外部远程服务对文档进行签名。签署过程分两个阶段进行。远程服务在第一阶段期待base64编码的散列,并在身份验证后发出令牌。在第二阶段,我们将使用接收到的令牌再次传递相同的散列并获得base64签名的散列。我在这里附上签名错误的文件。文件 如果有人可以分析它并指导我评估无效签名背后的原因。我正在使用执行与pdf相关的操作。 更新 根据反馈,我做了一些更正。文档现在正在更改。已更改的文档