Hanaki's weblog

« OpenSSO を Glassfish... | メイン | J2EE Agent 2.2 の設定手順... »

20081219 2008年 12月 19日 金曜日

ssoadm コマンドを使ってポリシーエージェント 3.0 のプロファイルを OpenSSO に設定する方法

この方法については、以前からこちらのページに載っているので、すでにご覧になっている方も多いと思いますが、 2008年5月の時点で書かれているために、製品名やコマンド名が古いままですね。 やはり、現状に即して、しかも日本語で書かれた手順書があった方が 日本のユーザーにとってはより便利だと思うので、上記の wiki ページの内容をベースにしつつ、 実際に、OpenSSO Enterprise 8.0 と Web Agent 3.0 for Webserver 7 を使って設定した結果を元に、手順をまとめてみました。

使用した環境は以下のとおりです:

  1. こちら から、OpenSSO 8.0 をダウンロードし、こちら から、Web Agent 3.0 for Webserver 7 for Solaris Sparc をダウンロードします。
  2. マシン1 上で、OpenSSO 8.0 を配備します。 (今回はエージェントの設定がメインなので、OpenSSO の設定手順は省略します。)
  3. マシン2 上で、sjsws_v70_SunOS_sparc_agent_3.zip を解凍します。
  4. web_agents/sjsws_agent/bin/ ディレクトリに移動し、 agentadmin を実行可能にします。
    
       #chmod 755 agentadmin
    
    
  5. マシン2 で、agentadmin --install を実行します。
    
    Sun Java System Web Server Config Directory :
    /var/opt/SUNWwbsvr7/https-machine2.example.com/config
    OpenSSO server URL : http://machine1.example.com:8080/opensso
    Agent URL : http://machine2.example.com:80
    Agent Profile name : WS7Agent
    Agent Profile Password file name : /export/agentpw.txt
    
    
  6. マシン2 の Web Server を再起動します。
    再起動後に、http://machine2.example.com にアクセスしてみると、
    エージェントによりプロテクトされているために、Web Server のトップぺージは表示されません。



      これで、ポリシーエージェントが機能していることは確認できました。

    次に、本稿での本題である、ssoadm コマンドを用いての エージェントの作成を行います。
  7. マシン1 で、opensso_enterprise_80.zip から、opensso/tools/ssoAdminTools.zip を抽出し、さらに ssoAdminTools.zip を解凍します。
    
    # cd /workspace
    # unzip openssoenterprise_80.zip opensso/tools/ssoAdminTools.zip 
    # cd opensso/tools
    # unzip ssoAdminTools.zip
    
    
  8. JAVA_HOME を指定して、setup コマンドを実行します。(Windows 環境では、setup.bat コマンドを実行します。)
    
    #  export JAVA_HOME=/usr/jdk/jdk1.5.0_16
    # ./setup
    Path to config files of OpenSSO server (example: /opensso): 
    Debug directory is /tmp.
    Log directory is /tmp.
    The version of this tools.zip is: Enterprise 8.0 Build 6(2008-October-31 09:07)
    The version of your server instance is: Enterprise 8.0 Build 6(2008-October-31 09:07)
    #
    
    
    最初に、OpenSSO の設定ディレクトリの場所を聞かれますので、 OpenSSO の設定を行った際に指定したディレクトリを入力します。
    残りのプロンプトに対しても適切な値を指定すると、上記のように設定が完了し、 <設定ディレクトリ>/bin の下に ssoadm などのコマンドラインツールが用意されます。
    (デフォルトでは、opensso/bin の下に置かれます。)
  9. sso コマンドのあるディレクトリに移動します。
    このディレクトリに、マシン 2 でエージェントをインストールしたときに生成された OpenSSOAgentConfiguration.properties をコピーします。
  10. OpenSSOAgentConfiguration.properties を編集し、最後に以下の行を加えます。
    
    userpassword=エージェントのパスワード(/export/agentpw.txt に書いた値)
    
    
    必要に応じて、ファイル内の他の属性の値を変更、もしくは値が入ってない箇所について値を入れます。
    そして、最終的に値を入れていない行については、削除します。
    注意:値がセットされていない行を残したままだと、次の手順で ssoadm の操作が失敗するかもしれません。(実際に、私が試した場合は、以下の行に値が入ってない状態だとエラーになりました。)
    
    com.sun.identity.agents.config.debug.level =
    com.sun.identity.agents.config.auth.connection.timeout =
    
    
  11. amadmin のパスワードを平文形式で /export/passwd.txt に書き、 root ユーザーに対してのみ read-only とします。
    
    #chmod 400 /export/passwd.txt
    
    
    そして、以下のコマンドを実行します。 
    
    # ./ssoadm create-agent -e / -b WS7Agent -t WebAgent -u amadmin -f /export/passwd.txt -D OpenSSOAgentConfiguration.properties
    
    エージェント設定が作成されました。
    #
    
    
    これで、エージェントのプロファイルが OpenSSO 上に作成されました。

    確認には、list-agents サブコマンドを用います。
    
    # ./ssoadm list-agents -e / -u amadmin -f /export/passwd.txt
    
    SecurityTokenService (id=SecurityTokenService,ou=agentonly,o=openssosp)
    wsc (id=wsc,ou=agentonly,o=openssosp)
    test2 (id=test2,ou=agentonly,o=openssosp)
    WS7Agent (id=WS7Agent,ou=agentonly,o=openssosp)
    agentAuth (id=agentAuth,ou=agentonly,o=openssosp)
    test3 (id=test3,ou=agentonly,o=openssosp)
    wsp (id=wsp,ou=agentonly,o=openssosp)
    test (id=test,ou=agentonly,o=openssosp)
    
    #
    
    
    このように WS7Agent が作成されていることが確認できます。
    また、amadmin で、http://machine1.example.com:8080/opensso にログインし、 「アクセス制御」->「/ (最上位のレルム)」->「エージェント」と順にクリックすると、 以下のように WS7Agent が作られていることが確認できます。




    エージェントの設定内容を確認するには、show-agent サブコマンドを用います。
    
    # ./ssoadm show-agent -e / -b WS7Agent -u amadmin -f /export/passwd.txt
    
    (出力結果の一部を抜粋)
    :
    com.sun.identity.agents.config.iis.filter.priority=HIGH
    com.sun.identity.agents.config.agent.logout.url[0]=
    com.sun.identity.agents.config.local.log.size=52428800
    com.sun.identity.agents.config.cookie.name=iPlanetDirectoryPro
    com.sun.identity.agents.config.fqdn.check.enable=true
    com.sun.identity.agents.config.debug.file.size = 10000000
    :
    #
    
    
    このようにエージェントの属性が表示されます。

    属性の値を変更するには、update-agent というサブコマンドを用います。
    例えば、com.sun.identity.agents.config.debug.file.size の値を 20000000 にするには、次のようにコマンドを実行します。
    
    # ./ssoadm update-agent -e / -b WS7Agent -u amadmin -f /export/passwd.txt -s -a "com.sun.identity.agents.config.debug.file.size=20000000"
    
    エージェント設定が更新されました。
    #
    
    
    これで属性値が更新されました。show-agent サブコマンドで確認してみると、
    
    #./ssoadm show-agent -e / -b WS7Agent -u amadmin -f /export/passwd.txt  | grep debug.file.size
    com.sun.identity.agents.config.debug.file.size=20000000
    #
    
    
    このように値が変更されていることが確認できます。

    ちなみに、エージェントの削除は、delete-agents サブコマンドを用います。
    
    # ./ssoadm delete-agents -e / -s test -u amadmin -f /export/passwd.txt
    
    次のエージェントが削除されました。
        test
    #
    
    
    注意:エージェントを作成、変更、削除した場合は、変更内容を反映させるために Web Server を再起動してください。
  12. マシン2 で Web Server を再起動し、http://machine2.example.com/ にアクセスします。
    今度は、マシン1の OpenSSO のログインページ (http://machine1.example.com:8080/opensso) にリダイレクトされるはずです。



    ここまで来ればもう一息。残る作業は、OpenSSO 上でのポリシーの定義です。
  13. (ポリシー定義についての細かい手順についての説明はここでは省きます。)
    今回、定義したポリシーは次のとおりです。
    
    ルール:
     サービスタイプ:URL ポリシーエージェント
     リソース名:http://machine2.example.com:80/*
     アクション: GET 許可  POST 許可
    対象: OpenSSO アイデンティティー対象
        選択したユーザー:amadmin のみ
    条件:なし
    応答プロバイダ:なし
    
    
    また、検証用に amadmin 以外に amuser1 というユーザーを作成しておきます。

    この状態で、もう一度 http://machine2.example.com にアクセスし、 リダイレクトされた OpenSSO のログインページで、 amadmin でログインすると、



    このように、Web Server のトップページが表示されます。

    ブラウザを再起動して、http://machine2.example.com にアクセスし、 リダイレクトされた OpenSSO のログインページで、 今度は、amuser1 でログインしてみます。
    amuser1 は、ポリシー定義で、http://machine2.example.com/* への アクセスを許可した対象に含まれていないので



    このように、アクセス不可となり、ポリシーの定義にしたがって、 http://machine2.example.com/* へのアクセスの可否が 制御されていることが確認できます。
最後に:
OpenSSO 8.0 および関連するポリシーエージェントのマニュアルは、 以下のサイトにありますので、 ssoadm コマンドやエージェントに関連するサブコマンドについての 情報はこちらで参照できます。(ドキュメントは英語で書かれています。)
http://docs.sun.com/app/docs/coll/1767.1?l=ja
リリースノートのみ、日本語マニュアルがあります。
http://docs.sun.com/app/docs/coll/1905.1?l=ja

Posted by hanaki ( 12月 19日 2008年, 11:24:58 午前 JST ) Permalink 投稿されたコメント [0]

Trackback URL: http://blogs.sun.com/hanaki/entry/ssoadm_%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88_3_0_%E3%81%AE%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92
投稿されたコメント:

コメント

名前
メール
URL

投稿されたコメント

HTML文法 不許可