———これは私がOpenAMにハマり、発狂し、ここまでこぎつけた物語。
OpenAMを検証で構築する必要があったので、色々な資料を見つつ、構築したので、その忘備録として記載します。
普段あまり、Linux系を触らないので最適解がわかってないところもあると思います。
もしございましたら、有識者の方々ご教示ください。<(_ _)>
0.事前知識だったり他色々
前提情報だったり、事前知識だったりをまとめています。
環境
項目 | ソフトウェア名 | バージョン |
---|---|---|
OS | RedHat Enterprise Linux | 9.5 |
JDK | OpenJDK | 1.8 |
Web | Apache | 2.4.62 |
AP | Tomcat | 9.0.87 |
IdP | OpenAM Community Edition | 15.1.6 |
OpenAM Community Edition
OpenJDKって何?って人向け
このOpenAMをIdPとして利用する場合
Microsoft 365(旧:Office365) は原則的にHTTPSを推奨している。
というかほぼ強制的にHTTPSであることを求めてくる。
あとMS-Online から Microsoft Graphとかいうのに変わっているのでこれもややこしい。
OpenAM側でHTTPS(SSL)にする場合、ちょっとまだわからないので、わかればまとめようかなと思います。(2025.07.02)
1.準備
ホスト名とhostsの設定
hostnameの設定
# vi /etc/hostname
例).
openam.example.com
FQDNで記載する。
hostsの設定
# vi /etc/hosts
127.0.0.1 localhost ...4
:::1 localhost ...6
xxx.xxx.xxx.xxx openam.example.com
※127.0.0.1にopenam.example.comを書き込むとリダイレクトが発生するので接続できない。
そもそもその設定は推奨してなさそう。
ネットワーク設定
# nmtui
当然ながらサーバなのでIPアドレスとか固定しておく必要があります。
(そもそもこんなこと書く必要あるだろうか……)
リポジトリの確認と更新
# yum check-update
# yum update
古いの抱えても仕方ないかなと思うので念のためリポジトリを最新化させる。
ここは最新にしておく必要があるのかな?と思いつつ実行。
OpenAM をダウンロードする
# cd /tmp/
# wget <OpenAM のダウンロード URL>
※URLは OpenAM-xx.x.x.war のような warファイルでOK
構築時は15.1.6を実行。
$wget https://github.com/OpenIdentityPlatform/OpenAM/releases/download/15.1.6/OpenAM-15.1.6.war
とりあえずOpenAMをデプロイしたい!!!!
という人はOpenAM-.warファイルをダウンロードしてください。
ファイル名を openam.war に変更しておく
# mv OpenAM-xx.x.x.war openam.war
普段 Windows屋をやっていますので、リネームをmv(ファイル移動コマンド)や cp(ファイルコピーコマンド)で出来るのは新鮮でした。
2. OpenJDK をインストールと設定
# java -version
# yum install java-1.8.0-openjdk
# java -version
OpenJDKのセキュリティポリシーを変更する
# update-crypto-policies --show
# update-crypto-policies --set LEGACY
【課題】
デプロイ時にエラーが発生する。
ここのポリシーが何かしらの原因を持ってるっぽい
理想はこのポリシーを変更しないでOpenAMの水準を合わせることで解決したいけど一旦できないのでLEGACYにしています。
再起動後にポリシーが適用される模様なので、再起動後にチェックする。
3.Apache(httpd)をインストールする
Apacheのインストール
# httpd -v
# yum info httpd
# yum -y install httpd
# httpd -v
# yum update httpd
※HTTPS化したい場合は以下のものをインストールします。
SSLモジュールのインストール
# httpd -M | grep ssl
# yum install mod_ssl
# httpd -M | grep ssl
ssl_module (shared)
ssl_module (shared)が出たらインストール完了
4.Tomcatをインストールする
# yum info tomcat
# yum -y install tomcat
# tomcat version
# yum update tomcat
5.Firewall の設定
とりあえずOpenAMを接続する既定ポート(TCP8080)を開放する
# firewall-cmd --add-port=8080/tcp --permanent
# firewall-cmd --reload
6.諸設定をする
6.1.Apache Tomcatの連携
HTTPS化(SSL)を利用する場合はここが必要っぽい?
6.2.OpenAMのカスタマイズ
このカスタマイズが必要?
→不要
Open Identity Pratform//OpenAM Access Management : To Set Up Configuration Tools
6.3.OpenAM をTomcatに配置する
openam.warファイルをwebappsに配置する。
# cp /tmp/openam.war /usr/share/tomcat/webapps/
mvでもいい
# ls /usr/share/tomcat/webapps/
webapps/配下にopenam.warがあることを確認する。
デーモン(サービス)を自動起動化する
# systemctl enable httpd
# systemctl enable tomcat
再起動などで一度OSが停止するとWebが機能しなくなるので必須
構成を適用する
# reboot
7.キーストアの生成
OpenAM用初期設定後に自動生成されているtest鍵ペアは、すべてのOpenAMサーバ共通の為本番環境では使用はしないこと。
準備
# mkdir -p /usr/share/tomcat/openam/openam/keystores
どこでもいいと思う
キーストアの生成
$keytool -genkeypair \
-keyalg rsa \
-alias openam-idp\
-dname "CN=openam.example.com,O=Example,ST=Tokyo,C=JP" \ #※1.
-keypass changeit \
-keystore /usr/share/tomcat/openam/openam/keystore.jceks \ #※2.
-storetype JCEKS \ #※2.
-storepass changeit \
-validity 365 \
-keysize 2048
最低限のラインで生成できる。
必要があれば以下の情報を基に作成する。
※1.-dnameのパラメータ例
パラメータ | 内容 | 例 |
---|---|---|
CN | Common Name(一般的にホスト名やサービス名) | example.com |
OU | 部署名など | IT |
O | 組織名 | YourOrganization |
L | 市区町村 | Tokyo |
ST | 都道府県 | Tokyo |
C | 国コード(2文字) | JP |
※#2.Keystoreの暗号ファイル生成について
PKCS12が推奨値らしい。
-keystore mykeystore.p12
-storetype PKCS12
場所については多分-keystoreで指定かな?
7.確認
構成確認
# update-crypto-policies --show
# ls /usr/share/tomcat/webapps/
openamディレクトリが出来ていることを確認する
ブラウザで接続してみる
http://"localhost":8080/openam
例).http://openam.example.com/openam
※内部(LAN)NWで接続するのであれば "Localhost" はIPアドレスでもよいと思います。
OpenAMの画面が出ればOK
参考資料
後でまとめる