【发布时间】:2014-06-13 11:01:27
【问题描述】:
basicHttp绑定对Java客户端很好用,没有问题,如果我打开消息安全,会不会给Java客户端带来麻烦?
由于basicHttp是SOAP1.1,如果开启消息安全,是否会使用WS-Security来支持基于证书的认证?
【问题讨论】:
basicHttp绑定对Java客户端很好用,没有问题,如果我打开消息安全,会不会给Java客户端带来麻烦?
由于basicHttp是SOAP1.1,如果开启消息安全,是否会使用WS-Security来支持基于证书的认证?
【问题讨论】:
如果您想在使用 SOAP 1.1 时使用基于证书的身份验证,最好使用 自定义绑定(还要考虑基于 Java 的客户端或 Oracle 服务等互操作性)。 AuthenticationMode 会根据您的需要而改变。
例如,下面的绑定显示了服务器端和客户端的相互证书身份验证 + 传输安全性(https)。
<customBinding>
<binding name="customSSLMutualCertificate" sendTimeout="00:05:00" receiveTimeout="00:05:00">
<customTextMessageEncoding messageVersion="Soap11"/>
<security defaultAlgorithmSuite="Basic256Rsa15" authenticationMode="MutualCertificate"
requireDerivedKeys="false" securityHeaderLayout="Lax" includeTimestamp="false"
keyEntropyMode="CombinedEntropy" messageProtectionOrder="SignBeforeEncrypt"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10"
requireSignatureConfirmation="false" enableUnsecuredResponse="true">
<localClientSettings cacheCookies="true" detectReplays="false"
replayCacheSize="900000" maxClockSkew="00:05:00"
maxCookieCachingTime="Infinite"
replayWindow="00:05:00" sessionKeyRenewalInterval="10:00:00"
sessionKeyRolloverInterval="00:05:00" reconnectTransportOnFailure="true"
timestampValidityDuration="00:05:00" cookieRenewalThresholdPercentage="60" />
<localServiceSettings detectReplays="true" issuedCookieLifetime="10:00:00"
maxStatefulNegotiations="128" replayCacheSize="900000" maxClockSkew="00:05:00"
negotiationTimeout="00:01:00" replayWindow="00:05:00"
inactivityTimeout="00:02:00"
sessionKeyRenewalInterval="15:00:00" sessionKeyRolloverInterval="00:05:00"
reconnectTransportOnFailure="true" maxPendingSessions="128"
maxCachedCookies="1000" timestampValidityDuration="00:05:00" />
<secureConversationBootstrap />
</security>
<httpsTransport manualAddressing="false" maxBufferPoolSize="524288"
maxReceivedMessageSize="65536" allowCookies="false"
authenticationScheme="Anonymous"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
keepAliveEnabled="true" maxBufferSize="65536"
proxyAuthenticationScheme="Anonymous"
realm="" transferMode="Buffered"
unsafeConnectionNtlmAuthentication="false"
useDefaultWebProxy="true" requireClientCertificate="false"/>
</binding>
</customBinding>
【讨论】: