SAMLは、従来のユーザー・パスワードによる認証に代わるものとして一般的に使用されつつあります。SAMLを使うことで、様々なIdpと連携した認証を行うことができるようになり、例えば、XenApp/XenDesktopやNetScalerを使ったSSL VPNアクセスに際しての認証をAzure Active Directoryを使って行うことが可能になります。
Citrix環境でSAMLを使うメリット
- ADなどの認証情報のフィッシングリスク軽減
- シングルサインオンやパスワード管理の一元化
- ログオンポイントの削減
Azure Active DirectoryでSAML認証してXenApp、XenDesktopにアクセス
まずは実際の動きをユーザー視点でご覧ください。
デモ:Azure Active Directoryのアカウントで仮想デスクトップにシングルサインオンしてみる
XenApp/XenDesktop環境の認証をAzure Active Directoryに統合するメリット
- Azure Active Directoryが提供する多彩でセキュアな認証オプションを簡単に利用できる
- 自前の2要素認証システムが不要。構築、保守の負担もなく高い可用性が確保されている
- DMZ内のNetScaler Gatewayと社内のActive Directoryサーバーとの通信が不要
- マルチフォレストや複数ドメイン環境でも複雑な設定がなく、構成がシンプル
- 既にAzure Active Directoryに統合されているSaaSアプリケーションと同じ認証で利用できる
デモ:Azure Active Directoryでは簡単に2要素認証の設定が行える
デモ:電話による本人確認でXenDesktopにアクセスしてみる
2要素認証でPINコードを入力するのは意外と面倒なものです。こちらは電話に出て確認キーを押すだけ。
デモ:Azureセルフパスワードリセット機能と連携
変更されたパスワードをオンプレのActive Directoryに書き戻すこともできます。
パスワードセルフリセットの要求があった事をユーザーや管理者に通知することも可能。不正アクセスのリスクを軽減。
デモ:アクセスパネルからのアクセス
ここで紹介したようにAzure Active Directlyの認証システムと連携させることで、SaaSアプリケーションを含めたシングルサインオンや多彩な認証オプションを容易に利用することができます。
Azure AD多要素認証オプション料金体系
気になる料金ですが、Azure ADでの認証だけでなく多要素認証のオプションを組み合わせて使う場合の課金体系は大きく2つあります。
- セットで利用・・・Azure Active Directory Premium、Enterprise Mobility Suite、Enterprise Cloud Suite に含まれています。既にこれらのサービスを契約している場合は追加料金は不要です。
- 単体サービスの利用・・・この場合の料金の詳細は以下になります(2017年5月現在)。ボリュームライセンスの対象にもなりますので、必要に応じてエンタープライズ契約担当者様にお問い合わせ頂くことをお勧めします。
https://azure.microsoft.com/ja-jp/pricing/details/multi-factor-authentication/より
技術概要
Azure Active DirectoryとWindows Server Active Directoryの違い
Azure Active DirectoryはOffice365やsalesforce.comなどのSaaSアプリケーションのシングルサインオンソリューションです。一方Windows Server Active DirectoryはオンプレミスにおけるWindows環境のシングルサインオンソリューションです。
XenApp/XenDesktop環境ではWindows Server Active Directoryが必須
Windows Server Active Directoryは企業レベルで利用する為の高度なアクセス制御やグループポリシー、移動ユーザープロファイルといった機能が実装されています。これらの機能は仮想デスクトップや仮想アプリケーション環境でも運用上必要不可欠です。従ってAzure Active Directoryで認証連携した場合でも、XenApp/XenDesktop環境ではWindows Server Active Directoryは必須要件になっています。
(参考:Azure Active Directoryのサービスの一部にAzure Active Directory Domain Servicesと呼ばれるものがあります。こちらはWindows Server Active Directoryと同等の機能を提供します。)
Azure ADをIdpとしたSAML認証フローと関連コンポーネント
以下は動作の概略になります。
- ユーザーがNetScaler(vServer FQDN)にアクセス
- NetScalerのSAML認証ポリシーに従ってAzure Active Directoryログインリンクにリダイレクト
- Azure Active DirectoryからSAML(UPNクレーム入りの)アサーショントークンを受け取る
- 認証の確認を行う
- StoreFrontにUPNを渡す
- ユーザーを特定
- ユーザーの認証用の証明書を作成
- 証明書引き換えチケットを発行
- VDAがチケット交換して証明書を受け取る
- VDAが仮想デスクトップに証明書でログオン
SAMLによるSSO
SAMLを使ってSSOを実現するには、事前にアイデンティティプロバイダ(Idp)とサービスプロバイダ(SP)の間で信頼関係を構築しておく必要があります。ここで紹介しているシナリオではSPであるNetScaler上でIdpであるAzure Active Directoryを、Azure Active Directory上では信頼するSPとしてNetScalerをそれぞれ登録して信頼関係を結びます。
IdpであるAzure Active Directory上にNetScaler(SP)を登録
SPであるNeScaler上にAzure Active Directory(Idp)を登録
アカウントについて
NetScalerやStoreFrontにはアカウントやシャドーアカウントをマッピングする機能はありません。SAML Name ID(UPNのクレーム)を使いユーザーを特定します。例えばXenApp/XenDesktopにログインするActive Directory上のアカウントが”user1″の場合、UPNは”user1@xxx.xxx.xxx”のようにActive Directory上のアカウント名と一致している必要があります。
尚、Active Directoryのユーザー アカウントの既定の UPN サフィックスは、そのユーザー アカウントが所属するドメインのDNS のドメイン名です。クレームのUPN サフィックスがActive Directoryのユーザー アカウントの既定の UPN サフィックスと異なる場合、Active Directory上で代替UPNサフィックス を追加します。
下記の図の例では既定のActive Directory UPNサフィックス”citrix.lab”に対して、代替のUPN サフィックス”azad002.onmicrosoft.com”を追加しています。
Citrix Federated Authentication Service
NetScalerやStoreFrontが外部と認証連携してXenApp/XenDesktopにシングルサインオンするには内部のXenApp/XenDesktop環境でCitrix Federated Authentication Service(FAS)を構成する必要があります。FASはActive Directory証明書サービスと連動してユーザーに代わって証明書を要求します。FASが認証の仲介をすることにより、ユーザー(VDA)は内部的にスマートカードと同じ仕組みを使って、パスワードを使わずにActive Directory環境にログオンすることができます。下記の図ではFASの要求により、RequetsID12でCitrix\User1に対して証明書テンプレートを使い仮想スマートカード用の証明書が発行されてます。
Federated Authentication Serviceの展開
Federated Authentication ServiceはXenApp/XenDesktopのメディアから別途インストールします。Federated Authentication Serviceはサービス本体とCitrx Federated Authentication Service Plug-in(FAS Plug-in)で構成されます。FAS Plug-in はStoreFrontに展開します。
Federated Authentication Service 上からWindows証明書サービスや証明書テンプレートの展開が容易に行えます。
StoreFrontはNetScalerに認証を一任
FASが有効化されると、信頼されたStoreFrontサーバーにユーザー認証の判断が委任されます。このシナリオではNetScalerがSPとして動作しますので、StoreFrontは認証の確認を更にNetScalerに一任します。これを行うためにStoreFront 上で認証方法の設定で”NetScalerに認証を委任する”設定を有効にする必要があります。
ADFSとの連携
StoreFrontのSAMLサポート
StoreFront 3.9からNetScalerを介在させずにStoreFrontが直接SAML連携できるようになりました。詳しくはこちらのブログ記事をご覧ください。
よくある質問
ここで紹介されているFederated Authentication ServiceはCitrix Cloud Service環境でも利用できますか?
Federated Authentication Serviceの機能はCitrix Cloud のサービスとしては提供されていません(2017年4月現在)。ただしCitrix Cloud XenApp and XenDesktop Service環境ではCitrix Cloud上のStoreFrontやNetScalerを使わずに、それらをワークロード環境に展開するオプションが用意されています。その構成の場合はワークロード環境にFederated Authentication Serviceを展開することで利用可能です。
注意点としてCloud上のDelivery Controllerに対して Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $trueというコマンドを発行しなければなりません。Citrixが提供するRemote Powershell SDK を使うとCitrix Cloud上のコントローラーに対していくつかのコマンドを直接発行できますが、このSet-BrokerSiteのコマンドについては制限されています。XenApp and XenDesktop ServiceのサポートケースをOpenすることで、Citrixの担当部門がお客様に代わりこのコマンドを発行することができます。(2017年5月現在)
詳しくは下記のKBをご覧ください。
Enabling FAS Authentication with Citrix Cloud XenApp and XenDesktop Service
https://support.citrix.com/article/CTX221712
FASサーバーの冗長化や必要スペックについて
Federated Authentication Service High Availability and Scalability
https://support.citrix.com/article/CTX225721
まとめ
Citrix環境への認証は多様な方法が用意されています。セキュリティ要件含め現在の状況や今後の計画、運用や利便性などに応じてベストなものを選択して頂きたいと思います。
参考リンク
Azure Active Directory とNetScalerの認証連携手順
Integrating NetScaler with Microsoft Azure Active Directory (ホワイトペーパー)
OktaとNetScalerの認証連携