2011-08-10 15 views
1

私たちはJava/J2EEテクノロジ上で動作するポートレットを持っています。ユーザー認証が必要なHTTP要求を介して別のアプリケーション/システムとやり取りします。現在のソリューションは、ログインしたユーザーのユーザー名とパスワードをポータルから取得し、この情報を「HTTPClient」APIを使用してバックエンドシステムに渡し、ユーザーの認証と認可に基づいてコンテンツを取得します。SiteMinderとHTTPクライアント - ユーザログイン情報

Portalのサイトマイナーを有効にするための努力があります。 site minder enablementを使用すると、Portalはログインしたユーザーのユーザー名とパスワードを提供しなくなります。理想的な方法は、ポートレットがログイントークンまたはCookie値を渡すことができるように、バックエンドアプリケーションにもsite minderが有効になっていることです。

バックエンドアプリケーションがSiteMinderを有効にするまで、暫定アプローチを探しています。ユーザーがユーザー名とパスワードを入力できるようにする方法はありますか?ポートレットコード(HTTPクライアントを使用すると、ブラウザのアプリケーションではなく、アプリケーションのバックエンドURLにアクセスするため)のような可能性は考えられません。私が考えることのできる1つの方法は、ユーザーがポートレット内でユーザー名とパスワードを入力してJavaコードを使用してバックエンド・システムで認証するための新しい画面(UI)を開発することです。他のアイデアがあれば教えてください。

また、質問が混乱している場合は、詳細をお知らせください。

おかげ

答えて

2

SiteMinderが接続されたHTTPヘッダ内のアプリケーション(UID、電子メールアドレス、等)に動的にユーザ情報を提供することができます。この動作はSiteminder Policy Serverで設定されます。デフォルトでは、HTTPヘッダーSM_USER(またはそれに類するもの)には、認証されたユーザーのユーザー名が含まれています。

次に、リクエストからこれらのヘッダーをフェッチし、以前と同じようにバックエンドアプリケーションにフィードするようにポートレットコードを変更する必要があります。

1

ユーザの追跡にSM_USERヘッダを使用することはお勧めしません。 SM_USERには、信任状コレクターに提供されたIDが含まれ、使用される認証スキームのタイプに基づいて変更されます。

例: UserIDではなく電子メールアドレスを収集するHTMLフォームベースの認証スキームがある場合、電子メールアドレスはSM_USERヘッダーで送信されます。 X.509認証スキームの場合、証明書のSubjectDNはSM_USERヘッダーに格納されます。

SM_UNIVERSALIDヘッダーは、常にユニバーサルID属性を含むため、使用することをお勧めします。ユニバーサルID属性は、ユーザーディレクトリオブジェクトで構成されます(通常、これは「uid」に設定されています)。