◆◆◆OSSTech Advent Calendar 2018◆◆◆
https://qiita.com/advent-calendar/2018/osstech
タイトルの通り、
AWS 上の Amazon Linux 2 の OS に、
OSSTech 製 OpenAM および OpenAM Web Policy Agent for Apache(以下:OpenAM Agent)を構築したので、
その概要を書き綴ります。
こんな感じで構築ができるんだと、皆様のイメージが少しでも膨らめば幸いです。
OpenAM とは、OpenAM Agent とは
OpenAM は、認証・認可の機能を備え、様々な認証連携に対応したオープンソースのシングルサインオン製品です。
OpenAM Agent は保護されたWEBリソースへアクセスするユーザーのリクエストを止め、OpenAM による認証・認可が済むまでリソースへのアクセスを拒否する製品となります。
OpenAM と OpenAM Agent をインストールすると何が実現できるのかについては、下記の「動作概要」をご覧いただき、イメージが膨らめば幸いです。
動作概要
- OpenAM Agent 配下の PHP サンプルアプリにアクセスします。
- PHP サンプルアプリの前段に配置されている OpenAM Agent によって、OpenAM にリダイレクトされます。
- OpenAM で ID/PW 認証を行います。
- 認証が成功すると、PHP サンプルアプリが配置されたサーバにリダイレクトされ、アプリコンテンツにアクセス可能になります。
ざっくり言うと、「OpenAM の認証が終わるまでは、PHP サンプルアプリにアクセスできない」という動作を実現します。
補足にはなりますが、
OpenAM ですでに認証が完了している場合は、再アクセス時に再度認証を求められません。
また、OpenAM にてログアウトを行った場合は、再アクセス時に再度認証を求められます。
構成概要
AWS 上に、Amazon Linux 2 の EC2 インスタンスを構築します。
1つ目のインスタンスには Apache Tomcat 及び OpenAM をインストールします。
2つ目のインスタンスには Apache HTTP Server をインストールし、httpd 上に OpenAM Agent および PHP のサンプルアプリを配置します。(ここでインストールする Web サーバは nginx 等ではなく、 Apacheを使用する必要があります)
今回は、OpenAM 13 と OpenAM Agent 4 をインストールしました。
OS の準備(AWS での設定)
・AWS 上に EC2 インスタンス(OS : Amazon Linux 2) * 2 を作成します。
OpenAM および OpenAM Agent のインストール
OSSTech 製品インストールガイドに沿って、前提 rpm パッケージおよび製品 rpm パッケージをインストールします。
製品については、OSSTech で検証版の提供を行っております。
アプリの配置(今回は PHP としました)
アクセス確認用に作成した、下記の内容の PHP ファイルを、Apache httpd の公開ディレクトリ上に配置します。
<?php phpinfo(); ?>
#初期設定
OpenAM にて Agentの設定を行います。
参考までに、下記は Agent の初期設定画面となります。
なお、今回は簡単のため、SSO のみモードを ON にしました。(ポリシーを使用しない設定)
OpenAM Agent の初期設定のスクリプトを実行します。
/opt/osstech/share/openam-agent-apache24/bin/agentadmin --i
下記の情報を求められるので入力します。
OpenAM URL: (OpenAM の URL を入力)
Agent URL: (OpenAM Agent サーバの URL を入力)
Agent Profile name: (OpenAMで指定した Agent 名を指定:今回はAmazonLinux2Agent)
Agent realm/organization name: (OpenAM でAgentを設定したレルム名を指定:今回は/)
Agent Profile password source: (パスワードが記載されたファイルを指定)
「Installation complete.」と表示されれば、インストールは完了です。
動作確認
- OpenAM Agent 配下の PHP サンプルアプリにアクセスします。
- PHP サンプルアプリよりも先に動作する OpenAM Agent によって、OpenAM にリダイレクトされます。
- OpenAM で ID/PW 認証を行います。
まとめ
今回は AWS 上の Amazon Linux 2 に OpenAM および OpenAM Agent を構築して、簡単に動作確認を行ってみました。
基本的には RHEL 上に構築することが多いのですが、 Amazon Linux 2 上でも構築できることで、さらに利用の幅が広がるのではないかと思います。
OpenAM や OpenAM Agent にはさらにいろいろな機能があります。今回使用していない機能についても、今後 Amazon Linux 2 上で動作を確認していければと考えております。