はじめに
色々あってOpenAMでSSOを勉強しようと思い、以下を参考に構築に着手しました。

「10分でできるだと…??」ということで、気軽に開始。10分で終わることなんてなかったですが。
※よく見たらOSSTech株式会社の方が書いてますね。OpenAMで何か調べるとこの会社が公開している情報が結構ヒットするので、知見のある方が書いていることだけはわかりました。
気を付けること
試してみたものの、AlmaLinux9系ではインストール時にエラーになるということです。仕組みをよく理解できている人にとっては、何が原因かすぐにわかって9系でもインストールできてしまうかもしれませんが、いわゆる「手軽さ」を求めて技術ブログを参考にしている時点で、OSのバージョン差分なんて吸収できないでしょうし、なかなか原因にたどり着けないです。
今回はAlmaLinux8系でインストールしています。ただ、私は8系でうまく行ったという話です。ご参考までに。
インストール
インストール手順は参考にしたURLとほぼ一緒です。※一部変えてはいますが、全体通してほぼ一緒です。
後々の確認のため、「openldap-clients」と「bind-utils」も追加しています。
1 |
dnf install -y java-11-openjdk wget java-11-openjdk-devel tomcat httpd mod_ssl openldap-clients bind-utils |
hostsも追加しておきます。opendj01は連携するLDAPサーバ情報です。今回のインストール自体には関係ないです。
1 2 3 4 5 6 |
cat <<EOF >> /etc/hosts 172.16.1.30 openam01.lab.ricecake24book.com 172.16.1.30 openam01 172.16.1.32 opendj01.lab.ricecake24book.com EOF tail /etc/hosts |
ssl.confを編集します。
1 |
vi /etc/httpd/conf.d/ssl.conf |
設定が有効になるように下記を追記。
1 |
ProxyPass /openam ajp://localhost:8009/openam secret=orange1234! |
末尾に追記ではないので、以下の結果を参考に編集してください。
1 2 3 4 5 6 7 8 9 10 |
[root@openam01 ~]# tail /etc/httpd/conf.d/ssl.conf downgrade-1.0 force-response-1.0 # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" ProxyPass /openam ajp://localhost:8009/openam secret=orange1234! </VirtualHost> |
server.xmlを編集します。
1 |
vi /etc/tomcat/server.xml |
<!– Define an AJP 1.3 Connector on port 8009 –>の周辺を修正します。
修正結果は下記の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@openam01 ~]# cat /etc/tomcat/server.xml |grep -C 7 0.0.0.0 type="RSA" /> </SSLHostConfig> </Connector> --> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector protocol="AJP/1.3" address="0.0.0.0" port="8009" redirectPort="8443" maxParameterCount="1000" secret="orange1234!" secretRequired="true" /> |
httpdとtomcatは自動起動設定を有効にしておきます。
1 2 |
systemctl enable httpd systemctl enable tomcat |
.warのダウンロード
OpenAM-14.0.1.warをダウンロードします。
執筆時は下記からダウンロード可能でした。
展開ディレクトリの作成
ダウンロードしたファイルを/tmp/に転送させた後の手順を記載します。openam.warにしておかないと後の接続で躓くのご用心。(初歩的なことで、私は躓いたので)
1 2 |
mv /tmp/OpenAM-14.0.1.war /tmp/openam.war cp -p /tmp/openam.war /var/lib/tomcat/webapps/. |
ブラウザでの初期設定
一旦再起動してみます。
起動後、http://<IPアドレス>/openamにアクセスします。
下記画面が表示されます。「デフォルト設定の作成」を選択します。

あとは必要な情報を入力して進める。

ちなみに、AlmaLinux9系はこの先のインストール画面でエラーになりました。

ちなみに、うまくできるとこんな感じ。

ログインから先は割愛。申し訳ないですが、私が書きたかったのはエラーの話なので。
このエラーががね…。ChatGPTに聞いても「javaのあれを見ろ…これを修正せよ…」という指示が続きまして、結果「このエラー解消するの無理か?」となってしまい、「デフォルト設定の作成」ではなくカスタム設定で行くか!と思い、ずるずる深みに…。ここからOpenDJ構築やら長い戦いに突入するのです。それは別で。
おまけ:カスタム設定ではどうか?
ちなみに、デフォルト設定の作成でうまくいかないのなら、カスタム設定はどうか?の結果を残しておきますね。

うまくいったら良かったのですが、どうしてもうまくいかず。
OpenAMのためにOpenDJを別途用意して、名前解決とLDAPSできるようにして、さらに証明書もLet’sEncryptで発行して信頼されているものを用意したのですが、どうしてもこの壁(下記画像)が越えられず。ldapsearchでldaps指定して問題なく通信できるのに、どうしてかなーという感じで試行錯誤しましたが、ダメでした。

作成したLDAPサーバは無駄になったか?
そんなことなく、一旦デフォルトの設定でインストールを済ませ、そのあとブラウザ画面からOpenDJのLDAPサーバを追加できました。ちゃんとLDAPで登録したユーザもOpenAMで表示されてましたので、連携できていたみたいです。
OpenAMについての詳しい検証はできたのか
結論、できませんでした。なんとなく「SSOを検証したいなー」と思って始めたのですが、構築後に簡単な連携テストができるSPサービスで試しても連携が成功せず、どうにもこうにもならずに挫折しました。
Azure Entra IDでもSSO連携は試せましたので、個人的にはAzureで試してちょっと満足しちゃいました。何も知らいない人は、まずは比較的に情報が豊富なところから試したほうが良いのかもしれないです。一方、SSOのことをある程度分かっていて、より深い勉強したいといった人にはお勧めできるかもしれないです。とはいえ、OpenAM独特のと用語もあるみたいなので、そのあたりも違和感なく吸収できる人であれば、いいんじゃないですかね。