問題タブ [wss4j]

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 に答える
4794 参照

cxf - SoapFault MustUnderstand ヘッダー、CXF WSS4J 暗号プロパティ ファイルが提供されていない

SOAP サーバーは、ヘッダーが 1 に設定されている必要があることを理解する必要がある SOAP メッセージを受信して​​います。

ヘッダーを理解する必要があります

ヘッダーを理解するために、wss4j インターセプターを使用しています。

私のsign.propertiesファイルは次のとおりです。

私のエンドポイントxml:

ただし、「org.apache.wss4j.common.ext.WSSecurityException: 署名を検証するための暗号化プロパティ ファイルが提供されていません」というエラーが表示されます。

署名を検証するための暗号プロパティ ファイルが提供されていません

signaturePropFile を正しくアドレス指定しないのと同じくらい簡単なことだと思いますが、完全なファイルパスを指定しようとしましたが、同じ結果が返されました。

どんな助けでも大歓迎です。

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

saml - SAML 1.1 トークン ジェネレーターと Java を使用した自己署名

要件として、SAML トークンを使用して 2 つのエンタープライズ アプリケーションを構成する必要があります。以下にリストされている制約により、トークン生成とトークン署名のための個々のサービスを作成する必要があります。

制約は次のとおりです。

  1. IdP (ID プロバイダー) は利用できません。関連するメタデータ ファイルがありません。
  2. SAML 1.1 バージョンを使用する必要がある
  3. SAML レスポンスに自己署名する必要があります。

POC の一部として、署名のために署名サービスに転送するサービスを作成することにより、2.0 バージョンを使用して SAML トークンを生成できます。Windows keytool コマンドを使用して証明書\キーストアを生成することで署名できます。

OpenSAML ライブラリを使用した SAML 1.1 実装では、SAML 要求メッセージを適切な形式で生成できません。SAML Token Profile Generatorを備えた WSS4J のような追加のライブラリを探しました。また、アプリケーションのホスティングに使用されるIBM Websphere Application サーバー ( SAML Token Generator ) に関する構成もいくつかあります。上記のオプションを使用してソリューションを実装することはできませんでした。

質問:

  1. IdP サーバーを使用せずに SAML 実装を行うことは可能ですか?
  2. IBM Websphere Application Server(WAS) を IdP サーバーとして使用できますか?
  3. STS トークンの生成に WAS を利用できますか?
  4. SAML 1.1 バージョンの SAML トークンを簡単に生成および署名するのに役立つ OpenSAML、WSS4J などのライブラリはありますか?
0 投票する
0 に答える
1242 参照

java - CXF WSS4JOutInterceptor デジタル署名と拇印

CXF を使用して Web サービスを利用しています

<SignedInfo>これには、自分の秘密鍵でノードに署名することと、ノードを暗号化することが含まれ<soap:Body>ます。

SOAP メッセージに署名するためにWSS4JOutInterceptorを使用しています。

<SignedInfo>ヘッダー ノードに署名するために WSS4J を指定する方法がわかりません。

また、ヘッダーにカスタム拇印を入れたいと思っています。サービスプロバイダーが使用する必要がある公開鍵を識別するために使用されると思います。

以下は、コメントで使用した Java コードを使用して現在生成されている SOAP ヘッダーです。

**また、SOAP エンベロープからヘッダーを取得し、拇印の値を自分で更新できるように、メッセージを傍受しようとしました。しかし、 Interceptor で Signature 値を取得できません。

**

上記のプログラムの出力は

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

tomcat - リソース パス [cxf-ehcache.xml] が無効です

メッセージレベルの暗号化を実装しようとしています。具体的には、SOAP メッセージの本文が暗号化されます。クライアントから Web サービスへのトラフィックを暗号化しようとしています。

クライアントは暗号化されたデータを正常に送信します。

使用しています: Apache Tomcat 8 および Apache CXF 2.6.13

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

cxf - CXF WS-Security - X509IssuerSerial 検証が失敗する

CXF WS-Security と署名検証の作業中に問題が発生しました。WSS4JInInterceptor要素の署名を検証するためにサーバー側で使用しますBody
-キー識別子タイプとしてBinarySecurityToken( ) を使用すると、すべて正常に動作します。 - ( ) をキー識別子として使用すると、サーバー側での署名検証に失敗します。 これはサーバー側の設定です:DirectReference
X509IssuerSerialIssuerSerial

この SOAPHeader で SOAPEnvelope を (クライアント側から) 送信すると:

SOAPFault を取得します。

デバッグ ログ出力では、あまり情報が得られませんでした。しかし、デバッグ中に、org.apache.wss4j.dom.processor.SignatureProcessorこの時点で失敗することがわかりました。

wss4j-ws-security-dom-2.1.0 で例外をスローするのは 197 行目です。これは、証明書と publicKey が null であることを意味します。これにより、最初から十分に考えていなかったという結論に至りました。署名を検証できる証明書がないことに気づきませんでした。また、私の結論は、X509IssuerSerial の場合、受信側 (この場合はサーバー) 側に証明書がある場合にのみ署名を検証できるということです。
誰かがより良い説明をしていますか?

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

java - 対称鍵を使用して、WSS4J を使用して SOAP を暗号化および署名する方法

Axis 1.4サードパーティ システム (Web サービス プロデューサー) にアクセスする Web サービス クライアント アプリケーションを構築する必要があります。

サードパーティのシステムに有効なリクエストを送信するには、送信する前に暗号化して署名する必要ありSOAP requestます。

wss4j 1.5このリンクの手順に従って、このタスクを実行 するために利用します: Calling an OWSM protected service with Axis 1.4 and WSS4J

私が理解していること:

1-暗号化するSOAPには、サードパーティの公開鍵を使用する必要があり、サードパーティは独自の秘密鍵を使用して暗号化を解除します。

2-署名するSOAPには、自分の秘密鍵を使用する必要があり、共有する必要がある公開鍵を使用して署名を検証する必要があります。

私はそれをしましたが、エラーが発生しています

サードパーティ側から。サードパーティのチームに確認した後、彼らは次のように述べました。

" 「対称キーを使用したユーザー名認証」を使用するため、信頼ストアでクライアント証明書を維持しません。署名と暗号化の両方に使用される単一の共有キーがあります。したがって、証明書を使用して署名と暗号化を行う必要があります。 "

この応答は私には意味がありません。を暗号化するには、サード パーティの証明書 (つまり、公開キー) を使用する必要があることを理解していSOAP Requestます。

しかし、同じ公開鍵 (彼らが共有する唯一の証明書) を使用して署名するにはSOAP Requestどうすればよいでしょうか?

そのためには秘密鍵が必要だと思います。

そのために彼らの秘密鍵が必要ですか? 明確化は役に立ちます。