【发布时间】:2016-01-11 08:16:03
【问题描述】:
我正在尝试关注 these instructions 以使用 WIF 创建 SAML2 令牌。
说明书上说
要向 SecurityTokenDescriptor 提供签名凭据,您必须 首先获取对签名证书的引用作为 X509Certificate2 实例。从这里你可以创建一个 SecurityKeyIdentifier 并产生一个 SigningCredentials 实例
提供以下代码:
X509Certificate2 signingCert = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, "CN=busta-rpsts.com ");
SecurityKeyIdentifier ski = new SecurityKeyIdentifier(new SecurityKeyIdentifierClause[] { new X509SecurityToken(signingCert).CreateKeyIdentifierClause<X509SubjectKeyIdentifierClause>() });
X509SigningCredentials signingCreds = new X509SigningCredentials(signingCert, ski);
descriptor.SigningCredentials = signingCreds;
我尝试使用包含主题密钥标识符的 makecert 制作测试证书,但是当我运行通过上述代码制作的任何证书时,我得到以下 System.NotSupportedException :
“X509SecurityToken”不支持“X509SubjectKeyIdentifierClause” 创作。
调用此行时会发生这种情况:
new X509SecurityToken(signingCert).CreateKeyIdentifierClause<X509SubjectKeyIdentifierClause>()
现在我知道说明书说...
注意:使用 makecert.exe 创建的证书不包含主题 密钥标识符,因此不能以这种方式使用。你应该 使用 Windows Server 生成证书或购买证书 来自 Verisign 或同等供应商。
...但是我使用了参数 -eku 2.5.29.14,我希望它能解决问题,我认为这张图片表明我做得对吗? p>
谁能告诉我如何创建一个测试证书,我可以用它来让这个代码工作,或者指出我正确的方向?我也不确定“您应该使用 Windows Server 生成证书”是什么意思。这是否意味着creating a CSR?
提前致谢:)
【问题讨论】:
标签: c# .net certificate saml wif