0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

OpenAM J2EE Policy Agent for Jetty 導入について

Last updated at Posted at 2017-04-11

はじめに

本記事は、OpenAM/OpenIGを使用したシングルサインオン環境の構築という記事から続く関連記事の一部です

本記事では、既にOpenAMが構築してあることを前提に、OpenIGとの連携をするべく、J2EE Policy Agentの導入を目指す。

OpenAMにはJavaアプリケーションサーバであるTomcatやJettyと連携可能なJ2EE Policy Agentというものが用意されていて、これらを使用することで、例えばApacheやIISにおけるWeb Policy Agentと同じようにOpenAMとの連携が可能になる。
対象サーバアプリケーションとしては以下のものがある。
ただしバージョン指定があるので、最新のバージョンだと対応していないっていうことが有り得る。

  • Tomcat
  • GlassFish
  • Web Sphere
  • JBoss
  • Jetty
  • WebLogic

本記事では、Jettyを対象にして説明を行うが、正直どのアプリケーションに対してもやることは変わらないので、手順は流用可能である。
また、Apache用のWeb Policy Agentとも手順がよく似ているので、一度経験があるならば容易に作業が完了すると思う。

前提

  • 既にJettyおよびOpenAMはインストール済であること
  • OpenAMがインストールされているサーバはCentOS7.3を想定
  • JettyがインストールされているサーバはCentOS7.3を想定
  • 検証目的の構成を行う

環境

  • OpenAM側

    • サーバOS: CentOS7.3
    • ホスト名: sso.test.local
    • IPアドレス: 172.16.1.130
    • JDK Ver: 1.8.0_111
    • Tomcat Ver: 8.0.39
    • OpenAM Ver: 13.0.0
  • Jetty側

    • サーバOS: CentOS7.3
    • ホスト名: openig.test.local
    • IPアドレス: 172.16.1.131
    • JDK Ver: 1.8.0_111
    • Jetty Ver: 8.1.21

構築作業

OpenAM側の設定

OpenAM上でエージェントプロファイルを作成

  1. トップページからTop Level Realm => Agents => J2EE新規をクリックしてエージェントプロファイルを作成

  2. ここから先はWeb Policy Agentと同じなので、参考にしてください。ただし、エージェントURLは、明示的にパスを指定する必要がある。これはJ2EEエージェントは、それ自体が立派なJavaアプリケーションとして動作するため、彼らに接続できるように明示的な指定が必要になる。よく使うのは/agentapp

J2EE Policy Agentをインストール

下準備

ダウンロード

J2EE Policy AgentもJ2EE Policy Agentと同じような手順で、Forgerock社から入手する必要がある。
下のURLからOpenAM => J2EE Policy Agents => 3.5.0 => Jetty 7 and 8 と辿って、.zipを落としてくる。
OpenAMと同じくダウンロードにはサインインが必要。
https://backstage.forgerock.com/downloads/OpenAM

ユーザの有効化

Web Policy Agentと同じく、J2EE Policy AgentはSPとなるサーバ、今回であればjettyを実行するユーザで、インストールを進める必要がある。
どうやってjettyをインストールしているかによって多少やり方は異なるが、もしyumなどではなく手動でインストールしている場合、
jetty という至って普通のユーザで作成していると思う。また、nologinではなくシェルが扱える状態になっているはずなので、この場合であれば特に問題ない。
もしnologinなどでシェルが触れない状態のときは、下記のようにsuコマンドのオプションとして-sを指定すると良い。これで明示的にシェルを指定してユーザーをスイッチすることができる。

[root@sso ~]# su - jetty
This account is currently not available.
[root@sso ~]# su - jetty -s /bin/bash
[jetty@sso ~]#

あるいは、今後恒久的にjettyユーザで作業を行うのであれば、下記のように変更したほうが楽かもしれない。
※とはいえ、jettyユーザを使う用事があるのはインストール時ぐらいなので su -s使ったほうが楽

[root@sso ~]# vim /etc/passwd
※略
jetty:x:48:48:jetty:/home/jetty:/sbin/nologin  <== /bin/bash に変更する

展開

Web Policy Agentと全く同じなので、参考にしてください。

パスワードファイルの作成

Web Policy Agentと全く同じなので、参考にしてください。

インストール

Web Policy Agentと全く同じなので、参考にしてください。
セットアップウィザードの中で問われる内容も基本的に変わらないです。
ただし、OpenAM側で設定した通り、エージェントURLは合わせること。(例で言うならhttp://openig.test.local:8080/agentapp)
注意点としては、Web Policy Agentと同じく必ず実行ユーザを切り替えて作業を進めること。
いつもの流れでrootとかで作業してはいけません。

動作確認

  • WebブラウザからSPのURL(http://openig.test.local:8080/) へアクセスしOpenAMのログイン画面へリダイレクトされたらまずはOK

  • ログイン後、jettyのトップページが表示されたら、エージェントはうまく動作している

トラブルシュート

基本的にハマるポイントはWeb Policy Agentと同じかと。

0
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?