签署 AuthenRequest SAML
Signing AuthenRequest SAML
我正在尝试签署我的 HTTP 重定向绑定 AuthenRequest,以便我可以将它发送给 Idp。签署请求背后的逻辑是什么?我是否使用我的 x509 和私钥对其进行签名?我是否使用我的私钥和 Idp 的 x509 证书对其进行签名?此外,Idp 需要签名查询参数。我是否在签名后简单地从请求中提取签名值?
我正在用 c# .net 开发
谢谢
你总是用你的私钥签名。收件人将使用您的 public 密钥验证签名。
在这种情况下,您使用私钥签署 SAML 身份验证请求,身份提供商将使用您的 public 密钥验证签名。
通常,您向身份提供者提供您的 public 密钥作为证书文件或作为 SAML 元数据的一部分。
如果 IdP 需要签名作为查询字符串的一部分,这意味着他们希望您使用 HTTP 重定向绑定来发送身份验证请求。您需要查看 SAML v2.0 绑定规范以了解如何实现它。签名不是请求的一部分,因此不会从中提取。
在 HTTP 重定向 post 中获得正确签名值的最佳和最简单的解决方案是使用名为 ComponentPro 的 c# 的第 3 方库。以下是我用来让它工作的内容:
NameValueCollection queryString = RedirectUtil.CreateQueryString("SAMLRequest", authnRequest.GetXml(), relayState, key, signatureAlgorithm);
密钥为私钥。
我正在尝试签署我的 HTTP 重定向绑定 AuthenRequest,以便我可以将它发送给 Idp。签署请求背后的逻辑是什么?我是否使用我的 x509 和私钥对其进行签名?我是否使用我的私钥和 Idp 的 x509 证书对其进行签名?此外,Idp 需要签名查询参数。我是否在签名后简单地从请求中提取签名值?
我正在用 c# .net 开发
谢谢
你总是用你的私钥签名。收件人将使用您的 public 密钥验证签名。
在这种情况下,您使用私钥签署 SAML 身份验证请求,身份提供商将使用您的 public 密钥验证签名。
通常,您向身份提供者提供您的 public 密钥作为证书文件或作为 SAML 元数据的一部分。
如果 IdP 需要签名作为查询字符串的一部分,这意味着他们希望您使用 HTTP 重定向绑定来发送身份验证请求。您需要查看 SAML v2.0 绑定规范以了解如何实现它。签名不是请求的一部分,因此不会从中提取。
在 HTTP 重定向 post 中获得正确签名值的最佳和最简单的解决方案是使用名为 ComponentPro 的 c# 的第 3 方库。以下是我用来让它工作的内容:
NameValueCollection queryString = RedirectUtil.CreateQueryString("SAMLRequest", authnRequest.GetXml(), relayState, key, signatureAlgorithm);
密钥为私钥。