签署AuthenRequest SAML

时间:2018-01-23 16:00:11

标签: request saml signing x509certificate2

我正在尝试签署HTTP-Redirect绑定AuthenRequest,以便将其发送给Idp。签署请求的逻辑是什么?我使用我的x509和私钥签名吗?我是否使用我的私钥和Idp的x509证书进行签名?此外,Idp需要签名查询参数。我签名后,是否只是从请求中提取签名值?

我在c#.net

中开发

由于

2 个答案:

答案 0 :(得分:1)

您始终使用私钥进行签名。收件人将使用您的公钥验证签名。

在这种情况下,您使用私钥对SAML authn请求进行签名,身份提供商将使用您的公钥验证签名。

通常,您为身份提供商提供公钥作为证书文件或SAML元数据的一部分。

如果IdP要求签名作为查询字符串的一部分,这意味着他们希望您使用HTTP-Redirect绑定来发送authn请求。您需要查看SAML v2.0绑定规范以了解如何实现它。签名不是请求的一部分,因此不会从中提取。

答案 1 :(得分:0)

在HTTP-Redirect帖子中获取正确的Signature值的最佳和最简单的解决方案是使用名为ComponentPro的c#的第三方库。以下是我以前的工作:

NameValueCollection queryString = RedirectUtil.CreateQueryString("SAMLRequest", authnRequest.GetXml(), relayState, key, signatureAlgorithm);

密钥是私钥。