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に書き戻すこともできます。

パスワードセルフリセットの要求があった事をユーザーや管理者に通知することも可能。不正アクセスのリスクを軽減。

img_5242

デモ:アクセスパネルからのアクセス

ここで紹介したようにAzure Active Directlyの認証システムと連携させることで、SaaSアプリケーションを含めたシングルサインオンや多彩な認証オプションを容易に利用することができます。

Azure AD多要素認証オプション料金体系

気になる料金ですが、Azure ADでの認証だけでなく多要素認証のオプションを組み合わせて使う場合の課金体系は大きく2つあります。

  1. セットで利用・・・Azure Active Directory PremiumEnterprise Mobility SuiteEnterprise Cloud Suite に含まれています。既にこれらのサービスを契約している場合は追加料金は不要です。
  2. 単体サービスの利用・・・この場合の料金の詳細は以下になります(2017年5月現在)。ボリュームライセンスの対象にもなりますので、必要に応じてエンタープライズ契約担当者様にお問い合わせ頂くことをお勧めします。

azuremfa

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認証フローと関連コンポーネント

samlflowoutline

以下は動作の概略になります。

  1. ユーザーがNetScaler(vServer FQDN)にアクセス
  2. NetScalerのSAML認証ポリシーに従ってAzure Active Directoryログインリンクにリダイレクト
  3. Azure Active DirectoryからSAML(UPNクレーム入りの)アサーショントークンを受け取る
  4. 認証の確認を行う
  5. StoreFrontにUPNを渡す
  6. ユーザーを特定
  7. ユーザーの認証用の証明書を作成
  8. 証明書引き換えチケットを発行
  9. VDAがチケット交換して証明書を受け取る
  10. VDAが仮想デスクトップに証明書でログオン

SAMLによるSSO

SAMLを使ってSSOを実現するには、事前にアイデンティティプロバイダ(Idp)とサービスプロバイダ(SP)の間で信頼関係を構築しておく必要があります。ここで紹介しているシナリオではSPであるNetScaler上でIdpであるAzure Active Directoryを、Azure Active Directory上では信頼するSPとしてNetScalerをそれぞれ登録して信頼関係を結びます。

IdpであるAzure Active Directory上にNetScaler(SP)を登録

2017_0419_1334_49

SPであるNeScaler上にAzure Active Directory(Idp)を登録

2017_0419_1348_24

アカウントについて

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”を追加しています。

2017_0423_0726_32

2017_0423_0728_42

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に対して証明書テンプレートを使い仮想スマートカード用の証明書が発行されてます。

2017_0423_0717_48

Federated Authentication Serviceの展開

Federated Authentication ServiceはXenApp/XenDesktopのメディアから別途インストールします。Federated Authentication Serviceはサービス本体とCitrx Federated Authentication Service Plug-in(FAS Plug-in)で構成されます。FAS Plug-in はStoreFrontに展開します。

fas1

Federated Authentication Service 上からWindows証明書サービスや証明書テンプレートの展開が容易に行えます。

fas2

StoreFrontはNetScalerに認証を一任

FASが有効化されると、信頼されたStoreFrontサーバーにユーザー認証の判断が委任されます。このシナリオではNetScalerがSPとして動作しますので、StoreFrontは認証の確認を更にNetScalerに一任します。これを行うためにStoreFront 上で認証方法の設定で”NetScalerに認証を委任する”設定を有効にする必要があります。

fassfns

ADFSとの連携


StoreFrontのSAMLサポート

StoreFront 3.9からNetScalerを介在させずにStoreFrontが直接SAML連携できるようになりました。詳しくはこちらのブログ記事をご覧ください。

sfsamlsupport


よくある質問

ここで紹介されている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の認証連携

Citrix NetScaler Gateway SAML Configuration Guide