我正在尝试对我的HTTP-Redirect绑定AuthenRequest进行签名,这样我就可以将其发送到Idp。签名请求背后的逻辑是什么?我要用我的x509和私钥来签名吗?我要用我的私钥和Idp的x509证书来签名吗?此外,Idp还需要签名查询参数。在签名后,我是否可以简单地从请求中提取签名值?
我正在使用c# .net进行开发
谢谢
发布于 2018-01-30 01:46:03
在HTTP-Redirect post中获得正确的签名值的最好也是最简单的解决方案是使用一个名为ComponentPro的第三方c#库。下面是我用来让它工作的方法:
NameValueCollection queryString = RedirectUtil.CreateQueryString("SAMLRequest", authnRequest.GetXml(), relayState, key, signatureAlgorithm);密钥是私钥。
发布于 2018-01-24 07:51:55
你总是用你的私钥签名。接收方将使用您的公钥验证签名。
在这种情况下,您使用您的私钥对SAML authn请求进行签名,身份提供商将使用您的公钥验证签名。
通常,您将公钥作为证书文件或SAML元数据的一部分提供给身份提供者。
如果IdP要求签名作为查询字符串的一部分,这意味着他们希望您使用HTTP-Redirect绑定来发送身份验证请求。您需要查看SAMLv2.0绑定规范来了解如何实现这一点。签名不是请求的一部分,因此不会从中提取。
https://stackoverflow.com/questions/48405945
复制相似问题