使用 X509Token 對稱來保護訊息的 SAMLToken
使用 SAML 記號來進行鑑別。要求中的 SAML 記號以及要求與回應中的 SOAP 內文,會利用 X509Token 對稱訊息保護來簽署和加密。此外還有一個訊息時間戳記。
當使用 X509Token 對稱保護時,會建立一個暫時金鑰來進行訊息的簽署及加密。暫時金鑰是利用接收端的公用憑證來加密。
在下列範例中,記號參照使用了 RequireThumbprintReference。您可以變更原則,以使用 RequireIssuerSerialReference 或 RequireKeyIdentifierReference。您也可以新增 <sp:RequireDerivedKeys /> 主張來修改這個原則,以利用暫時金鑰所衍生的金鑰來維護訊息交換安全。如果用戶端只能利用 SAML 記號來自行鑑別,且訊息交換需要簽署及加密,最好使用這個原則範本。
下列原則顯示用來鑑別的 SAML 記號和用來保護訊息的 X509Token 對稱:
<wsp:Policy wsu:Id="X509SymmetricForMessageAndSamlForClient">
<wsp:ExactlyOne>
<wsp:All>
<sp:SignedEncryptedSupportingTokens
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
<wsp:Policy>
<sp:SamlToken
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssSamlV20Token11/>
</wsp:Policy>
</sp:SamlToken>
</wsp:Policy>
</sp:SignedEncryptedSupportingTokens>
<sp:SymmetricBinding>
<wsp:Policy>
<sp:ProtectionToken>
<wsp:Policy>
<sp:X509Token
sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
<wsp:Policy>
<sp:RequireThumbprintReference />
<sp:WssX509V3Token10 />
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:ProtectionToken>
<sp:AlgorithmSuite>
<wsp:Policy>
<sp:Basic128 />
</wsp:Policy>
</sp:AlgorithmSuite>
<sp:Layout>
<wsp:Policy>
<sp:Strict />
</wsp:Policy>
</sp:Layout>
<sp:IncludeTimestamp />
<sp:OnlySignEntireHeadersAndBody />
<sp:EncryptSignature />
</wsp:Policy>
</sp:SymmetricBinding>
<sp:Wss11>
<wsp:Policy>
<sp:MustSupportRefKeyIdentifier />
<sp:MustSupportRefIssuerSerial />
<sp:MustSupportRefThumbprint />
<sp:MustSupportRefEncryptedKey />
<sp:RequireSignatureConfirmation />
</wsp:Policy>
</sp:Wss11>
<sp:SignedParts>
<sp:Body />
</sp:SignedParts>
<sp:EncryptedParts>
<sp:Body />
</sp:EncryptedParts>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>