2012-04-05 12 views
1

私は現在Java EE Webエージェントを使用して私の小さなwebappを保護するためにopenAMを使用しています。誰かがアプリケーションにアクセスしようとすると、openAMインスタンスにリダイレクトされ、ログインしてアプリケーションに移動します。シンプルなもの。openSSO/openAMシステムからユーザ名を取得するには?

私が望むのは、openAMがWebアプリケーションにうまく使用されたユーザー名を渡すことです。このために、「セッション属性」を使用する必要があると私は理解しています。管理者は、Java EE Webエージェントにアクセスし、「アプリケーション」タブを開いて「セッション属性の処理」を表示します。私は、HTTP_COOKIEがフェッチするための選択肢であることを知っています。

1)正しく設定されていれば、ユーザー名がクッキーの平文として見えるはずですか? 2)ユーザー名を取得するためにセッションマッピングに入力する値は何ですか?このデータストアのどの値がこれに対応しているかはどのようにして調べることができますか?

おかげ

答えて

2

1)はい、エージェントは平文のクッキーを作成します(ユーザーが悪質なものを送信する場合、それは、しかし、(よりよい解決策として考えられている属性に渡すことHTTP_HEADERメソッドを使用して、それらだけで罰金)を再作成しますクライアント側には格納されていないため)。

2)セッション属性処理は、実際にセッションに何かを格納している場合にのみ機能します。そのためには、「すべてのコア設定の認証」の「セッション属性へのユーザー属性マッピング」機能を使用するか、派生値を保存するカスタムモジュールを作成します。それ以外の場合は、ユーザーのuidを取得するだけの場合は、Profile Attributes Processing(uidキーのHTTP_UIDの値を使用すると、アプリケーションにHTTP_UIDのCookie /ヘッダーが表示されます)を使用します。

+0

感謝を!私がopenAMのディストリビューションに含まれているデータストアを使用しただけの場合は、どうやってユーザーIDのキーがわかるのでしょうか? – Goren

+0

これは、あなたが持っているデータストアの種類によって異なります。通常、LDAPを使用するときは、ldapsearchを使用してエントリを検索し、ネーミング属性を "uid"にすることができます。一方、Active Directoryを使用する場合、ネーミング属性は "cn"ですが、基本的には独自のデータストアにアクセスし、ユーザーIDを取得するために参照する必要があります。 –

4

私たちのエージェントではHTTP_HEADERを使用しています。だからすでにエージェントを使用している場合(あなたのように聞こえる)、次にあなたのために働くはずです。 OpenAMのWebコンソールで:

    • アクセスコントロール>トップレベル・レルム>エージェント>ウェブ/ J2EE /その他>エージェントをクリックしてください
    • [アプリケーション]タブ> [プロファイルは処理セクション>プロファイル属性は、フェッチモードの属性
    • キーマップ::[UID] ...地図相当値:uidの
    • [Add]をクリックして "HTTP_HEADER" を選択
    • プロファイル属性マッピングをクリックします。あなたがそれを追加したら[uid] = uidのように見えるはずです。バックエンド認証システムに属性を一致させるために必要なマッピングを追加します。我々のものはldapです。

    ウェブアプリケーションで、HTTPヘッダー要素を取得してトークンを探します。次のようになります。AQIC5wM2LY4RfckcedfzxGrgVYevbKR-SgBkuemF4Cmm5Qg。 AAJTSQABMDE。

    次に、OpenAM RESTインターフェイスを使用して、トークンに関連付けられているユーザー名、パスワード、cnなどの属性を検証して取得できます。すべての属性を取得するには、URLは次のようになります:

    http://<OpenAM_Host>:<Port>/<deploy_uri>/identity/attributes?subjectid=AQIC5wM2LY4RfckcedfzxGrgVYevbKR-SgBkuemF4Cmm5Qg.*AAJTSQABMDE.* 
    

    あなたが指定することもできますが、このようにしたい属性:

    http://<OpenAM_Host>:<Port>/<deploy_uri>/identity/attributes?subjectid=AQIC5wM2LY4RfckcedfzxGrgVYevbKR-SgBkuemF4Cmm5Qg.*AAJTSQABMDE.*&attributenames=uid&attributenames=userpassword 
    

    参考文献:
    https://wikis.forgerock.org/confluence/display/openam/Use+OpenAM+RESTful+Services
    http://openam.forgerock.org/openam-documentation/openam-doc-source/doc/dev-guide/index/chap-rest.html

  • 関連する問題