7
2

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.

OSSTechAdvent Calendar 2018

Day 11

AWS 上の Amazon Linux 2 上に OpenAM と OpenAM Agent を構築してみた

Last updated at Posted at 2018-12-10

◆◆◆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 をインストールすると何が実現できるのかについては、下記の「動作概要」をご覧いただき、イメージが膨らめば幸いです。

動作概要

  1. OpenAM Agent 配下の PHP サンプルアプリにアクセスします。
  2. PHP サンプルアプリの前段に配置されている OpenAM Agent によって、OpenAM にリダイレクトされます。
  3. OpenAM で ID/PW 認証を行います。
  4. 認証が成功すると、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を使用する必要があります)
構成図_v2.png

今回は、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 の初期設定画面となります。
Agent設定.png

なお、今回は簡単のため、SSO のみモードを ON にしました。(ポリシーを使用しない設定)
OpenAM003.png

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.」と表示されれば、インストールは完了です。

動作確認

  1. OpenAM Agent 配下の PHP サンプルアプリにアクセスします。
  2. PHP サンプルアプリよりも先に動作する OpenAM Agent によって、OpenAM にリダイレクトされます。
  3. OpenAM で ID/PW 認証を行います。
OpenAM認証画面.png 4. 認証が成功すると、PHP サンプルアプリが配置されたサーバにリダイレクトされ、アプリコンテンツにアクセス可能になります。 php画面.png

まとめ

今回は AWS 上の Amazon Linux 2 に OpenAM および OpenAM Agent を構築して、簡単に動作確認を行ってみました。
基本的には RHEL 上に構築することが多いのですが、 Amazon Linux 2 上でも構築できることで、さらに利用の幅が広がるのではないかと思います。
OpenAM や OpenAM Agent にはさらにいろいろな機能があります。今回使用していない機能についても、今後 Amazon Linux 2 上で動作を確認していければと考えております。

7
2
0

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
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?