J2EEAgentTrouble_ja

J2EE エージェント全般に関するトラブルシューティングガイド

原文:2009年1月20日時点の J2EEAgentTrouble

このページおよびリンク先のページでは、概ね、原文の内容をそのまま訳しつつ、一部、原文の内容が古い(手順例で使用しているビルドが古いなど)場合などは、適宜最新の情報に書き直しているものもあります。逆に、原文が新しく更新されていても、それに完全に追従できていない場合もあります。
なお、このページおよびリンク先のページを含めて、docs.sun.com 上で掲載されているコンテンツ以外は、公式のマニュアルではありませんので、あくまでも参考情報としてご覧になってください。

Sun OpenSSO Enterprise 8.0 の公式のマニュアルは、docs.sun.com の以下のサイトでご覧になれます。
英語版:http://docs.sun.com/app/docs/coll/1767.1
日本語版:http://docs.sun.com/app/docs/coll/1905.1 (注:日本語に訳されているのはリリースノートのみです。)

問題と解決方法の一覧および他のFAQページへのリンク

他のFAQページへのリンク:

ホスト名には FQDN 形式を使用する。localhost や、127.0.0.0 のような IP アドレス形式を用いてはいけない

解決方法:
Windows マシンをお使いの方は(もしくは、Unix をお使いの方でも)、以下の手順が参考になると思います。

localhost の別名を作成する:

開発者として Windows を使用していて、アプリケーションサーバーにアプリケーションを配備して使用する場合、普段は http://localhost:8080 という形でアクセスしていることが多いかもしれませんが、OpenSSO とポリシーエージェントを使用する際には、インストールするマシンのホスト名について、FQDN 形式での指定が必要となります。
"localhost"や、"test1" といったシンプルな名前を使うことはできません。
そこで解決策としては、以下に示すような手順で、localhost の別名を FQDN 形式で作成します。
(ここでは、Windows 環境を例に示します。)

--C:\WINDOWS\system32\drivers\etc に移動し、テキストエディタで hosts ファイルを開きます。

--hosts ファイルには、"127.0.0.1 localhost" と書かれた行があります。
この行を修正して、localhost に対する別名を FQDN 形式で定義します。
例えば、my.test.domain.com という名前を別名として定義したい場合には、
"127.0.0.1 localhost my.test.domain.com" のように修正します。

OpenSSO やエージェントのインストールでは、ホスト名が参照されるので、上記の手順は、それらをインストールする前に行ってください。もし、すでに OpenSSO をインストールしてしまっている場合は、上記の手順を行ったあとで、OpenSSO をアンインストール(配備解除)し、再度配備し直してください。

この手順後、ローカルで動いているアプリケーションサーバー上で実行されるアプリケーションにアクセスすると、 URL は、http://localhost:8080/myapplication ではなく、http://my.test.domain.com:8080/myapplication といった風になります。

OpenSSO にログイン後も、リダイレクトエラーやループ(ブラウザのリダイレクトエラーメッセージが表示される)が発生し、保護対象のアプリケーションにアクセスできずに、OpenSSO コンソールのユーザー編集ページが表示される

この問題は常に発生するわけではなく、ランダムに偶発的に発生します。また、この問題は、ポリシーエージェント 3.0 以降と OpenSSO 8 以降の両方を組み合わせてお使いの場合は起こりません。
従って、以下に示す解決方法は、どちらか一方でも古いバージョンをお使いの方に向けたものとなります。

問題:
エージェントと OpenSSO サーバーを同じマシンで動かしていて、エージェントで保護されているアプリケーションが配備されている状況で、保護されているページにアクセスすると、OpenSSO のログインページにリダイレクトされますが、そこで適切なユーザー名とパスワードでログインしても、保護されているページが表示されずに、エラーが表示されるか(ブラウザによっては、リダイレクトのエラーが発生したことを示すメッセージを表示します。)、OpenSSO コンソールのユーザーの編集ページが表示されます。
ここで、ブラウザの URL ボックスに、OpenSSO コンソールの URL (http://hostname:port/opensso) を入力してアクセスすると、ユーザーの編集ページへとリダイレクトされ、すでに正常にログインできていることが確認できますが、何らかの理由により、エージェントで保護されているページにリダイレクトされません。

解決方法:

  • Access Manager をお使いの場合:
    AMConfig.properties を編集して、以下のプロパティーの値を変更します。(デフォルトでは false になっています。)
    com.iplanet.am.cookie.encode=true
    

    変更後、Access Manager を配備しているサーバーを再起動します。

  • OpenSSO をお使いの場合:
  1. amAdmin で、コンソールにログインし、「設定」タブをクリックします。
  2. 次に、「サーバーおよびサイト」をクリックし、サーバーリストから変更したいサーバーの URL をクリックします。
  3. 次に、「セキュリティ」タブをクリックし、「継承設定値」をクリックします。
  4. サーバープロパティー継承設定ページで一覧から、「Cookie 値のエンコード」のチェックボックスをオフにして、保存します。
  5. 保存したら、「サーバープロファイルへ戻る」をクリックし、「セキュリティ」タブへと戻ります。
  6. Cookie のセクションで、「Cookie 値のエンコード」の横に「はい」というメッセージとともにチェックボックスが表示されているので、これを有効にして、「保存」をクリックします。
    これにより、com.iplanet.am.cookie.encode の値が true となります。

別の解決方法:
上記の方法とは別に、エージェント側の設定を変更することもできます。
AMAgent.properties ファイルで次のようにプロパティの値を変更します。

com.sun.identity.agents.config.sso.decode=false
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Sign up or Log in to add a comment or watch this page.


The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact