Citrix Secure Browser を使用してレガシー Web アプリケーションの寿命を延ばす
Web アプリケーションとフレームワークの世界では、多様性を受け入れる必要があります。さまざまな種類のユーザー、グループ、企業が、Web 対応のビジネスアプリケーションに接続するために適切なツール、アプリケーション、およびアクセス許可を必要とします。ほとんどの場合、これらのアプリケーションへのアクセス方法を規定するコンプライアンス要因があります。古いブラウザフレームワークを持つ古いサブシステムをサポートする必要がある企業は、ビジネスに不可欠なアプリに対して適切なアクセスを提供し、コンプライアンス要件を満たすという困難な課題に直面しています。以下のドキュメントでは、更新および移行戦略を作成しながら、Citrix Secure Browser を利用してレガシー Web アプリケーションとブラウザへのアクセスと寿命を延ばす方法について説明します。
このソリューションでは、ユーザーがどのように接続するか、または内部サイトへの接続に使用するブラウザに関係なく、外部または内部ユーザーがアクセスできる準拠ブラウザを公開する必要があります。このソリューションは、XenDesktop Server OS VDA、StoreFront™、NetScaler Gateway、および XenApp Secure Browser を利用します。ユーザーは、IT 管理者によって設定されたすべての要件を満たしている場合、準拠ブラウザまたはエンドポイントをネイティブブラウザを使用するようにリダイレクトします。ポリシーが非準拠ブラウザまたはエンドポイントを検出した場合、ユーザーをリモートのコンテナ化された公開ブラウザセッションにリダイレクトします。ユーザーは、環境への接続方法に関係なく、リソースごとに1つの URL を知るだけで済みます(これにより、トレーニングとサポートのコストが削減されます)。
アーキテクチャ
以下のセクションでは、ユーザーが内部ネットワークから接続しているか外部ネットワークから接続しているかに関係なく、内部サイトにアクセスする方法について説明します。このシナリオでは、あるブラウザタイプ (Internet Explorer) が準拠ブラウザであり、別のブラウザタイプ (Google Chrome) が非準拠ブラウザです。どのブラウザがコンプライアンスポリシーにマッピングされるかは、各企業が決定します。
このソリューションでは、NetScaler® Gateway が公開アプリケーションへの外部アクセス用に構成されていると仮定します。これは図1で Gateway vServer 1 として表されています。2番目の仮想サーバー (Gateway vServer 2) は、Secure Browser 用の HTML5 Receiver セッションを起動するようにユーザーをリダイレクトします。
ユースケース
現在のブラウザではサポートされなくなったレガシー Web アプリケーションを維持する必要がある場合があります。この場合、IT 部門は Internet Explorer 8 用に設計された Web サイトを維持する必要があり、ベンダーは新しいブラウザや他のブラウザをサポートするための機能強化をリリースしなくなりました。この問題を解決するために、IT 管理者は、ブラウザ要件を満たすユーザーがサイトにアクセスできるように Secure Browser を公開します。以下の図は、内部ユーザーと外部ユーザーのワークフローにおける各接続を説明しています。

接続ワークフロー
- すべてのユーザーは、外部 DNS サーバーから解決されるサイト URL を入力します。この例では、
https://train.qckr.net - ブラウザは NetScaler Gateway ロードバランサーに接続し、コンプライアンス要件を決定します。
- ブラウザが非準拠の場合、内部ユーザーと外部ユーザーの両方が NetScaler Gateway 仮想サーバーにリダイレクトされます。ブラウザが準拠している場合、NetScaler Gateway は外部ユーザーの場合、ロードバランサーを介して内部サイトへの接続をプロキシし、内部ユーザーの場合、ローカルブラウザをサイトにリダイレクトします。
- 仮想サーバーは、StoreFront によって列挙されたセッションを自動的に開始します。
- StoreFront は、セッション情報とルーティングのために XenDesktop® Controller に接続します。
- セッションはSecure Browserデスクトップグループを介して開始されます。この場合、公開された準拠ブラウザを備えたServer OS VDAです。
- セッションはNetScaler Gatewayアプライアンス上のICA®プロキシを介して接続されます。
- Citrix Receiver™ for HTML5は、ネイティブブラウザ内でユーザーのセッションを確立します。
- 内部サイトは、Citrix Receiver for HTML5を使用したSecure Browserセッションを介して表示されます。
セットアップと構成
このセクションでは、NetScaler Gatewayリモート接続を備えた現在のXenDesktop環境にソリューションを実装する方法を示します。
ソリューションの要件
セットアップには、次のコンポーネントのインストールと構成が必要です。
- XenDesktop デスクトップコントローラー サーバー
- 外部アクセス用に構成されたストアを持つCitrix StoreFrontサーバー
- XenDesktop 仮想サーバーを備えたNetScaler ゲートウェイ
- インストールされているブラウザをSecure Browserとして使用するServer OS VDA
- 新しいNetScalerロードバランサーを指す外部DNSアドレス
- 新しいNetScaler Gateway仮想サーバーを指す外部DNSアドレス
Configuration
XenDesktop デスクトップコントローラー




「Secure Browser Catalog」という名前の新しいマシンカタログにServer OS VDAを追加します。
Secure Browser Catalog 用のデリバリーグループを作成し、Internet Explorer を公開します。コマンドラインパラメーターに「-k <URL of Internal Site>」と入力します。-k パラメーターは、Internet Explorer をキオスクモードで開くためのものです。この例では、Internet Explorer 8 を公開し、URL に内部サイトを使用しています。
デリバリーグループを特定のユーザーやグループに割り当てることができます。ユースケースで必要ない場合は、デスクトップアクセスを追加する必要はありません。
Server OS VDA に、サーバーまたはクライアント認証証明書をインストールします。これにより、コントローラーと VDA 間の通信で SSL が有効になります。
Mount XenDesktop 7.6 or later install media. Open a PowerShell command window, then run %MediaDrive%:\Support\Tools\SslSupport\Enable-VdaSSL.ps1 –Enable
Server OS VDA インスタンスを再起動します。
XenDesktop Controller 上で、パワーシェル コマンドウィンドウを開き、ASNP Citrix* コマンドを実行します。
ブローカーと VDA 間のセキュアな通信を有効にするには、次の 3 つのコマンドを実行します。
Get-BrokerAccessPolicyRule –DesktopGroupName ‘Secure Browser Desktop Group’ | Set-BrokerAccessPolicyRule –HdxSslEnabled $true*
<!--NeedCopy-->
Set-BrokerSite –DnsResolutionEnabled $true
<!--NeedCopy-->
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true*
<!--NeedCopy-->
ストアフロント










「SecureBrowser」という新しいストアを作成し、「認証されていないユーザーのみがこのストアにアクセスすることを許可する」を選択します。すべてのユーザーがNetScaler Gatewayからコントローラーにトークンを渡すため、トラフィックは認証されます。
XenDesktopコントローラーを追加します。
「リモートアクセス」を有効にし、次の手順で構成する2つ目のNetScaler Gatewayを追加します。この構成では、StoreFront / NetScaler Gatewayの構成で「コールバック」または「VIPアドレス」を使用する必要はありません。
ウィザードのデフォルト設定を使用してストアの作成を完了します。
ストアを作成したら、「Webサイト用Receiverの管理」をクリックします。
「Webサイト用Receiverの管理」ページで、「構成」をクリックし、「Webサイトのショートカット」に移動し、内部WebサイトのURLを追加して「ショートカットの取得」リンクをクリックします。
公開されているSecure Browserアプリケーションにアクセスできる一般ユーザーとしてログオンします。
Secure BrowserアプリのURLをコピーし、後でNetScaler Gatewayの設定で使用するためにテキストファイルに保存します。
Edit Receiver for Webサイトのプロパティに戻り、Citrix Receiverの展開をクリックし、常にHTML5用Receiverを使用するを選択します。オプションReceiver for Webと同じタブでアプリケーションを起動するを選択します。
ワークスペース制御をクリックし、ログオフアクションで終了を選択します。オプションワークスペース制御を有効にするのチェックを外します。
Client Interface Settingsをクリックし、オプションAuto launch desktopのチェックを外してOKをクリックし、設定を保存します。
テキストエディターを起動し、C:\inetpub\wwwroot\Citrix\SecureBrowserWeb\web.config というパスに指定されているファイルを開いてください。
設定<appShortcuts promptForUntrustedShortcuts=”true”>を見つけてfalseに設定し、変更を保存します。この設定を無効にすると、StoreFrontがユーザーにアプリケーションの起動を希望するかどうかを尋ねるのを防ぎます。
ネットスケーラー ゲートウェイ











NetScaler Gateway GUIで、ナビゲーションペインのXenApp® and XenDesktopをクリックし、ダッシュボードで新しいゲートウェイの作成をクリックします。
StoreFrontのプロパティで、サイトパスを/Citrix/SecureBrowserWebに設定し、ストア名をSecureBrowserとしてStoreFrontサーバーに新しいストアを設定します。
ウィザードを続行し、新しい仮想サーバーを保存します。
NetScaler Gatewayノードで、ポリシーを展開し、セッションに移動します。
アクションタブを選択し、2番目の仮想サーバー用に新しく作成されたアクションを編集してから、AC_WB_ポリシーアクションを編集します。
公開アプリケーションタブで、以前に保存したアプリショートカットURLをWebインターフェースアドレスフィールドに貼り付け、OKをクリックします。
ナビゲーションペインで、AppExpertノードをクリックし、Responderセクションを展開してから、アクションをクリックします。
新しいアクションを追加し、名前をInternal Connectionsとし、タイプをリダイレクトに設定します。
式フィールドに、接続する内部サイトのURLを引用符で囲んで追加します。例: https://mysite.acme.com
作成をクリックしてアクションを保存します。
新しいアクションを追加し、名前をExternal Connectionsとし、タイプをリダイレクトに設定します。
「Expression」フィールドで、2番目のNetScaler Gateway仮想サーバーのURLを引用符で囲んで追加します。例: https://gateway.acme.com
「Create」をクリックしてアクションを保存します。
「レスポンダーポリシー」ノードに移動します。
新しいポリシーを追加し、名前を「Detect Browser Compliance」とし、「Action」ドロップダウンで、以前に作成した「External Connections」アクションを選択します。
「未定義結果アクション」を「NOOP」に設定します。
「Expression」フィールドに、次のテキストを追加します。
HTTPリクエストヘッダーの「User-Agent」に「AppleWebKit」または「Chrome」または「Firefox」が含まれている場合
上記の式は、非準拠のブラウザ、つまりこのユースケースではInternet Explorerではないブラウザを検出します。
「Create」をクリックして変更を保存します。
新しいポリシーを追加し、名前を「Detect Client Source」とし、「Action」を以前に作成した「Internal Connections」アクションに設定します。
未定義結果アクション を NOOP に設定します。
「Expression」フィールドに、次のテキストを追加します。
| (CLIENT.IP.SRC.IN_SUBNET(172.17.0.0/23) |
上記の各サブネットを、内部ネットワーク環境に合わせて置き換えるか追加します。この場合、ユーザーエージェントは設定されたバージョンのInternet Explorerと一致し、クライアントは内部ネットワークから接続しています。
「Create」をクリックして変更を保存します。
ナビゲーションペインで、Traffic Management > Load Balancingを展開し、次にServersを選択します。内部サイトのホスティングに使用するサーバーを追加します。
ナビゲーションペインで、Load Balancingの下にあるService Groupsをクリックし、新しいサービスグループを追加して、ProtocolをSSLに設定し、前の手順で作成したServerをService Group Membersリストにバインドします。
Doneをクリックします。
ナビゲーションペインで、Load BalancingノードのVirtual Serversをクリックし、Addをクリックしてサーバーに「Intranet Site」という名前を付けます。
ProtocolをSSLに設定し、ロードバランサーのIPアドレスを入力します。
前の手順で作成したService Group Internal Web Serverをバインドし、外部アクセス用の証明書を構成します。ロードバランサーがSSLを内部Webサーバーにオフロードできるように、内部ルートCA証明書をCA証明書にバインドします。
詳細ペインのAdvanced settingsで、+ Policiesをクリックします。プラス(+)記号をクリックして、新しいポリシーをバインドします。
ポリシー選択用レスポンダー を選択し、続行 をクリックします。クライアントソースの検出 を選択し、優先度を100に設定します。
Bindをクリックします。
Responderポリシーセクションをクリックし、Add Bindingをクリックして、Detect Browser Complianceを選択し、優先度を110に設定します。Bindをクリックします。
Closeをクリックし、次にDoneをクリックします。
ネットスケーラー ゲートウェイ の構成を保存します。
ユースケースの結果と期待
このセクションでは、各ユーザーが上記の構成でどのように接続するかのユースケースと期待される結果を確認します。以下のすべてのユースケースで、ユーザーはローカルにインストールされたブラウザを開き、トレーニングサイトの外部URLを入力します。




非準拠ブラウザの外部ユーザー
期待される結果: ユーザーは、公開されたSecure BrowserでサイトをレンダリングするブラウザタブでCitrix Receiverセッションを起動します。
準拠ブラウザの外部ユーザー
期待される結果: NetScaler Gatewayは、ローカルブラウザと内部Webサイト間のトラフィックをプロキシします。
非準拠ブラウザの内部ユーザー
期待される結果: ユーザーは、公開されたSecure BrowserでサイトをレンダリングするブラウザタブでCitrix Receiverセッションを起動します。
準拠ブラウザの内部ユーザー
期待される結果: ユーザーセッションは内部サイトにリダイレクトされます。クライアントが内部ネットワークから接続しているため、NetScaler Gatewayは接続をプロキシしません。
既知の制限事項
- NetScaler Gateway仮想サーバーへの動的URLの受け渡しは、セキュアブラウザでのCitrix Receiver for HTML5の利用をサポートしていません。
- 起動URLを仮想サーバーに渡すには、セッションプロファイルでICAプロキシを無効にします。ICAプロキシはCitrix Receiver for HTML5の要件です。
- Citrix Receiver for HTML5はコンテンツリダイレクトをサポートしていません。
- 管理者は、StoreFrontでCitrix ReceiverをWebサイト向けに構成できます。
- 複数の独立したサイトを持つ環境では、各サイトに対して異なるNetScaler Gatewayセッションポリシーを作成し、それらを仮想サーバーにバインドするか、内部サイトのURLをホストできる内部起動ポータルを作成します。
参考文献
- XenAppおよびXenDesktop 7.6でSSLを使用してICA接続を保護する方法(https://www.citrix.com/blogs/2014/12/11/how-to-secure-ica-connections-in-xenapp-and-xendesktop-7-6-using-ssl/)