こんにちは。
最近テレワークの会社が増えたからなのか社内のアプリケーションへのアクセスにVPNなしでやる方法があるならそれがいいといわれる機会がありました。
前々からAzureAD Application Proxyを試してみたかったのもあったので今回試して見ようと思います。
ってことで今回は!
「社外からVPNなしでガルーンサーバーへアクセスしてみる」をやってみたいと思います。
- 概要
ApplicationProxy自体は検索するとどんなものなのか結構いっぱいでてきたので概要だけさらっと記載していきます。
まずApplicationProxyを利用するのに必要なライセンスですが
・Azure Active Directory Premium P1
が必要となります。
※アクセスする人数分必要です。
次にどんなアクセス経路になるかの概要図です。
ざっくりと下図のような感じでアクセスしていきます。
※今回はガルーンにアクセスさせるので右側がガルーンになっています。
コネクターサーバーとガルーンサーバー、ADサーバーはそれぞれサーバーOSをWindowsで準備しています。
通信の流れを簡単に!
①②AzureADで認証してトークンを取得(ユーザーはユーザーIDとパスワードを入力)多要素認証してたらそれも適用されます!
③デバイスからアプリケーションプロキシサービスにトークンを送信
アプリケーションプロキシサービスがデバイスから受け取ったトークンでUPNとSPNを取得しアプリケーションプロキシコネクタに送信
④コネクタがADと認証を実施(今回はSSO設定するので)
⑤コネクタがガルーンにアクセス
⑥ガルーンの応答をアプリケーションプロキシサービス経由でデバイスに送信
って感じです。
詳しくはこちら
オンプレミスのアプリへのリモート アクセス - Azure AD アプリケーション プロキシ | Microsoft Docs
今回の構成ではAD認証を利用してガルーンにアクセスする必要があります。
アプリケーションプロキシでは対応可能な認証が以下です。
・パスワードベースのサインオン
・ヘッダーベースのサインオン
・統合Windows認証
アプリケーション プロキシを使用したオンプレミス アプリでのシングル サインオンについて | Microsoft Docs
ガルーンとADの連携ではLDAPを利用することも可能なのですが、
今回はAD-ガルーン間およびアプリケーションプロキシの両方とも統合Windows認証で設定をしています。
- 前提
ガルーンサーバーが導入されており、AzureADもカスタムドメイン登録が終わっている状態にて作成
- 設定
ガルーン側を統合Windows認証にするために以下の設定を追加
ガルーン側のIISの設定にてWindows認証が有効になっていることを確認
※英語でごめんなさい笑
Windows認証がない場合はサーバーの役割追加からIIS内のWindows認証を有効にします
これでAD-ガルーン間の統合Windows認証の設定は完了です。
次にアプリケーションプロキシ側を設定します。
AzureAD管理センターにログオンし、エンタープライズアプリケーション-アプリケーションプロキシを選択し、「コネクタサービスのダウンロード」から規約に同意してダウンロードをクリック
ダウウンロードできたモジュールをコネクターサーバー上で実行
Installをクリック
AzureADの管理アカウントでサインイン
インストールが完了したらCloseをクリック
AzureAD管理センターのエンタープライズアプリケーションよりすべてのアプリケーションを選択し、新しいアプリケーションをクリック
オンプレミスのアプリケーションの追加をクリック
名前にアプリケーションの管理名称を入力
内部URLに社内からアクセスしているガルーンサーバーのURLを記載
外部URLは適切に選択してください。
※内部URLと外部URLを同じURLにするには証明書が必要となるので今回は別で実施します。
事前認証をAzure Active Directory
として追加をクリック
作成が完了したら
AzureAD管理センターのエンタープライズアプリケーション内のすべてのアプリケーションから上記で作成した名称のアプリケーションをクリック
ユーザーとグループの割り当てをクリック
今回はこんな感じで追加してあります。
※追加する際はユーザーまたはグループの追加から追加してください
内部アプリケーションSPNには
http/サーバー名
今回はgaroonというホスト名のサーバーなので
http/garoon
http/
ってところが重要(http://じゃないよ)
委任されたログインIDは「ユーザープリンシパル名のユーザー名部分」としています。
これはAzureADのユーザー名がUserA@xxx.com
ADのユーザー名がxxx\UserAという完了で作成しており
UserAを一致させるために「ユーザープリンシパル名のユーザー名部分」を利用しています。
設定したら保存をクリック
ADサーバーにログオンし、ActiveDirectoryのユーザーとコンピューターをクリック
コネクターサーバーをダブルクリック
今回はConnecterVMとしています。(スぺスはミスったのでご了承を笑)
委任タブよりGaroonサーバーに対しhttpの通信を許可
※追加ボタンからサーバーを検索してプロトコルを選択できます。
これで設定は完了!!
- いざアクセス
エンタープライズアプリケーション内の作成したアプリケーションのプロパティにユーザーのアクセスURLの記載があります。
アクセスするとAzureADのサインイン画面が表示される
多要素認証の設定をしていればその画面が表示
こんな感じで表示されるはずです!!
※文字やフォーム崩れが結構おきるようなのでご注意を
今回はガルーンの設定自体何にもしていないので何も表示されません。。。。笑
ちなみにアクセスの際はちゃんとADとAzureADが同期されたユーザーで実施してくださいね!!
ドメインに入っていない端末からのアクセスは試していないのですが余裕があればまたどこかで試してみたいと思います!
- まとめ
前々から試してみたかったアプリケーションプロキシ!試してみたら最後のアクセスで何度か詰まりました!笑
皆さんも実施する際は余裕をもってやってみていただくと良いかもしれません!
今回は実施していませんが、条件付きアクセスもあわせて設定可能なのでよりセキュアに社内アプリケーションにアクセスさせられるのではないかと思います!
ぜひ一度使ってみては??
- 最後に!
Twitterでも情報発信したいと思いますので、興味があったらフォローしてください!