問題タブ [wsse]
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# - C# で wsse Java Spring Security Web サービスを使用する
要約すると、C# を使用して javaspring wsse Web サービスを使用しようとしています。これは、私が送信する必要がある Web サービス ヘッダーがどのように見えるか..
wse3.0 カスタム ポリシー アサーションを使用してみましたが、うまくいきませんでした。私は VS 2008 を使用しています。この Web サービスを使用するときに問題が発生しない基本的なコンソール アプリケーションを使用しています。これは、サービス参照を追加するときに自動的に更新される私の app.config です。
サービスを呼び出すための私のクライアント コードは次のとおりです。
ここからカスタムバインディングの例を取得しましたCreating Headers (wsse) Section of WCF Client Programatically in C#。エンドポイントは http であり、タイムスタンプを送信できないため、使用されます。
エラーが発生します:
「CustomBinding」。http://tempuri.org/ '「ws」のバインディング。http://openclinica.org/ws/studyEventDefinition/v1 ' コントラクトは、トランスポート レベルの整合性と機密性を必要とする認証モードで構成されています。ただし、トランスポートは完全性と機密性を提供できません。
とにかくぶっきらぼうでしたらごめんなさい。これは、Java Spring Web サービスを使用しようとする最初の試みです。必要に応じて、さらに情報を提供できます。.cs ファイルでプログラムを使用して実行したいと思います。ご意見/ご協力ありがとうございます。
php - SoapClient を使用して PHP で WebServices API の WSSE Auth SOAP 呼び出しを作成する
ベンダー API から次のものがあります。

PHPを使用してSoap呼び出しを作成する必要があります。どうすればそれを行うことができますか?これまでのところ私はこれを持っています:しかし、それは動作しません:
助けてください
soapui - SoapUI WS-Security トークン
SoapUI で WS-Security を使用する Web サービスに対して呼び出しを行いたいと考えています。SoapUI のチュートリアルでは、これまでうまくいきませんでした。アドバイスをいただければ幸いです。
ruby - SOAP で WSSE を使用して、Ruby で Base 64 でエンコードされた公開鍵を送信する
Base 64 でエンコードされた WSSE DSA 公開鍵を送信しようとしています。Open SSL ライブラリを使用して公開鍵を証明書ファイルから分離しようとしましたが、OpenSSL は抽出する代わりに証明書ファイル全体を使用しているようです。公開鍵だけ。
api - Symfony2 で REST API を使用してトークン クライアント側を設定する
1 つのサーバー (S1) で symfony2 を使用して Rest API を作成しました。
1 つのサーバー (S2) で symfony2 を使用してアプリケーションを作成しました。
S1 : うまくいきました。指定されたURLに応じて、ユーザー情報のjson応答を返します。
S2 : うまくいきました。curl で URL を尋ねます。重要なユーザー情報を取得するには、http ヘッダーで wsse を使用します。
S1 データベースを使用して (S2 から) ユーザーにログインしたい。しかし、私がS2にいるとき、ユーザーの情報を含むjson応答の後、何をする必要があるのか、どのように行うのかわかりません...
アプリケーション側: - Symfony2
API 側: - Symfony2 - FOSUserBundle - FOSRestBundle - JMS
Rest APIを作るのは初めてなので、仕組みがよくわからないかもしれません。
前もって感謝します。
編集:詳細については。
- 1 : ユーザー 1 がログインフォームを使用して送信します。
- 2 : S2 x-wsse パラメーター (Nonce / Timestamp / Username / Password...) を使用して http ヘッダーを作成します。
- 3 : S2 はこのヘッダーを curl で S1 に送信します
- 4 : S1 がデータを取得し、ヘッダーに適切な情報が含まれている場合は、ユーザーの情報を (json で) 送り返すか、何らかのアクションを実行します
- 5 : S2 は、S1 からユーザーの jsons 情報を取得します。
- 6 : ユーザーに思い通りのページを表示できる 1
今私の問題は、新しいページに対して同じことをする必要があるということですが、ユーザーにパスワードとユーザー名をもう一度尋ねたくないのは、彼がログインしているためです.
それがより明確であることを願っています。
EDIT 2:私の問題は一文で再開します。
Symfony2 では、wsse 認証を使用して、ユーザーのトークンを取得し、API での認証後にクライアント側に送信するにはどうすればよいですか。
:p
javascript - クロスドメイン WSSE REST Web サービスに対して jQuery GET 要求を実行する方法
CORSの問題で立ち往生しています。WSSE を使用して保護する REST Web サービスを開発しました。Web サービスは、jQuery 要求を介してハイブリッド モバイル アプリケーションから呼び出す必要があります。
jquery 経由で Web サービス メソッドを呼び出そうとしていますが、常に 405 応答が返されます。
これは、仮想ホストの構成です。
これは jQuery クライアントです。
Firebug で示されているように、これらは応答と要求です。
私が間違っていることは何ですか?
私は多くの議論を読みましたが、運がありませんでした。例えば:
c# - C# wsse security password_digest を SHA-1 および Base64 でエンコードすると、サーバーの password_digest と一致しない
SOAP 要求のヘッダーで wsse セキュリティを必要とし、作成済み、ノンス、およびパスワード ダイジェストで構成される Web サービスを使用しています。Web サーバーはこれらの値を使用して、本物の要求を承認します。
パスワード ダイジェストは、Web サービスの API に記載されている次のアルゴリズムを使用して作成されます。
パスワード ダイジェスト OASIS Usertoken プロファイルは、XML For Shipping API で送信された一意の Password_Digest 文字列を計算する式を定義および記述します。この式で使用されるパスワード情報は、プレーン テキスト パスワードの SHA-1 ハッシュの Base 64 エンコーディングです。
Password_Digest 値を作成するために使用する式は次のとおりです。
Password_Digest = Base64(SHA-1(ノンス + 作成済み + Base64(SHA-1(パスワード))))
上記のアルゴリズムの + 記号は、次の 3 つの文字列の文字列連結を表していることに注意してください。xml 要求からのノンス、xml 要求からの作成、およびパスワードの SHA-1 ダイジェストの Base64 エンコーディング。
正常に承認されたことが知られているサンプル XML 要求を使用しています。私が直面している問題は、サンプルで提供されている値を使用してパスワード ダイジェストを再作成しようとすると、パスワード ダイジェストの値が異なることです。
サンプル値と想定される password_digest:
Nonce : 4ETItj7Xc6+9sEDT5p2UjA==
Created : 2014-08-04T10:22:48.994Z
Password : Password2014!
Password_Digest : Ug3FRXgyAaWU8SjYHRabnAkn330=
password_digest を再作成しようとしたときに試したさまざまな方法の出力を次に示します。
方法 1
方法 2
方法 3
方法 4
サンプルに一致する password_digest を作成したメソッドはありませんでした。方法 1 ~ 3 で少なくともサンプルと同じ文字数の password_digest が作成されたので、文字列の最後のバイト数が一致するという意味でエンコーディングが部分的に正しいと仮定して正しいでしょうか?
私の質問は、提供されたサンプル値を使用して password_digest を再作成するのを手伝ってくれる人はいますか?
ws-security を使用したのはこれが初めてであり、SHA-1 と文字列のエンコード/デコードにほとんど触れていないので、助けていただければ幸いです。
ノート:
サンプルのノンス文字列は「==」で終わります。これは、何らかの方法でエンコードされていることを示しています。ナンス要素の xml スキーマは次のとおりです。
これは、ノンスがbase64にエンコードされていることを示唆しているため、メソッドを再度実行しようとしましたが、ノンスは次の行でプレーンテキストに変換されました
この結果から、API 会社がこのようなナンスを作成するとは思わないか、暗号化されているナンスについての私の仮定が間違っているか、正しくデコードしていないと思います。
ノンスの新しい値を試してみたところ、次の結果が得られました
方法 1、2
方法 3
方法 4
したがって、再び成功せず、メソッド 3 の結果はメソッド 1 および 2 とは異なります。これは、以前の nonce メソッド 1、2、および 3 で同じ結果が得られたため、予想外でした。