オンプレミスのWebサーバのリバースプロキシサーバとして、nginxを構築する必要があったが、外部公開はしたくなかったのでAzureADの認証情報を利用して認証したいと思い構築したらできたのでその記事。
ちなみに、IISサーバの場合は、ネクストスケープさんのすばらしい記事があるので、そちらを参照いただくといいと思います。
経緯
下記内容は本当はAzure AD Application Proxyでさっくり、要件を満たしたかったのです。
が、リンク先が相対参照 (HTMLタグでいうと<a href=./hogehoge>)ではなく、絶対参照(HTMLタグでいうと<a href="http://hogehoge">)で指定されている場合、正しくリバプロされず、絶対参照で指定されたURLが開いちゃう、という仕様のため、望むようなリバプロにならなかったのです。
しかたなくnginxで代用することにしました。
要件
社内環境でのみ公開されているオンプレミスWebサーバを外部からも参照したい。でも、オンプレミスWebサーバの修正はしたくない。
はじめに
Azure AD Application Proxyよりかなり面倒な構成です。リンク先が全て相対参照のサイトの場合はAzure AD Application Proxyによる構築を強く推奨します。
設定概要
- Linuxサーバを用意(私はAzure上にOpenLogic7のインスタンスを用意しました。もちろん、オンプレミスWebサーバにネットワーク的に接続できる必要があります)
- sub_filterモジュールをコンパイルしたnginxを用意。
- htmlの中身を書き換えるために必要です。
- oauth2_proxyモジュールをダウンロード。
- AzureAD認証用に必要。これが肝です。
- sub_filterモジュールをコンパイルしたnginxを用意。
- Azure AD上にOauth2用のネイティブアプリケーションを用意。ディレクトリのリード権も付与。
長くなりそうなので、続きは別ページで用意します。。