Quantcast
Channel: normalian blog
Viewing all articles
Browse latest Browse all 237

Microsoft Entra アプリケーション プロキシで閉域なオンプレミスサーバにアクセスする+α な TIPS

$
0
0

皆様は Microsoft Entra アプリケーション プロキシ という機能をご存じでしょうか?Entra ID の認証・認可機能を利用して、オンプレミスのサービスに対してセキュアな接続を提供する社畜垂涎のサービスとなります。細かくは色々とありますが、以下の様に EntraID が認証した情報を用い、Microsoft Entra application proxy connectors をインストールした Windows Server を経由してセキュアかつ閉域的な Web サーバにアクセスすることが可能です。

learn.microsoft.com

Microsoft Entra application proxy connectors(実態はエージェントで Windowsサービスとして稼働。以下はコネクタと呼びます)をインストールした端末が必要&当該サーバが Windows Server である必要がありますが、接続先のサーバは Windows, Linux含めて OS は問わないのでかなり汎用性の高いサービスだと思っています。

昨今では Microsoft Entra Private Accessというサービスが’発表されており、今後 Entra ID 的にはこちらのサービスを利用することが推奨されると思いますが、現在 Microsoft Entra Private Accessはパブリックプレビューなので、まだまだ使いどころはあるサービスだと思っています。
www.microsoft.com

セットアップはどうやってやるの?

以下ふたつのセットアップが必要になります。ここでは既に HTTPSアクセスが可能な Web サーバ(今回は IISを利用していますが、Linuxでも構いません)がセットアップ済としています。Web サーバには認証局から発行された証明書を利用することを強く推奨します。オレオレ証明書を利用する場合、後述するようなエラーが発生します

  • Windows Server にコネクタのセットアップ
  • Entra ID に Enterprise Application を作成する

まず、アーキテクチャ図における「Windows Server ※要コネクタ」のセットアップを行います。当該サーバが Entra ID を介したユーザリクエストを中継処理するサーバとなります。上記で記載した Microsoft Entra Private Accessだと本サーバのセットアップは不要となりますが、逆にネットワーク分離的にはこちらのコネクタ入りの Windows Server が中継する様にネットワーク接続を制限するうま味もあるので残るのではないかという気もしております。
セットアップ自体は簡単です、以下のスクリーンショットに従い Entra ID の Application Proxy メニューに移動します。そこに Download connector service があるので、こちらでコネクタのセットアップ用のファイル(単なる exe 形式です)をダウンロードします。

コネクタのインストール先 Windows Server で以下の様にセットアップファイルを実行し、ウィザードに従ってセットアップを実行してください( Uninstall になってるのは既にセットアップ済のサーバで実行したからなので、ここが Install になってるはずです)。

セットアップが完了すると以下の様に Windowsサービスに Microsoft AAD Application Proxy Connector/Microsoft AAD Application Proxy Connector Updater の二つが表示されます。

最後に以下のスクリーンショットに従い Entra ID の Application Proxy メニューに移動します。こちらで当該 Windows Server の Status が Active になっていればセットアップ完了です。

オンプレミスのファイヤーウォールNSG等でアクセスが制限されている場合、Windows Server のセットアップが上手くいっていても Active にならない場合があります。その場合は以下のネットワーク接続要件を確認してください。
learn.microsoft.com


次にEntra ID 上に Enterprise Application のリソースを作ります。Azure ポータルから Entra ID の画面に遷移して以下の Enterprise applications を選択してください。ここでMicrosoft Entra ID P1 ライセンスが確認できますので、もしライセンスが割り当てられてない場合はライセンスの購入・割り当てを検討ください。

以下の New application からアプリケーションプロキシを利用するリソースを作成します。

New application を選択後、以下の画面となりますがこの中から Add an on-premise application を選択していきます。

次に各種パラメータを入力します。以下に図示しましたが、この中で特に重要なのが Internal Url と External Url です。

  • Name:ここに入力した名前で Entra ID 上に表示されます
  • External Url:ユーザが直接アクセスする URL になります。オンプレミスのリソースにコネクタ経由でアクセスする際、ユーザはこちらをブラウザ等に入力することになります
  • Internal Url:コネクタがリクエストを送るオンプレミス内の URL となります(今回の例では Azure 内ですが)。こちらの名前解決はコネクタをインストールしたサーバに準拠するので、極論当該サーバの hosts ファイルを編集しても対応可能です。こちらで既にセットアップ済 HTTPSアクセス対象の Web サーバの URL を指定してください
  • Connector Group:こちらは後述しますが、ここでコネクタをセットアップした Windows Server を選択します。

リソース作成後、本 Enterprise Application のリソースを利用するユーザを割り当てます。

最後にブラウザに External Url を入力してアクセスを試します。この際 Enterprise Application を作成した Entra ID テナントでの認証を求められるので、認証完了後に以下の様にオンプレミス(今回は相当)へのリソースへアクセスが可能となります。

オレオレ証明書を利用する場合

デフォルト設定でコネクタが認証済の証明書以外を利用する場合、以下の SSLに関するエラーを表示します。

開発環境に限定した場合ですが、Enterprise Application リソースの Application proxy メニューから、以下の Advanced メニューにおける Validate Backend SSL certificate メニューのチェックを外します。こちらの有効化には体感で数分~10分程度かかったので、設定直後にエラーが続いても焦らなくて OK です。

こちらでオレオレ証明書でもアクセス可能ですが、あくまで開発環境用だという点に留意ください。

ネット―ワークの接続要件は?

皆様の一番関心のあるところ&アプリケーションプロキシの良い点だと考えています。許可する必要があるトラフィックはコネクタが利用する一部のアウトバウンド接続であり、インバウンドは原則開放する必要がありません。以下に接続要件が記載されています。
learn.microsoft.com
インバウンドはセキュア通信であれば 443 をコネクタがインストールされた Windows Server 向けにだけ許可すれば良く、それ以外のサーバやポートに対しては特に公開する必要が無いのは大きなメリットだと考えています。

ライセンスは必要?

本サービスの利用には Microsoft Entra ID P1 or P2 ライセンスが必要になる点に注意が必要です。以下を参照ください。
Microsoft Entra アプリケーション プロキシに関してよく寄せられる質問 | Microsoft Learn

接続先の Internal URL に IP アドレスは指定できるの?

以下の様に IP アドレスを直接指定する場合、ポータルでエラーが発生して指定できません。認証局が発行した証明書の利用を前提としているので、IP アドレスの利用は非推奨どころか不可となります。

冗長化はどう考えたらいいの?

今回は特に触れませんでしたが、コネクタグループを利用して冗長化を行います。詳細は以下の記事を参照して頂ければと思いますが、基本的には用途ごとにコネクタグループを作成し、各コネクタグループにコネクタをセットアップしたサーバを複数登録することで冗長化します。
learn.microsoft.com


Viewing all articles
Browse latest Browse all 237

Trending Articles