問題タブ [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.
c# - WSE または WCF 経由で Web サービスにアクセスしようとすると、「署名または復号化が無効でした」
WSDL と、C# を使用してヒットする必要がある Web サービスの URL が与えられました。Web サービスは HTTPS 経由でアクセスされ、提供された証明書を使用して SOAP ペイロードに署名する必要があると指示されました。サンプルの SOAP メッセージも提供されており、それを soapUI にプラグインすると、有効な応答が返されます。そのメッセージは次のようになります。
WSE 3.0 と WCF を使用してこのサービスにアクセスしようとしました。WSE が時代遅れであり、使用すべきではないことはわかっていますが、この時点で機能するものを切望しており、WCF についてはうまくいきません。
私のWSE実装は次のとおりです。
ここに私のWCF実装があります:
私の .config ファイルは次のようになります。
WSE によって生成される SOAP 呼び出しは、次のようになります。
WCF SOAP 要求は次のようになります。
WSE を使用して何を試しても、「署名または復号化が無効でした」というエラーが表示されます。WCF の実装を試してみると、「要素 'o:Security' のデータを理解する必要がありますが、処理できない」ということがわかります。私はこれについて頭を悩ませてきました - 誰かアイデアを持っていますか?
編集: 現在の SOAP リクエスト:
asp.net - wcfサービスでasp.net要求/応答フィルターを使用するにはどうすればよいですか?
MicrosoftのWSEライブラリを使用する古いSOAPWebサービスがあります。現在、ターゲットの.netフレームワークとオペレーティングシステムではサポートされていません。サーバーでwcfを使用するようにサービスを変換しましたが、クライアントは引き続き古いWebサービスプロキシを使用します。私が現在抱えている問題は、クライアントがhttpリクエストを圧縮して帯域幅を節約することです。asp.netアプリケーションには、送信されたクライアントがリクエストヘッダーのコンテンツエンコーディングに基づいてgzip/deflateを使用しているかどうかを検出するhttpmodualがあります。サービスがwcfになったため、asp.net要求ストリームから読み取らず、解凍が機能していません。リクエストを圧縮しないクライアントは現在機能します。wcfサービスをasp.netパイプラインと統合するにはどうすればよいですか?
wcf - WCF channelfactory および Weblogic サービスでの SAML2 トークンの使用
ヘルプ!:) 私は次の作業をしようとしている問題の終わりがありません (私が正確に正しい用語を使用していない場合は、事前に謝罪してください) :)
SAML 2 ポリシーで保護された Weblogic Web サービスと通信する .NET Web アプリケーション (クライアント) を取得する必要があります。.NET 3.5/4 を使用する必要があるという制限があり、SAML2 トークンを生成するように構成された ADFS2 を操作するために WIF (拡張機能付き) を使用しています。
ウェブサイト -> adfs2 -> SAML2 トークン ビットはこれまでのところ正常に動作しています - 確実にトークンを取得しています。
追加 (1) - Weblogic サービスは、sender-vouches 確認メソッドを実装する SAML2 ポリシーを使用する必要があります。ADFS 2 はデフォルトでベアラーを提供しますが、トークンをネットワーク経由でサービスに送信する前に、SAML アサーションを操作できます ( s)。
追加 (2) - さまざまな理由から、SSL 経由で Web サービスにアクセスできず、basicHTTPBinding が唯一の選択肢です。
今問題..リクエストでトークンを送信するような方法でWeblogicと通信できません(リクエストに有効なセキュリティヘッダーがないため、ログに記録された試行はすべてオラクルの「一般的なWebサービスセキュリティエラー」を返します)。推奨されるアプローチは、チャネル ファクトリを使用する WCF 経由です。以下のコードは、私が試したものの大まかな例です。クレーム ID/トークンは、WIF 拡張機能に付属のコード サンプルから取得したものです。
次の投稿 (および私が見つけた他のすべての場所) の答え: WCF と WebLogic SAML 相互運用
..まさに私がやっていることです-しかし、WireSharkでトラフィックを表示するか、顧客のMessageInspectorを実装して「BeforeSendRequest」でリクエストを見るかどうかにかかわらず、トークンの兆候は見られません(リクエストは次のように拒否されます)結果)。
また、トークンを操作して送信者保証を含めるか、そのままにしておくかは問題ではありません。
追加 (3): ADFS2/SAML/WIF/WCF などを使用しない場合、Weblogic サービスと正常に通信できましたが、代わりに、より基本的な WSE2.0/3.0 Web 参照アプローチ (つまり、作成SoapRequest、UserName トークンなど)
問題は、ユーザーの操作なしで有効なユーザー名とパスワードを提供することです。つまり、「SSO アプローチ」を維持し、フォーム認証 (または同等のもの) を実装して毎回ユーザーの資格情報を取得する必要はありません。ADFS によって生成された SecurityToken を WSE で使用する明確な方法はないようです。また..
誰かが光を当てるのを助けることができますか? 提供されたトークンを使用した WCF チャネル ファクトリ アプローチが単に機能しない理由。つまり、デバッグ時に有効なトークンの兆候がなく、Weblogic が有効な SAML トークンを受信していないことは確かです。
また、CustomMessageEncoder ルートに進み、その方法で SAML アサーションを SOAP ヘッダーに追加することも検討しました..しかし、私が見つけたものから、実際にはそれほど難しいことではありません。WCF の何かが壊れていますか?
c# - SAML を使用した wsse セキュリティ ヘッダー
サービス プロバイダーによって公開されている Web サービスを使用する必要があります。彼らから WSDL ファイルを入手しました。SOAP リクエスト ヘッダーに、SAML アサーションを含む wsse:Security ヘッダーを追加する必要があります。
以下の wsse:Security ヘッダーを見てください。私はたくさん検索して、WSE 3.0、WIF、および WCF を試しました。約 15 日を費やしてさらに移動するのを手伝ってください。時間がなくなりました。
コードは必要ありません。手がかりを教えてくれればそれで十分です。
ありがとう、よろしく、 P.Ponkarthik
wcf - WCF または WSE Edit セキュリティ ヘッダー
WCF または WSE を使用して SOAP セキュリティ要素を変更しようとしています。
WCF: messageinspector を実装し、Beforerequestsent にカスタム コードを追加します。コード ビハインドで次のカスタム バインディングを設定したところ、ref System.ServiceModel.Channels.Message リクエストにセキュリティ要素が表示されません エンベロープとヘッダー、ボディがありますが、ヘッダーにセキュリティ要素がありません。
これは、ref変数リクエストがどのように見えるかです
フィドラーには送信セキュリティ ヘッダーが表示されますが、Before request sent メソッドの Security 要素にアクセスできません
WSE: 彼らは SOAP フィルターの使用を推奨し、いくつかのメソッドをオーバーライドします。すべてのトークンがコード ビハインドにあります。
カスタムポリシー、ポリシーアサーションを作成し、以下をオーバーライドしています
しかし、ここでも封筒にはセキュリティ要素がありません。
提案してください。セキュリティ ヘッダーを編集するためにオーバーライドするメソッド
編集済み:現在表示されているリクエスト
表示する必要があるもの
署名と暗号化の詳細を表示する完全な SOAP 要求を表示するように編集
wcf - レガシ Web サービスを使用する WCF
WCF を使用して従来の Web サービスを使用する際に問題が発生しています。Web サービスが異なる署名キーと暗号化キーを使用していたという事実を扱っていた 1 つの問題を解決しました。しかし、Web サービス呼び出しを行うと、バージョン ミスマッチの応答が返されます。WSE で生成されたエンベロープを見ると、SOAP のバージョンが WCF で生成されたものと異なることに気付きました。
私の WSE エンベロープ ヘッダーは次のようになります。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
一方、WCF エンベロープ ヘッダーは
soap エンベロープの名前空間とプレフィックスを変更するためのコードをいくつか追加しました。
以下は、prefixreplace.cs です。
}
以下は、ReplacePrefixMessageEncodingBindingElement です。
web-services - System.Web.Services.Protocols.SoapHttpClientProtocol を Microsoft.Web.Services2.WebServicesClientProtocol にオーバーライドできません
私の Web サイト (3.5 バージョン) には、App_WebReference フォルダーに作成された外部 Web サービスへの Web 参照があります。このフォルダーには Reference.cs がありません (.wsdl と .discomap のみ利用可能)。C:\Users\Amit\AppData\Local\Temp\2\Temporary ASP.NET Files\core_webservices\2e1ad39b_shadow\16784daa\249954494\30312779\ にある ASP.NET 一時フォルダー内の dll でプロキシ クラスを見つけることができます。 App_WebReferences.c1uisrry.dll
クラス宣言は次のとおりです。 public class Service1 : SoapHttpClientProtocol
DLLに表示されているため、編集できません。
WSE 2.0 でサポートされている SOAP メッセージを作成できるように、継承を次のようにオーバーライドする必要があります。
パブリック クラス Service1 : Microsoft.Web.Services2.WebServicesClientProtocol
助けてください。ありがとうございました!
VS Studio 2010 + WSE 2.0 を使用しています
web-services - Web サービスの開発 - パスワード ダイジェスト認証を使用した UsernameToken ヘッダー
クライアント証明書とメッセージ認証を使用して、ABC サーバーでサービスをホストしようとしています。
クライアントは、サービスが理解する必要がある WSSE UsernameToken Security ヘッダーを提供し、適切な認証を行う必要があります。
2 つのオプションがあります -<br> 1. WCF サービス - ただし、そのままではダイジェストされたパスワードをサポートしていないため、カスタム バインドまたはその他の微調整を使用する方法を見つける必要がある場合があります。
2. WSE 3.0 を使用した Web サービス - サービス WSE 3.0 を開発し、それを利用して次のセキュリティ ヘッダーを処理する方法を見つける必要があります。
WSE 3.0 の前提条件は何ですか? また、そのために必要なツールとライブラリは何ですか?
どんな助けでも大歓迎です。
リクエストには、次の SOAP ヘッダーが必要です。
ありがとうございました、
c# - WSE クライアントを WCF に移行する - SecurityPolicyAssertion と UsernameToken を置き換える方法は?
現在 WSE 3.0 クライアントによって呼び出されている Java で実装された Web サービスがあり、WSE から WCF に移行したいと考えています。標準ツールを使用して、Web サービスを呼び出すことができるクライアントを作成しましたが、「必要なパラメーター値がありません」というメッセージとともに SoapException が返されます。Web サービスは HTTPS を使用し、ユーザー名とパスワードを提供する必要があります。既存の WSE クライアント コードでは、次のようにSecurityPolicyAssertionおよびSendSecurityFilterをサブクラス化することによって資格情報領域がサポートされます。
これらのクラスは、クライアントで生成されたプロキシ クラスに次のように適用されます。
私が見つけたのは、WSE クライアント コードを編集してobjListSvc.SetPolicy(objPolicy)の行を削除すると、「必要なパラメーター値がありません」という同じエラー メッセージが表示されることです。
この Web サービスのユーザー名とパスワードを構成する、上記の WSE コードと一致する同等の WCF 構成/コードは何ですか? 使用されている WCF 構成は、生成された既定値です。
前もって感謝します