我最近使用WIF针对STS设置了WCF服务,我正在尝试了解所需的证书及其影响,我有一个针对IIS的证书允许HTTPS通信,但在STS配置中有两个以上的引用证书。 e.g。
<appSettings>
<add key="SigningCertificateName" value="CN=STSTestCert"/>
<add key="EncryptingCertificateName" value="CN=DefaultApplicationCertificate"/>
</appSettings>
在MSDN文档(http://msdn.microsoft.com/en-us/library/ee748498.aspx)中声明
STS使用默认证书对其发出的令牌进行签名。此证书名为“STSTestCert”,它会自动添加到您的证书存储区以供STS使用。证书文件存在于STS项目中。该文件的密码是“STSTest”。这不应该用于生产练习。您可以将默认证书替换为任何其他证书
我的问题是用于公共服务的签名证书和加密证书是什么以及什么是合适的证书?我需要3个不同的吗?
答案 0 :(得分:3)
围绕WIF构建的声明是通过令牌传递的。
每个令牌都经过签名,以证明它来自预期的STS。
AFAIK,没有办法删除令牌的签名组件(这是有道理的,否则任何第三方都可以生成它们并“假装”它们来自STS)。
这些令牌也可以加密。如果您在https上运行,则整个邮件将使用IIS证书进行加密,并且令牌本身将使用WIF加密证书再次加密。令牌加密是可选的。当您使用FedUtil时,其中一个问题是“您是否需要令牌加密?”。如果您说“否”,则表示未加密。如果您说“是”,则表示已加密,然后系统会要求您提供证书。
如果需要,您可以使用相同的证书进行令牌加密和签名。从安全角度来看,使用两个是有意义的。
因此,“最安全”的解决方案将使用三个证书。
您可以从受信任的颁发者那里以正常方式获得证书。