WCFクライアントを使用してhttpsでJavaベースのWS-Security対応Webサービスを呼び出そうとしています。 SvcTraceViewerを使用して、私が試したセキュリティ構成のどれかと予想されるセキュリティヘッダーが表示されません。Username over httpsを使用してWS-SecurityのWCFを設定する
私の最新のセキュリティ設定は次のとおりです。
<wsHttpBinding>
<binding name="MySoapBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false"/>
</security>
</binding>
</wsHttpBinding>
と私は、このようなコードでは、ユーザー名/パスワードを設定します。Java Webサービスは、このようなセキュリティヘッダーを期待し
svc.ClientCredentials.UserName.UserName = TestBase.userName;
svc.ClientCredentials.UserName.Password = TestBase.password;
:
<wsse:Security soap:mustUnderstand="1">
<wsu:Timestamp wsu:Id="Timestamp-bf41c571-7d32-438c-937e-7d83a3ac2d14">
<wsu:Created>2010-12-27T16:43:16Z</wsu:Created>
<wsu:Expires>2010-12-27T16:48:16Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-4c9b30b1-d697-4c64-89cb-a6d7e857aebf">
<wsse:Username>MyUserName</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">MyPassword</wsse:Password>
<wsse:Nonce>pzLdD4S+OCDG6Ut9Ur1oOQ==</wsse:Nonce>
<wsu:Created>2010-12-27T16:43:16Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
セキュリティーヘッダーがまったく表示されません。
トランスポートとメッセージレベルのセキュリティとセキュリティモードについては、かなり読んだことがありますが、適切なオプションを見つけることはできません。どのように私は私のためにバインディングを設定する必要があり
- HTTPS通信
- タイムスタンプが
- nonceが
ヘッダーが含まれているかどうかを確認しますか? WCFは、保護されたトランスポートチャネル上のユーザー名トークンプロファイルをサポートしますが、追加要素を必要としないプレーンテキストパスワードのみをサポートします。だから私はノンスを送って要素を作っていないということをほほ笑む。 –
@Ladislav:私はSvcTraceViewerを使ってローカルトレースログを表示しています(私のapp.configのメッセージログを有効にしています) –