Ansible AWX でSAML SSO してみた

概要

Ansible AWX でSAML SSOしたときにちょっとつまずいたのでメモを残す。

環境

docker を利用して構築しました。バージョンは2.1.0 イメージは

普通に上記イメージを利用して構築すると、AWX のWebUIはコンテナ内で8052ポートで待ち受けます。

ここに443ポートで待ち受けるロードバランサから接続する割と一般的かな?と思う構成です。

つまずいた点

とても単純で、IdP側に設定をして、いざSSOしてみると https://<awxhost>:8052 instead of https://<awxhost> とメッセージが出るわけです。 つまり、 443ポートに着信してしかるべきなのに、8052ポートに着信してるからおかしいよと警告が出るんですね。

解決策

これを修正すべく、docker run時に -p<外部公開ポート>:443 とし、コンテナ内のnginxの設定を 443ポートでhttpを待ち受けるように設定しkill -HUP nginx で設定をリロードすることで、コンテナ内に着信したとき、ちゃんと443ポートが利用され、事なきを得る事が出来ました。

中期的にはDockerfileを作成し、上記修正をいれたイメージをビルドして利用することで解決できそうです。

根本的には、ちゃんと原因をつかんで修正することが大事だと思いつつ、時間がないのでそこは手を出せていません。

ちなみになんですが、ポート番号が変になることを承知の上で awx/nginx.conf at devel · ansible/awx · GitHub X-Forwarded-Port 443が設定されているのですよね。

この設定をアプリケーション側がちゃんと読んでいないのでは?と疑っております。