問題タブ [wse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5768 参照

wcf - WCF クライアントから WSE 3.0 Web サービスへの接続

WCF クライアントからサード パーティの WSE 3.0 Web サービスに接続できません。この KB 記事に示されているように、カスタム バインディング クラスを実装しました。

http://msdn.microsoft.com/en-us/library/ms734745.aspx

この問題は、Web サービスで使用されるセキュリティ アサーション (UsernameOverTransport) に関係しているようです。

メソッドを呼び出そうとすると、次の例外が発生します。

System.InvalidOperationException: 'MyWebServiceSoap'.'[namespace]' コントラクトの 'WseHttpBinding'.'[namespace]' バインディングは、トランスポート レベルの整合性と機密性を必要とする認証モードで構成されています。ただし、トランスポートは完全性と機密性を提供できません。

ユーザー名、パスワード、および CN 番号が必要です。ベンダーから提供されたサンプル コードでは、これらの資格情報が Microsoft.Web.Services3.Security.Tokens.UsernameToken にバンドルされています。ベンダーから提供された例を次に示します。


これは、WSE 3.0 がインストールされた 2.0 アプリから正常に動作します。これは、私の WCF クライアントからのコードのスニペットです。

この質問に対する答えを探して、Web を精査しました。いくつかの情報源 (MS KB 記事など) は私を近づけますが、私はこぶを乗り越えることができないようです. 誰かが私を助けることができますか?

0 投票する
0 に答える
1998 参照

wcf - 応答でインライン セキュリティ トークンを使用して WSE 2.0 WS-Security サービスを呼び出す WCF - "トークン認証子が見つかりません"

.NET 1.1 と WSE 2.0 で、署名と暗号化の両方に x509 証明書を使用する WS-Security を使用する Web サービスがあります。このサービスに接続するように WCF クライアントを構成しようとしていますが、予想以上に難しいことがわかりました。

カスタム バインドを使用することで、バージョン管理の問題のほとんどを解決しましたが、最後の 1 つの点で行き詰まっています。Web サービスには、応答 SOAP エンベロープに 2 つの BinarySecurityToken 要素が含まれています。1 つは暗号化証明書用で、もう 1 つは署名証明書用です。

問題は、WCF が 2 番目のトークンで窒息していることです。これはエラーメッセージです:

「'System.IdentityModel.Tokens.X509SecurityToken' トークン タイプのトークン認証子が見つかりません。現在のセキュリティ設定に従って、そのタイプのトークンを受け入れることはできません。」

私が抱えている正確な問題を説明するこの会話を MSDNで見つけました。残念ながら、それは良い解決策を提供しません。エンベロープを WCF が処理できるものにハックするメッセージ エンコーダーを作成することは、私には間違っているように思えます。WSE 2.0 はインライン セキュリティ トークンを問題なく処理できます。WCF に同じ処理を強制する方法が必要です。

元の WSE 2.0 サービスの完全なソースはありますが、現時点ではセキュリティの処理方法を変更することはできません。

私が現在使用しているセキュリティバインディング要素は次のとおりです。

0 投票する
1 に答える
12102 参照

.net - .NET SOAPクライアントがHTTPヘッダーに「Connection:KeepAlive」を含めないようにするにはどうすればよいですか。(WSE3.0を使用)

HTTP接続ヘッダーに、私のWebサービスクライアントには次のものが含まれています。 Connection: Keep-Alive

これを無効にしたい。 調査を行った後、これを行う方法は、SoapHttpChannelOptionsクラスのKeepAliveメンバーをfalseに設定することであるように見えます。SoapHttpChannelOptionsしかし、 WSE3.0(Webサービス拡張)を使用してVisualStudioで生成されたWebサービスクライアントクラスにアクセス/変更する方法がわかりません。

私の場合、生成されたスタブクラスは拡張されますMicrosoft.Web.Services3.WebServicesClientProtocol

グーグルを検索する例を見つけることができず、SoapHttpChannelOptionsクラスのほとんどのメンバーがWebServicesClientProtocolクラスに継承されています...

SoapHttpChannelOptionsリファレンス
WebServicesClientProtocolリファレンス

注:私はWebサーバーを変更しようとはしていません。Webサービスクライアントを変更しようとしています。

0 投票する
3 に答える
4007 参照

wse - Microsoft.Web.Services3.ResponseProcessingException

WSE 3.0 を使用する Web サービスをテスト サーバーにデプロイしました。以下の不可解なエラーが表示されます。これが何を意味し、どのように修正するか考えていますか? 前もって感謝します!

Microsoft.Web.Services3.ResponseProcessingException: WSE910: 応答メッセージの処理中にエラーが発生しました。内部例外でエラーを見つけることができます。Response プロパティで応答メッセージを見つけることもできます。---> System.Xml.XmlException: 'wsse' は宣言されていない名前空間です。1 行目、位置 97 ) System.Xml.XmlTextReaderImpl.ElementNamespaceLookup() で System.Xml.XmlTextReaderImpl.ParseAttributes() で System.Xml.XmlTextReaderImpl.ParseElement() で System.Xml.XmlTextReaderImpl.ParseElementContent() で System.Xml.XmlTextReaderImpl.Read( ) System.Xml.XmlTextReader で。

0 投票する
1 に答える
726 参照

.net - WSE 3.0 トラスト チェーン エラー - 返送された証明書を確認するにはどうすればよいですか? トラスト チェーン エラーが発生している証明書を知りたい

WSE 3.0 で応答を受信すると、信頼チェーン エラーが発生します。

WSDL を取得すると、証明書は問題ありません。私が接続したとき、彼らの証明書は問題ありません。XML リクエストを送信すると、公開証明書が気に入られます。

WSE が気に入らないのは、応答内のトークンです。Microsoft.Web.Service3 は getelement を呼び出し、次に loadbinarysecuritytoken を呼び出しますが、チェーンをチェックし、表示される内容が気に入りません。

どのトークンが気に入らないのか知りたいです。トークンが何であるかを確認する方法がわかりません。バイナリ データなので、HttpAnalyzer はあまり役に立ちません。

何が問題なのかを完全に把握するまで、問題を修正することはできません。彼らは私に間違った証明書を送信していますか? それは私が持っていない証明書であり、私の個人的な信頼に追加する必要がありますか? 何?

0 投票する
2 に答える
1491 参照

.net - WSE 3.0 Webサービスを取得してクライアントのIDを偽装するにはどうすればよいですか?

IIS6.0のWindowsServer2003で実行されているWSE3.0ベースのWebサービスがあります。Webサービス要求を送信するクライアントユーザーをWebサービスプロセスで偽装したいのですが、サービスはクライアントを偽装していません。

Webアプリケーションには独自のアプリプールがあり、現在、ネットワークサービスIDで実行するように設定されています。Windows Server 2003マシンアカウントは、Active Directoryでの委任が有効になっています(少なくとも私のIT担当者によると)。サービスWSEポリシー(wse3policyCache.config内)は次のようになります。

このサービスのweb.configには、(とりわけ)次のエントリがあります。

アプリケーションに対して匿名アクセスが有効になっています(これは、トランスポートレベルのセキュリティがサービスによって使用されていないため、メッセージレベルが使用されているために必要です)。マシンアカウントには、次のSPNが登録されています。

クライアントのwse3policyCache.configには次のものがあります。

クライアントコードは次のようになります。

ただし、このサービスはクライアントIDを偽装していません。サービスでlog4netを使用してい%usernameますが、ASP.NETトレースログに出力するように要求するNT AUTHORITY\NETWORK SERVICEと、クライアントユーザーIDではなく常にログになります。私が間違っていることはありますか?WSEがなりすましを実行しようとして失敗しているのかどうかを確認できる場所はありますか?イベントログに次のエントリが表示されます(MYDOMAINとMYUSERはここでは隠されています)。

そして、私のWSEトレースファイルには次のように表示されます。

少なくとも、Kerberos拡張機能がKerberosヘッダーを処理していることはわかっています。

編集:次に、私のWebサービスは独自のクライアント通信ライブラリを使用してSSPI / IWAを使用して別のサーバーを呼び出します(この3番目のサーバーをfooサーバーと呼びましょう)。fooサーバーへのこの2回目の呼び出しを行うときに、クライアントのIDを使用するようにします。これは、このクライアント通信ライブラリがfooサーバーのSPNと別のサービスを呼び出しAcquireCredentialsHandleて使用することを意味します。InitializeSecurityContextこの特定のケースでは、fooサーバーは実際にはWSE Webサービスと同じマシンで実行されています(したがって、SPNを使用しています)mycompany/rd260-2)。この2番目のホップは同じマシンに対するものなので、NTLMを使用することを期待しますが、それでもWebサービスクライアントのユーザーIDを偽装する必要がありますね。fooサーバーのログでは、接続を受け入れ、提供されたIWAセキュリティコンテキストを使用し、このセキュリティコンテキストに基づいてrd36-2$、WSE WebサービスがIISで実行されているため、接続しているユーザーがマシンアカウントであることがわかります。ネットワークサービスID(マシンアカウントに関連付けられている)の下。fooサーバーのログで、IWAセキュリティコンテキストを受信した後、最終的にWebサービス要求を送信したユーザーのIDを確認したいと思います。fooサーバーを別のマシンに移動して、それがこれに何らかの関係があるかどうかを確認すると便利ですか?

0 投票する
1 に答える
210 参照

c# - WSEのMessageID形式

WSE 3.0を使用して、IBMのWebSphereなどの他のさまざまなプラットフォームとインターフェースするWebサービスを構築しました。リクエストのアドレス指定部分では、MessageIDのコンテンツはuuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxの形式である必要があります。それ以外の場合は、「不正な要求」エラーが発生します。WS-Addressing RFCによれば、MessageIDには何でも含めることができると言われています。その形式に準拠していないMessagdIDを許可する方法はありますか?

ありがとう!

0 投票する
1 に答える
651 参照

c# - .NET WSEクライアントスタブはスレッドセーフですか?

クライアントスタブは.NETWSEによってWSDLから生成されますか?スレッドセーフですか?

もちろん、「スレッドセーフ」は厳密に定義された用語である必要はないので、少なくとも次のことに興味があります。

同じスタブクラスの異なるインスタンスに、シングルスレッド実行と同じ効果的な動作で、異なるスレッドから同時にアクセスできますか?

同じスタブクラスの単一のインスタンスは、異なるスレッドから同時にアクセスでき、同じ呼び出しがシングルスレッド実行で任意の方法でインターリーブされるのと同じ効果的な動作をしますか?

また、ここで説明されている(およびここで発生している)用語を使用して、これをより正確に説明することもできます。

0 投票する
1 に答える
7463 参照

c# - WSE032エラー、WebServicesConfigurationは構成をロードできません。セクション

給与情報をスイスの行政機関にアップロードするための小さなツールを開発し、WSE3.0を使用して成功しました。しかし今、私の顧客の1人が、彼のマシンで、次のスタックトレースでプログラムがクラッシュすることを報告しました。

私はこれが何を意味するのかを理解しようとしましたが、私はここで少し迷っていることを認めなければなりません。プログラムには.exe.config、次の内容のファイルがあります。

<security>上記のXMLからノードを削除すると、問題修正されます(WSE032エラーは消えます)が、後で送信するデータに署名できるようにセキュリティをこのように構成する必要があるため、これは私の場合の解決策ではありませんの上。

何が問題になる可能性があるかについての考え。明らかに、WSE 3.0はお客様のマシンにインストールされています。そうでない場合、WSE032エラーが発生する前に、スタックトレースが呼び出し元にWSE3.0を表示していなかったためです。