2011-04-22 140 views
2

我最近使用WIF設置了針對STS的WCF服務,我試圖瞭解所需的證書以及它們的影響,我有一個針對允許HTTPS通信但允許HTTPS通信的IIS的證書是對另外兩個證書的參考。例如Windows身份基礎WCF服務證書

<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種不同的嗎?

回答

3

WIF構建的聲明通過令牌傳遞。

每個令牌都經過簽名以證明它來自預期的STS。 AFAIK,沒有辦法刪除令牌的簽名組件(這是有道理的,否則任何第三方都可以生成它們並「僞裝」它們來自STS)。

這些標記也可以加密。如果您通過https運行,則整個消息將使用IIS證書進行加密,並且令牌本身將再次使用WIF加密證書進行加密。令牌加密是可選的。當您使用FedUtil時,其中一個問題是「您想要令牌加密嗎?」。如果你說「不」,它不會被加密。如果你說「是」,它會被加密,然後你會被要求提供證書。

如果您願意,您可以使用相同的證書進行令牌加密和簽名。從安全角度來看,使用兩個是有道理的。

所以「最安全」的解決方案將使用三個證書。

您以正常方式從受信任的頒發者獲取證書。