2010-11-27 12 views
2

SAML、SSOは私のプロジェクトでの新しい学習です。正しいツールやAPIを見つけるための十分な時間がありません。あなたにお手伝いをお願いします。SAML SSOクライアント、テストシミュレータSAMLプロバイダ/サーバ

SAMLアサーションを送信し、SAMLプロバイダ/サーバからSAML応答を受信できる必要があるSAMLクライアント(Java上)を実装する必要があります。 JavaでSAMLクライアントを作成するために使用するJava APIはどれですか?

お客様にはSAMLリクエストを受信したSAMLレスポンダ/サーバが既にあり、SAMLレスポンスにはユーザプロファイルなどの情報が送信されます。しかし、私たちは、テストシミュレータSAMLレスポンダ/サーバを書く必要があります。私はApache & Tomcatサーバーを使用しました。 このテストシミュレータSAMLレスポンダ/サーバを実装するために使用するサーバ/ APIにはどのようなものがありますか?

答えて

1

私はあまりにも多くのSAML要求タイプを持っていないので、私はクライアントサイドで簡単なHTTPリクエスト/レスポンスをサーバー側で使用しています。したがって、複雑なWebサービスとSAML APIをサーバー側で使用しない方がよいでしょう。

7

私たちはOpenSAMLを使用しています。これは非常に柔軟で、学習/使用が難しくありません。私はサービスプロバイダー(クライアントカスタマイズバージョンを含む)を作成し、請求されたSAMLResponse XMLと迷惑なSAMLResponse XMLの両方を処理し、AuthnRequestsをIDプロバイダに送信し、IdP AttributeQueryサービスを呼び出し、IDプロバイダSAMLResponse XML(テスト用)をシミュレートしました。

アイデンティティプロバイダの部分を書いているとあなたの説明から思いますか?単純な迷惑なSAMLResponse XMLをやっているだけなら、おそらくOpenSAMLはあなたにとって過度のものです。あなたのXMLメッセージがほとんど同じで、要求から要求に変化するコンテンツ要素が少数であれば、単純な文字列テンプレートを使用して、少数の変更要素を記入するだけで、特別なSAMLライブラリは不要です。

あなたは私を混乱させるんと言う一つのこと:

使用されている場合は、当社の顧客はすでにSAML要求を受信し、ユーザとのSAML応答を送信するSAMLレスポンダー/ Serverは

プロファイルましたこれはSAML SSOであり、ブラウザ要求を介してSAMLResponse XMLを受け取り、ユーザのブラウザにコンテンツを表示することによって応答します。彼らはあなたにユーザープロフィールを返信しません。実験する時間がないかもしれませんが、ちょっとした時間をかけてSAMLドキュメントを読むことをお勧めします。ちょうどSAMLOverviewと読んでも、ちょっとしたアースが必要です。

+0

Tnx最後に私はいくつかのヒントを得ました。はい! SAMLのリクエストとレスポンスはほとんどありません。今はOpenSAMLを使ってJAVAクライアントを実行し、HTTPS(Apache + Tomcatの使用)でSOAPを送信しています。あなたは正解IDプロバイダを書く必要があります。顧客はすでにそれを持っています。今私は、SAML要求を処理し、IDプロバイダからSAML応答を送信する必要があります。私はxmlとしてMIMEタイプを設定し、SOAPエンベロープ(SAMLのStringテンプレートであるかもしれません)を使ってSAMLでHTTPS応答を返すことができれば、私のシミュレータのアイデンティティサーバーで十分だと思います。それ以上の提案。 –

+0

あなたが実装しようとしているものを決定するのに本当に役立つのは、次のような記述です。「私は、HTTP Postバインディングを使ってSAML WebブラウザSSOプロファイルのIDプロバイダを実装しようとしています。あなたのSOAPへの参照は、それがあなたがやっていることではないことを示しています。 SAMLプロファイルとバインディングへの参照を使用してシナリオを記述できますか?あなたのクライアントは、AuthnRequestのHTTP Artifactバインディングを使用していますか? – JST

+0

ありがとうございます!ユーザーはログイン資格情報でJava-Swingクライアントを実行し、IDプロバイダにアクセスします。これはSSOベースのログインです。クライアントブラウザ(authentn + Authoztnが必要)はhttps:// /login.jsp?artifact= のようなHTTPアーティファクトを使用します。 Webサーバーは成果物を解決し、アイデンティティプロバイダの場所を取得し、SAML要求を送信し、上記のJava-Swingクライアントを使用して行われたログインに基づいて認可の詳細を含むSAML応答を取得します。これで、HTTPクエリ文字列にアーティファクトを渡すことで、Webサーバー上で(ログインせずに)HTTPS操作を実行できます。 –

0

OpenSAMLは、オープンソースのセットです。&セキュリティアサーションマークアップ言語(SAML)で作業する開発者をサポートするためのJavaライブラリです。 を参照してくださいopenSAML API

関連する問題