利用背書記號保護 Web 服務
背書記號用來簽署 SOAP 訊息簽章。 背書記號通常是用來簽署整個 <Signature> 元素,以及選擇性地簽署其他訊息組件。如果使用傳輸安全,則必須利用背書記號來簽署 SOAP Security 標頭中的時間戳記。
背書支援記號主張
- EndorsingSupportingTokens - 這個記號不需要簽署或加密。
- SignedEndorsingSupportingTokens - 這個記號需要簽署。
- EndorsingEncryptedSupportingTokens - 這個記號需要加密。
- SignedEndorsingEncryptedSupportingTokens - 這個記號需要簽署。
X509Token 作為背書記號
您可以將 X509Token 配置為背書記號。 將 X509Token 配置為背書記號類似於將 X509Token 配置為 AssymmetricBinding 中的 InitiatorToken。 如果要將 X509Token 配置為背書記號,您必須有一個原則將 X509Token 包含在先前所說明的其中一個背書記號主張內,在 server.xml 檔中還需要有一個 <SignatureProperties> 元素。
<sp:EndorsingSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:EndorsingSupportingTokens>
將 X509Token 配置為背書記號之後,您必須在 server.xml 檔中定義 <signatureProperties> 元素來識別金鑰儲存庫和簽署金鑰。 <signatureProperties> 元素的配置與訊息簽章 X509Token 的配置相同。 如需相關資訊,請參閱利用 X.509 記號保護 Web 服務。
UsernameToken 作為背書記號
將 UsernameToken 配置為 endorsingToken,除了原則中沒有 HashPassword 之外,類似於含有 PasswordDigest 的 UsernameToken 配置。如果要將 UsernameToken 配置為背書記號,您必須有一個原則將 UsernameToken 包含在「背書支援記號主張」一節所說明的其中一個背書記號主張內。
<sp:SignedEndorsingEncryptedSupportingTokens>
<wsp:Policy>
<sp:UsernameToken
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10 />
<sp:RequireDerivedKeys />
</wsp:Policy>
</sp:UsernameToken>
</wsp:Policy>
</sp:SignedEndorsingEncryptedSupportingTokens>
在這個範例原則片段中,訊息的其餘部分會進行 UsernameToken 的簽署及加密。之後,再利用從 UsernameToken 中的密碼衍生而來的金鑰來簽署訊息簽章。
由於 UsernameToken 背書記號會使用衍生金鑰,您必須對提供者應用程式實作並配置密碼 CallbackHandler。 如需相關資訊,請參閱利用 UsernameToken 鑑別 Web 服務用戶端。