0

Rampart が独自の STS サービスによって生成された SAML トークンを見つけられない理由を知っている人はいますか?

Rampart 1.6.2 を使用して Tomcat 7.0.28 に Axis2 1.6.2 を展開しています。Rampart STS サービスを使用して、デフォルトの SAML トークンを取得します。クライアントが取得したトークンは有効です。(OpenSAML を使用して、署名、SAML プロファイル、および XML を検証しました。)

ただし、トークンを生成したのと同じ Axis2/Rampart デプロイメントで実行される Web サービス要求にこのトークンを含めると、Rampart は「SAML Token missing in request」(RampartEngine.process() によって発行) を返します。NetKernel と OpenSAML で個別の実装を使用すると、同じリクエストで SAML トークンにアクセスして検証するのに問題はありません。この問題は、私が最初にこのタスクを実行しようとした Axis2/Rampart 1.5.1 から発生しています。

Rampart が独自の SAML トークンを拒否する理由を知っている人はいますか? Rampart に独自の SAML トークンを受け入れさせる方法を見つけましたか?

(私はこの問題に 1 年以上断続的に取り組んできました。あきらめて、Netkernel と OpenSaml を使用し、すべてを自分で行うかもしれません。多くの SOAP ヘルプを失いましたが、少なくとも SAML トークンを処理できます。 ... OpenSAML の多くの助けを借りて. Axis2/Rampart が機能することを望みます!)

問題に対する部分的な答えがあるかもしれません。ソースコードをたどると、署名されていないSAMLトークンのみをチェックするバリデーターの行に「SAMLトークンがありません」を追跡することができました。SAML トークンは署名する必要があります。これがエラーの原因だと思いますが、テスト用の城壁モジュールをビルドできません!

ANSWER 私は最終的にプロジェクトを構築し、上記の仮定をテストすることができ、実際に問題を解決しました. 署名済みトークンと未署名トークンの両方に対応するようにコードを変更しました。Rampart に JIRA の問題とその解決策を提出し、彼らが対処してくれることを願っています。その間、自分のサービスに対処するために、rampart-core-*.jar のローカル バージョンを作成しました。

4

2 に答える 2

0

特に SAML に関して、Rampart にこれほど多くのバグがあるとは想像できませんでした。彼らが公開するすべてのサンプルが機能するわけではありません。sample5 では、指定したコードを変更するだけでなく、拇印に関する名前空間のエラーのために、rampart-trust モジュール (SAMLUtils.class) も変更する必要がありました。しかし、ついにそれが機能します。ご投稿ありがとうございます。:)

于 2014-01-19T12:01:01.930 に答える
0

上記の回答は正しいものであり、Rampart によって組み込まれています。次のリリースにあるはずです (1.6.3 だと思います)。

于 2013-08-14T17:14:32.707 に答える