1

現在、openAM を使用して、Java EE Web エージェントを使用して小さな Web アプリケーションを保護しています。誰かがアプリにアクセスしようとすると、openAM インスタンスにリダイレクトされ、ログインしてアプリに移動します。シンプルなもの。

私が望むのは、openAM が正常に使用されたユーザー名を Web アプリに渡すことです。これには「セッション属性」を使用する必要があると理解しています。管理画面で Java EE Web エージェントに移動し、[アプリケーション] タブを開いて [セッション属性の処理] を確認します。HTTP_COOKIE が取得の選択肢であることがわかりました。

1) ユーザー名が適切に設定されていれば、Cookie のプレーンテキストとして表示されると期待する必要がありますか? 2) ユーザー名を取得するには、セッション マッピングにどのような値を入力すればよいですか? これに対応するデータストアの値を見つけるにはどうすればよいですか?

ありがとう

4

2 に答える 2

5

エージェントで HTTP_HEADER を使用しています。したがって、すでにエージェントを使用している場合 (そのように聞こえます)、次の手順でうまくいくはずです。OpenAM Web コンソールで:

  • アクセス制御 > 最上位レルム > エージェント > Web / J2EE / etc. > エージェントをクリック
  • [アプリケーション] タブ > [プロファイル属性処理] セクション > [プロファイル属性フェッチ モード]:
  • 「HTTP_HEADER」の選択をクリックします
  • プロファイル属性のマッピング:
  • マップ キー: [uid] ... 対応するマップ値: uid
  • [追加] をクリックします。追加すると [uid]=uid のようになります。バックエンド認証システムに属性を一致させるために必要なその他のマッピングを追加します。私たちのものはldapです。

Web アプリケーションで、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

于 2014-01-30T23:42:13.303 に答える