問題タブ [ws-security]
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.
java - Web サービス (JAX-WS) 内からユーザー名/パスワードにアクセスしていますか?
クライアントと別のアプリケーションの間の中間層として機能する Web サービスを実装しています。Web サービスの要件では、標準の WS-Security を使用して SOAP ヘッダーでユーザー名とパスワードを送信する必要があると述べています。
Web サービスの実装では、メソッド呼び出しを通じて渡された情報を取得し、それをユーザー名とパスワードと組み合わせて他のアプリケーションを呼び出す必要があります。これが私の問題の始まりです。
Web サービス実装内の SOAP ヘッダーからユーザー名とパスワードを取得する簡単な方法がわかりません。注入された WebServiceContext を介してユーザー プリンシパル (ユーザー名) にアクセスできますが、パスワードを取得する簡単な方法がわかりません。
SOAPHeader にアクセスでき、おそらく XML を解析してパスワード要素を取得できますが、これはこの問題を解決するための非常に面倒な方法のようです。
私は JAX-WS と WS-Security について、自分が望んでいるほど詳しくありません。他の誰かにとって明らかな何かが欠けていることを願っています-おそらく、ある種のハンドラーを実装する必要がありますか?
web-services - WebサービスにおけるSTSのセキュリティ上の利点は何ですか?
Webサービスを使用したセキュリティ(特に認証)について調べ始めましたが、セキュリティトークンサービスへの参照がたくさんあります。
私が見たところ、彼らはユーザー名-パスワード(または何か)を取り、検証時にデジタルトークンを返します。そもそもユーザー名とパスワードだけに頼るよりも、このトークンをどのように安全に使用できるでしょうか。
java - ws-securityを使用してメッセージに署名するときに署名するもの
Webサービスにセキュリティを追加し、Timestamp
とに署名することを選択しましたToken
。
Body
ドキュメントを読んでいると、SOAP
メッセージに署名する例がたくさん見つかりました。
私の質問は:署名するのに最適なものは何ですか?
私が理解していることから、署名がかなり大きいBody
場合、パフォーマンスの問題につながる可能性があります。Body
ありがとう。
cxf - Mule のインバウンド CXF サービスで WS-SecurityPolicy を設定する方法は?
UsernameToken と署名を処理するためにサービスを構成するときは、次のように設定します。
しかし、どのアルゴリズムを許可し、メッセージのどの部分に署名する必要があるかというポリシーを作成するにはどうすればよいでしょうか?
asp.net - implementing Ws-security within WCF proxy
I have imported an axis based wsdl into a VS 2008 project as a service reference.
I need to be able to pass security details such as username/password and nonce values to call the axis based service.
I have looked into doing it for wse, which i understand the world hates (no issues there)
I have very little experience of WCF, but have worked how to physically call the endpoint now, thanks to SO, but have no idea how to set up the SoapHeaders as the schema below shows:
Any help much appreciated
Thanks, Mark
php - php5 で ws-security 1.1 を実装する方法
PHP5 で Soap を使用して Web サービスを呼び出そうとしています。このためには、WS-Security 1.1 を使用する必要があります。
(Java および .NET では、これはすべて自動的に生成されます。)
PHP でセキュリティ ヘッダーを簡単に生成できるフレームワークはありますか? または、ヘッダー全体を自分で追加する必要がありますか?
WS-Security 1.1 の仕様: http://oasis-open.org/committees/download.php/16790/wss-1.1-spec-os-SOAPMessageSecurity.pdf
wcf - メッセージ保護クライアント ポリシーで username_token を使用して、WCF クライアントが Java WS へのメッセージを暗号化する
メッセージ保護クライアント ポリシーで username_token を使用する Java WS を使用する WCF クライアント APP を作成しようとしています。サーバーにインストールされた秘密鍵があり、公開証明書ファイルが JKS キーストア ファイルからエクスポートされました。個人証明書の下の MMC を介して証明書ストアに公開キーをインストールしました。
メッセージを暗号化し、ユーザー名をペイロードの一部として渡すバインディングを作成しようとしています。私は約1日間、さまざまな構成を調査して試してきました。msdn フォーラムで同様の状況を見つけました。
http://social.msdn.microsoft.com/Forums/en/wcf/thread/ce4b1bf5-8357-4e15-beb7-2e71b27d7415
これは、app.config で使用している構成です。
そして、これは私が使用しているクライアント コードです。ここでクライアント証明書を設定しています。
これは私が得る .NET クライアント エラーです: エラー ログ: 無効なセキュリティ情報。
Java WS 側で、ログをトレースします。
SEVERE: 暗号化は有効になっていますが、リクエストに暗号化されたキーがありません。
SOAP ヘッダーとペイロードを追跡し、暗号化されたキーがそこにないことを確認しました。
他のバインディングもいくつか試しましたが、成功しませんでした:
あなたの助けは大いに感謝されます! ありがとう!
update2:
詳細については、さらに先に進むことができましたが、葉巻はまだありません:(
app.config バインディング セクションの authenticationMode を UserNameForCertificate に変更し、textMessageEncoding を指定して Soap1.1 を使用するようにしました。
DNSエントリの不一致が原因で発生するいくつかの証明書の警告を回避するために、エンドポイントエントリを変更してIDを含めました。
クライアント コード ServiceCertificate で指定
SOAP をトレースすると、暗号化されたメッセージが表示されます。
ペイロード:
ただし、JAVA WS 側では、次のエラー メッセージが表示されます。
org.apache.cxf.binding.soap.SoapFault: 認証の実行中にユーザー名トークンが見つかりませんでした。
また、JAVA Ws が使用する仕様では、メッセージを暗号化し、ペイロードの一部としてユーザー名を渡すことを想定しています。
ユーザー名も確実に渡されるようにする方法について何か提案はありますか? 上記のクライアント コードでは、UserName を設定しています。
python - ZSI、PythonのSOAPリクエストにwsse:Security、UsernameTokenヘッダーを追加するにはどうすればよいですか?
wsse:Security、UsernameTokenヘッダーをZSI、PythonのSOAPリクエストに追加する方法はありますか?ウェブで検索しましたが、答えが見つかりませんでした。
c# - WS-SecurityUsernameTokenPasswordDigest認証スキームを使用してAxis2Webサービスを使用するWCFクライアントでエラーが発生しました
私は、JavaベースのAxis2 Webサービスに接続しているWCFクライアントを持っています(私の制御外)。WS-Securityが適用されようとしているので、.NETクライアントを修正する必要があります。しかし、私は正しい認証を提供するのに苦労しています。WSE 3.0を使用すると簡単になる可能性があることは承知していますが、廃止されたテクノロジに戻らないようにしたいと思います。
同様の問題(未解決)には、this、this、thisが含まれます。
SOAPメッセージは次のようになります。
しかし、私のものは次のようになります。
私のクライアントは次のようになります。PS必要なSecurityHeaderTypeパラメーターに注意してください。それは何ですか?
現在のバインディングは次のとおりです。
カスタムバインディングも試しましたが、同様のエラーが発生しました。
そしてエンドポイント(アドレスは明らかに変更されました...):
返されるカスタム障害は次のとおりです。
カスタムヘッダー、トークン、バインディングについてたくさん読んだことがありますが、私の脳は完全に混乱しています。誰かが正しい形式でメッセージを送信するためのステップバイステップのプロセスを提案できますか?
これは、カスタムトークンを使用するWCFの前進のように見えますが、必要に応じてダイジェストとナンスをどのように適用する必要がありますか?
どんな助けでも歓迎します。
アップデート
私はいくつかの限られた成功を収めてきました。Microsoft.Web.Services3ライブラリを使用して、正しいダイジェストでUsernameTokenを作成しました。次に、独自のカスタム動作を作成し、BeforeSendRequestメソッドで次の手順を実行してヘッダーを挿入しました。
私はそのような振る舞いを追加します:
これで、ヘッダーが横切っているのがわかります。
しかし、エラーが発生します:
パスワードノードにType属性がないようです。
ただし、セキュリティトレースとロギングの設定が、これらのノードの属性とコンテンツを完全に削除しているかどうかはわかりません。診断ログでlogKnownPii設定を使用しようとしましたが、セキュリティ情報が不明瞭なままです。そのアイデアについて何かアイデアはありますか?
esb - ws-securityを使用してcxf-seでユーザー名の原則にアクセスするには?
CXF-BC と CXF-SE の組み合わせで Ws-Security が動作するようになりました。SE の SOAP ヘッダーからユーザー名にアクセスして、操作を呼び出しているユーザーの権限と所有権を確認しようとしていますが、それを行う方法はないようです。メッセージが BC から SE に渡されると、SOAP 本体を取得して JBI メッセージでラップするだけであることがわかっています。JBIメッセージにsoapヘッダーを詰め込む方法はありますか、またはBCが受信したSOAPメッセージを真に転送するようにします。BC と SE で JBIwrapper を無効にしようとしましたが、メッセージは SOAP として送信されますが、元の msg san ヘッダーの本文のみが送信されます。
JAXWS では比較的簡単に実行できたのに、なぜこれを BC/SE で実行するのがそれほど難しく複雑なのか、私にはわかりません。
ありがとう