フェデレーション認証サービスのAzure ADの統合

はじめに

このドキュメントでは、Citrix環境をWindows 10 Azure AD機能と統合する方法について説明します。

Windows 10が導入したAzure ADは、ドメイン参加の新しいモデルです。これを利用すれば、管理とシングルサインオンの目的で、ローミングラップトップを、インターネット上で企業ドメインに参加させることができます。

このドキュメントで例として示した展開では、新規ユーザーのWindows 10ラップトップに会社のメールアドレスと登録コードが提供されるシステムを説明しています。ユーザーは [設定] パネルの [システム] > [バージョン情報] > [Azure ADに参加] から、このコードにアクセスします。

ローカライズされた画像

ラップトップが登録されると、Microsoft EdgeのWebブラウザーは、Azure SaaSアプリケーションのWebページから、会社のWebサイトやCitrixの公開アプリケーション、およびOffice 365などのAzureアプリケーションに自動的にサインオンします。

ローカライズされた画像

アーキテクチャ

このアーキテクチャでは、Azure ADやOffice 365などの最新クラウドテクノロジとの統合により、従来の企業ネットワークがAzure内に完全に複製されます。すべてのエンドユーザーがリモートワーカーと見なされ、社内イントラネット上にはエンドユーザーが存在しないというコンセプトです。

Azure AD Connectの同期サービスが、インターネット上でAzureへの橋渡しとして機能するため、既存のオンプレミスシステムを持つ企業はこのモデルを適用することができます。

ローカライズされた画像

セキュアな接続やシングルサインオンといえば、従来はファイアウォールで保護されたLANや、Kerberos認証およびNTLM認証でしたが、このアーキテクチャでは、AzureへのTLS接続およびSAMLがこれらに取って代わります。AzureアプリケーションのAzure ADへの参加により、新しいサービスが生み出されています。Active Directoryを必要とする既存のアプリケーション(SQL Serverデータベースなど)は、AzureクラウドサービスのIaaS部分にある、標準的なActive Directoryサーバーの仮想マシンを使用して実行できます。

ユーザーが従来のアプリケーションを起動すると、XenAppおよびXenDesktopの公開アプリケーションを使用してアクセスします。Microsoft Edgeのシングルサインオン機能を使用して、ユーザーの [Azureアプリケーション] ページからさまざまな種類のアプリケーションが照合されます。また、Microsoftは、Azureアプリケーションの一覧表示と起動ができるAndroidおよびiOSアプリを提供しています。

DNSゾーンの作成

Azure ADでは、管理者がパブリックDNSアドレスを登録し、ドメイン名サフィックスの委任ゾーンを管理する必要があります。これを実行するために、管理者はAzure DNSゾーン機能を使用できます。

この例では、DNSゾーン名「citrixsamldemo.net」を使用します。

ローカライズされた画像

コンソールにAzure DNSネームサーバーの名前が表示されます。これらはゾーンのDNS登録のNSエントリで参照する必要があります(例:citrixsamldemo.net. NS n1-01.azure-dns.com)。

Azureで実行される仮想マシンへの参照を追加する場合は、CNAMEポインターを、Azureが管理する仮想マシンのDNSレコードに使用するのが最も簡単です。仮想マシンのIPアドレスが変更されている場合は、DNSゾーンファイルを手動で更新する必要はありません。

内部および外部のDNSアドレスサフィックスは、この展開に一致します。ドメインはcitrixsamldemo.netで、スプリットDNS(内部で10.0.0.*)を使用します。

Webアプリケーションプロキシサーバーを参照する、「fs.citrixsamldemo.net」エントリを追加します。これがこのゾーンのフェデレーションサービスです。

クラウドサービスの作成

この例では、Azureで実行されるADFSサーバーが設置されたAD環境を含む、Citrix環境を構成します。クラウドサービスを作成し、「citrixsamldemo」と名づけます。

ローカライズされた画像

Windows仮想マシンの作成

クラウドサービスで実行されるWindows仮想マシンを5台作成します。

  • ドメインコントローラー(domaincontrol)
  • Azure Connect ADFSサーバー(adfs)
  • ADFS Webアクセスプロキシ(ドメインに参加していないWebアプリケーションプロキシ)
  • Citrix XenDesktop Delivery Controller(ddc)
  • Citrix XenDesktop Virtual Delivery Agent(vda)

ローカライズされた画像

ドメインコントローラー

  • DNSサーバーおよびActive Directoryドメインサービスの役割を追加し、標準的なActive Directory展開を作成します(この例では、citrixsamldemo.net)。ドメインの昇格が完了したら、Active Directory証明書サービスの役割を追加します。
  • テスト用に通常のユーザーアカウントを作成します(例:George@citrixsamldemo.net)。
  • このサーバーでは内部DNSが実行されるため、すべてのサーバーはDNS解決にこのサーバーを参照する必要があります。これは、[Azure DNS設定] ページで行います。(詳しくは、このドキュメントの付録を参照してください。)

ADFSコントローラーとWebアプリケーションプロキシサーバー

  • ADFSサーバーをcitrixsamldemoドメインに参加させます。Webアプリケーションプロキシサーバーは、分離されたワークグループにとどまる必要があるため、AD DNSでDNSアドレスを手動で登録します。
  • これらのサーバーでEnable-PSRemoting –Forceコマンドレットを実行して、Azure AD Connectツールからファイアウォール経由のPSリモーティングを有効にします。

XenDesktop Delivery ControllerとVDA

  • XenAppまたはXenDesktop Delivery Controller、およびVDAを、citrixsamldemoに参加した残り2台のWindowsサーバーにインストールします。

内部DNSの構成

ドメインコントローラーのインストール後にDNSサーバーを構成し、citrixsamldemo.netの内部ビューを処理し、外部DNSサーバーに対してフォワーダーとして機能するように設定します(例:8.8.8.8)。

ローカライズされた画像

静的なレコードを追加します。

  • wap.citrixsamldemo.net[Webアプリケーションプロキシの仮想マシンはドメインに参加しません]
  • fs.citrixsamldemo.net[内部フェデレーションサーバーのアドレス]
  • enterpriseregistration.citrixsaml.net[fs.citrixsamldemo.netと同じ]

Azureで実行されるすべての仮想マシンは、このDNSサーバーのみを使用するように構成する必要があります。これは、ネットワークインターフェイスGUIから実行できます。

ローカライズされた画像

デフォルトでは、内部IP(10.0.0.9)アドレスは動的に割り当てられます。IPアドレスの設定を使用して、IPアドレスを永続的に割り当てることができます。これは、Webアプリケーションプロキシサーバーとドメインコントローラーで実行する必要があります。

外部DNSアドレスの構成

仮想マシン実行時に、Azureは、仮想マシンに割り当てられた現在のパブリックIPアドレスを指す自身のDNSゾーンサーバーを維持します。Azureはデフォルトで各仮想マシンの起動時にIPアドレスを割り当てるため、この便利な機能を有効にします。

ローカライズされた画像

この例では、DNSアドレスdomaincontrol-citrixsamldemo.westeurope.cloudapp.azure.comを、ドメインコントローラーに割り当てています。

リモート構成の完了時にパブリックIPアドレスを有効にする必要があるのは、WebアプリケーションプロキシとNetScaler仮想マシンだけである点に注意してください。(構成では、環境へのRDPアクセスにパブリックIPアドレスが使用されます)。

セキュリティグループの構成

Azureクラウドは、セキュリティグループを使用して、インターネットから仮想マシンへのTCPおよびUDPアクセスのファイアウォールルールを管理します。デフォルトでは、すべての仮想マシンでRDPアクセスが許可されます。また、NetScalerおよびWebアプリケーションプロキシサーバーでは、ポート443でTLSを許可する必要があります。

ローカライズされた画像

ADFS証明書の作成

Microsoft証明機関(CA)でWebサーバー証明書テンプレートを有効にします。これにより、PFXファイルにエクスポート(秘密キーも含む)できる、カスタムDNSアドレスを持つ証明書を作成できます。PFXファイルを優先オプションにするには、この証明書をADFSとWebアプリケーションプロキシサーバーの両方にインストールする必要があります。

次のサブジェクト名を使用して、Webサーバー証明書を発行します:

  • Commonname:
    • Adfs.citrixsamldemo.net[コンピューター名]
  • SubjectAltname:
    • *.citrixsamldemo.net [ゾーン名]
    • fs.citrixsamldemo. net [DNSのエントリ]
    • enterpriseregistration.citrixsamldemo.net

ローカライズされた画像

パスワードで保護された秘密キーを含め、証明書をPFXファイルにエクスポートします。

Azure ADのセットアップ

このセクションでは、新しいAzure ADインスタンスをセットアップして、Windows 10をAzure ADに参加させるために使用できるユーザーIDを作成する方法について説明します。

新しいディレクトリの作成

Azureクラシックポータルにログオンして、新しいディレクトリを作成します。

ローカライズされた画像

完了すると、概要ページが表示されます。

ローカライズされた画像

グローバル管理者ユーザー(AzureAdmin)の作成

Azureのグローバル管理者を作成し(この例ではAzureAdmin@citrixsamldemo.onmicrosoft.com)、新しいアカウントでログオンしてパスワードをセットアップします。

ローカライズされた画像

Azure ADを使用したドメインの登録

デフォルトでは、ユーザーは次の形式のメールアドレスで識別されます:<user.name>@<company>.onmicrosoft.com

これは追加の構成なしで機能しますが、エンドユーザーのメールアカウントと一致する、次の標準形式のメールアドレスをお勧めします:<user.name>@<company>.com

[ドメインの追加] で、ユーザーの会社のドメインからのリダイレクトを構成します。この例ではcitrixsamldemo.netを使用します。

ADFSをシングルサインオンにセットアップしている場合は、チェックボックスにチェックマークを入れます。

ローカライズされた画像

Azure AD Connectのインストール

Azure AD構成GUIの手順2により、Azure AD ConnectのMicrosoftダウンロードページにリダイレクトされます。これをADFS仮想マシンにインストールします。[簡単設定] ではなく [カスタムインストール] を使用し、ADFSのオプションが利用できるようにします。

ローカライズされた画像

[AD FSとのフェデレーション] シングルサインオンオプションを選択します。

ローカライズされた画像

あらかじめ作成した管理アカウントでAzureに接続します。

ローカライズされた画像

内部ADフォレストを選択します。

ローカライズされた画像

Active Directoryの従来のオブジェクトをすべてAzure ADと同期します。

ローカライズされた画像

ディレクトリ構造がシンプルな場合は、ユーザー名の一意性に依存して、ログオンするユーザーを識別することができます。

ローカライズされた画像

デフォルトのフィルタリングオプションを使用するか、あるいはユーザーとデバイスを特定のグループセットに制限します。

ローカライズされた画像

必要に応じて、Azure ADパスワードをActive Directoryと同期することができます。これは、通常、ADFSベースの認証では必要ありません。

ローカライズされた画像

証明書のPFXファイルをAD FSで使用するように選択します。DNS名としてfs.citrixsamldemo.netを指定します。

ローカライズされた画像

プロキシサーバーの選択を求める画面が表示されたら、wap.citrixsamldemo.netサーバーのアドレスを入力します。Azure AD Connectが構成できるよう、Webアプリケーションプロキシサーバーの管理者としてEnable-PSRemoting –Forceコマンドレットを実行する必要がある場合があります。

ローカライズされた画像

注: Remote PowerShellの信頼性の問題でこの手順に失敗した場合は、Webアプリケーションプロキシサーバーをドメインに参加させてみてください。

ウィザードの残りの手順については、標準の管理者パスワードを使用して、ADFSのサービスアカウントを作成します。Azure AD Connectにより、DNSゾーンの所有権の検証が求められます。

ローカライズされた画像

TXTレコードとMXレコードをAzureのDNSアドレスレコードに追加します。

ローカライズされた画像

Azure管理コンソールで [検証] をクリックします。

ローカライズされた画像

注: この手順に失敗した場合は、Azure AD Connectを実行する前にドメインを検証します。

完了すると、外部アドレスfs.citrixsamldemo.netがポート443で接続されます。

ローカライズされた画像

Azure ADへの参加の有効化

Windows 10がAzure ADへの参加を実行するよう、メールアドレスを入力すると、ADFSを指す必要があるCNAME DNSレコードの作成にDNSサフィックスが使用されます(enterpriseregistration.<upnsuffix>)。

この例ではfs.citrixsamldemo.netです。

ローカライズされた画像

パブリックCAを使用していない場合は、WindowsがADFSサーバーを信頼するよう、ADFSのルート証明書をWindows 10コンピューターにインストールします。あらかじめ生成された標準のユーザーアカウントを使用して、Azure ADドメインに参加します。

ローカライズされた画像

UPNは、ADFSドメインコントローラーで認識されるUPNと一致する必要があることに注意してください。

ローカライズされた画像

ローカライズされた画像

ローカライズされた画像

メールアドレスを使用してマシンの再起動とログオンを行い、Azure ADへの参加が正常に行われたことを検証します。ログオンするとMicrosoft Edgeが起動してhttps://myapps.microsoft.comに接続します。このWebサイトでは、シングルサインオンが自動的に使用されます。

XenAppまたはXenDesktopのインストール

通常の方法で、XenAppまたはXenDesktop ISOから、Delivery ControllerおよびVDA仮想マシンをAzureに直接インストールすることができます。

この例では、StoreFrontはDelivery Controllerと同じサーバーにインストールされています。VDAはスタンドアロンのWindows 2012 R2用RDSワーカーとしてインストールされ、Machine Creation Servicesとは統合していません(ただしオプションで構成することができます)。作業を続行する前に、ユーザーGeorge@citrixsamldemo.netがパスワードで認証できることを確認します。

ローカライズされた画像

StoreFrontがユーザー資格情報なしに認証できるよう、Set-BrokerSite –TrustRequestsSentToTheXmlServicePort $true PowerShellコマンドレットをControllerで実行します。

フェデレーション認証サービスのインストール

フェデレーション認証サービス(FAS)コンポーネントをADFSサーバーにインストールしてControllerのルールを構成し、信頼されたStoreFrontとして機能するように設定します。

ローカライズされた画像

ローカライズされた画像

StoreFrontの構成

Delivery Controllerのコンピューター証明書を要求します。また、ポート443にIISバインドを設定し、StoreFrontのベースアドレスをhttps:に変更して、IISおよびStoreFrontでHTTPSが使用されるように構成します。

ローカライズされた画像

StoreFrontでFASサーバーが使用されるように構成し(「フェデレーション認証サービス」のPowerShellスクリプトを使用します)、Azure内で内部テストを行います。FASサーバーのイベントビューアーをチェックして、ログオンにFASが使用されることを確認します。

ローカライズされた画像

StoreFrontがNetScalerを使用するように構成

StoreFront管理コンソールの [認証方法の管理] GUIを使用して、StoreFrontが認証にNetScalerを使用するよう構成します。

ローカライズされた画像

NetScaler認証オプションを統合するには、Secure Ticket Authority(STA)の構成およびNetScaler Gatewayアドレスの構成を行います。

ローカライズされた画像

新しいAzure ADアプリケーションをStoreFrontへのシングルサインオンに構成

このセクションでは、Azure AD SAML 2.0シングルサインオン機能を使用します。現在は、Azure Active Directoryプレミアムサブスクリプションが必要です。Azure AD管理ツールで [新しいアプリケーション] を選択し、[ギャラリーからアプリケーションを追加します] を選択します。

ローカライズされた画像

[カスタム]カテゴリの[私の組織で使用している、一覧にないアプリケーションを追加] を選択して、ユーザーが使用する新しいカスタムアプリケーションを作成します。

アイコンの構成

縦横215ピクセルの画像を作成して[構成]ページにアップロードし、アプリケーションのアイコンとして使用します。

ローカライズされた画像

SAML認証の構成

アプリケーションダッシュボードの概要ページに戻り、[シングルサインオンの構成] を選択します。

ローカライズされた画像

この展開では、[Microsoft Azure ADのシングルサインオン] に対応するSAML 2.0認証を使用します。

ローカライズされた画像

[識別子] には任意の文字列を指定できます(NetScalerに提供された構成と一致する必要があります)。この例では、[応答URL] がNetScalerサーバーの/cgi/samlauthになっています。

ローカライズされた画像

次のページには、NetScalerをAzure ADの証明書利用者として構成するために使用される情報が含まれています。

ローカライズされた画像

Base 64の信頼された署名証明書をダウンロードして、サインオンURLとサインアウトURLをコピーします。これらをNetScalerの[構成]画面にペーストします。

ユーザーへのアプリケーションの割り当て

最後の手順では、アプリケーションを有効にして、ユーザーの「myapps.microsoft.com」コントロールページにアプリケーションが表示されるようにします。これは[ユーザーとグループ]ページで行います。Azure AD Connectが同期したドメインユーザーアカウントへのアクセスを割り当てます。ほかのアカウントも使用できますが、<user>@<domain>パターンに従っていないため、明示的にマップする必要があります。

ローカライズされた画像

MyAppsページ

アプリケーションが構成されると、https://myapps.microsoft.comで、Azureアプリケーションのユーザー一覧に表示されます。

ローカライズされた画像

Azure ADに参加している場合、ログオンしたユーザーは、Windows 10により、Azureアプリケーションへのシングルサインオンがサポートされます。アイコンをクリックすると、ブラウザーは前に構成したSAML cgi/samlauth Webページに移動します。

シングルサインオンURL

Azure ADダッシュボードのアプリケーションに戻ります。アプリケーションに利用できるシングルサインオンURLがあることを確認します。このURLは、Webブラウザーリンクの提供や、StoreFrontに直接移動するための、スタートメニューのショートカットの作成に使用されます。

ローカライズされた画像

このURLをWebブラウザーにペーストして、前に構成したNetScaler cgi/samlauth Webページに、Azure ADがリダイレクトするようにします。これが機能するのは、割り当てられたユーザーだけです。また、シングルサインオンが利用できるのは、Windows 10のAzure ADに参加しているログオンセッションだけです。(そのほかのユーザーには、Azure ADの資格情報の入力が求められます。)

NetScaler Gatewayのインストールと構成

この例では、展開へのリモートアクセスに、NetScalerを実行する独立した仮想マシンを使用します。仮想マシンはAzureストアで購入できます。この例では、NetScaler 11.0の「Bring your own License」バージョンを使用しています。

ローカライズされた画像

Webブラウザーのアドレスバーに内部IPアドレスを入力し、ユーザー認証の際に指定された資格情報を使用して、NetScaler仮想マシンにログオンします。Azure AD仮想マシンのnsrootユーザーのパスワードを変更する必要があることに注意してください。

ライセンスを追加し、各ライセンスファイルが追加されたら [再起動] を選択して、DNSリゾルバーがMicrosoftドメインコントローラーをポイントするようにします。

XenAppおよびXenDesktopセットアップウィザードの実行

この例では、SAMLを使用しない、シンプルなStoreFront統合を構成することから始めます。この展開が機能するようになってから、SAMLのログオンポリシーが追加されます。

ローカライズされた画像

NetScalerおよびStoreFrontの標準設定を選択します。Microsoft Azureでの使用のため、この例ではポート443ではなく、ポート4433を構成します。あるいは、ポート転送したり、NetScaler管理Webサイトを再マップしたりすることもできます。

ローカライズされた画像

この例では、簡単にするために、ファイルに保存された既存のサーバー証明書と秘密キーをアップロードします。

ローカライズされた画像

ADアカウント管理のためのドメインコントローラーの構成

ドメインコントローラーはアカウント解決に使用されるため、そのIPアドレスをプライマリ認証方法に追加します。ダイアログボックスの各フィールドで求められる形式に注意してください。

ローカライズされた画像

StoreFrontアドレスの構成

この例では、HTTPSを使用してStoreFrontが構成されているため、SSLプロトコルのオプションを選択します。

ローカライズされた画像

NetScalerの展開を検証

NetScalerに接続し、ユーザー名とパスワードを使用して、認証と起動が正常に行われることを確認します。

ローカライズされた画像

NetScaler SAML認証サポートの有効化

StoreFrontでのSAMLの使用は、ほかのWebサイトでSAMlを使用するのと同様です。NS_TRUEの式を使用して、新しいSAMLポリシーを追加します。

ローカライズされた画像

Azure ADから前に取得した情報を使用して、新しいSAML IdPサーバーを構成します。

ローカライズされた画像

エンドツーエンドシステムの検証

Azure ADに登録したアカウントを使用して、Azure ADに参加しているWindows 10デスクトップにログオンします。Microsoft Edgeを起動し、https://myapps.microsoft.comに接続します。

Webブラウザーには、ユーザーのAzure ADアプリケーションが表示されます。

ローカライズされた画像

アイコンをクリックすると認証されたStoreFrontサーバーにリダイレクトされることを確認します。

同様に、シングルサインオンURLを使用した直接接続、およびNetScalerのサイトへの直接接続により、Microsoft Azureとの間でリダイレクトされることを確認します。

最後に、Azure ADに参加していないマシンも同じURLで動作することを確認します(ただし、最初の接続時に、Azure ADへの明示的なサインオンが1回行われます)。

付録

Azureで仮想マシンをセットアップする場合は、構成に必要な標準オプションがいくつかあります。

パブリックIPアドレスとDNSアドレスの入力

Azureは内部サブネット上で、すべての仮想マシンにIPアドレスを提供します(この例では10.*.*.*)。デフォルトでは、動的に更新されたDNSラベルで参照できる、パブリックIPアドレスも提供されます。

ローカライズされた画像

[パブリックIPアドレス/DNS名] ラベルの [構成] を選択します。仮想マシンのパブリックDNSアドレスを選択します。これは、ほかのDNSゾーンファイルでのCNAME参照に使用でき、IPアドレスが再割り当てされた場合も、すべてのDNSレコードが正しく仮想マシンをポイントするようにします。

ローカライズされた画像

ファイアウォールルールのセットアップ(セキュリティグループ)

クラウド上の各仮想マシンには、自動的に適用されたファイアウォールルールのセットがあり、このセットはセキュリティグループとして知られています。セキュリティグループはパブリックIPアドレスからプライベートIPアドレスに転送されるトラフィックを制御します。デフォルトでは、Azureはすべての仮想マシンへのRDPの転送を許可します。また、NetScalerサーバーおよびADFSサーバーは、TLSトラフィック(443)を転送する必要があります。

仮想マシンの [ネットワークインターフェイス] を開いて [ネットワークセキュリティグループ] ラベルをクリックします。[受信セキュリティ規則] を構成し、適切なネットワークトラフィックを許可します。

ローカライズされた画像

関連情報