フェデレーション認証サービスの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サーバーが使用されるように構成し(「Federated Authentication Service」の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)を転送する必要があります。
仮想マシンの[ネットワークインターフェイス]を開いて[ネットワークセキュリティグループ]ラベルをクリックします。[受信セキュリティ規則] を構成し、適切なネットワークトラフィックを許可します。
関連情報
- FASのインストールと構成については、「Federated Authentication Service」を参照してください。
- 一般的なFAS環境については、「フェデレーション認証サービスのアーキテクチャの概要」を参照してください。
- 「フェデレーション認証サービスの構成と管理」では「方法」の記事を紹介しています。