Blog article

Blog article

Citrix StoreFrontにYubiOn Portal SSOを導入する

前回の記事では、Citrixデスクトップ配信環境に対して、YubiOn Portalの基本的な機能であるWindowsログオンの仕組みを実際に導入してみました。今回はCitrixデスクトップ配信を用いる際に最初に行うStoreFrontへのログイン部分をSSO化し、StoreFront自体を二要素認証によって守るという事をやってみようと思います。


なお、製品構成によってはCitrix Gatewayなどが認証を担当し、StoreFront側では「Gatewayで認証が終わっていれば認証しない」といった形式になっているかもしれません。その場合はまた異なる設定方法が必要になるのではないかと思われます。今回はあくまでラボ構成でStoreFrontに対して実験した結果となります。


■ マシン構成

前回記事の最後の時点でのマシン構成と認証の流れは以下のようになります。

今回はこの構成から、StoreFrontへのログイン部分を変更して以下のような形にします。

基本的には、YubiOn PortalのSSO設定の登録と、CitrixサーバのSAML認証設定の登録を行っていきます。


■ StoreFrontのHTTPS化

特に深く考えずにStoreFrontのインストールを進めると、恐らくHTTPSではなくHTTPでStoreFrontが動作しているのではないかと思われます。SSO連携自体は必ずしもHTTPSが必須というわけではありませんが、SSO設定をしてからHTTP→HTTPSの設定変更を行うとYubiOn Portal側の連携設定も修正する必要が出てくるため、先にStoreFront自体をHTTPS化しておく事をお勧めします。AD基盤サーバにAD CS機能を導入し、そのうえでCitrix様のWEBサイトのヘルプに従ってHTTPS化を進めます。

How to Generate and Install an SSL Certificate on a StoreFront Server for HTTPS connections

先にIISのHTTPS設定をしてからStoreFrontの機能を導入すると、細かい設定まできちんとHTTPSとして設定されます。ラボ環境などでStoreFrontを一度削除できる状況であれば、一度削除してからIISのHTTPS設定を行い、その後StoreFrontを再構成した方が早いかもしれません。


■ YubiOn Portal側の設定①

ここからの作業は、Citrix製品とのSSOメタデータ設定ファイルのやり取りが中心となるため、Citrixサーバ上で作業することをお勧めします。まずは、YubiOn Portal側でSSO App設定を一つ作成します。

この時点で、IdPとして必要な情報(IdPログインURLやIdPエンティティID、証明書など)が決定されます。最終的にはSPの情報をYubiOn Portal上で登録する必要がありますが、まずはその設定は置いておいて、IdPとしてのメタデータをダウンロードします。

最初にYubiOn Portal上でやるべき作業はここまでです。Citrix製品側の設定が終わった後、もう一度YubiOn Portal上での設定を行います。


■ Citrix StoreFront側設定

続いて、Citrix StoreFrontの設定を行っていきます。Citrix StudioのStoreFrontツリー内か、Citrix StoreFront設定アプリでまずはSAML認証を使用する設定を行っていきます。ここではCitrix Studioの方を用いています。

該当ストアの「認証方法の管理」をクリックします。

認証方法の管理ウィンドウが開くので、「SAML認証」にチェックを入れて、OKをクリックします。チェックを入れると設定項目がクリックできるようになりますが、ここでは設定する必要はありません。(後でメタデータによる設定を行うため)

ストア概要欄の「認証方法」に「SAML認証」が追加されていれば問題ありません。


ここから、YubiOn PortalのメタデータをStoreFrontに読み込ませます。メタデータ関連の操作はGUIツールでは準備されていないため、PowerShell上でのコマンドを用いた設定になります。管理者権限のあるPowerShellを開き、以下のコマンドを実行します。

asnp citrix.*
$StoreVirtualPath = "(ストアのパス)"
$Store = Get-STFStoreService -VirtualPath $StoreVirtualPath
$Auth = Get-STFAuthenticationService -StoreService $Store
Update-STFSamlIdPFromMetadata -AuthenticationService $Auth -FilePath "(メタデータフルパス)"
Set-BrokerSite -TrustRequestsSentToTheXmlServicePort $true

※ストアのパス:「/Citrix/(ストア名)」

※メタデータフルパス:YubiOn Portalからダウンロードしたメタデータファイルのフルパス


PowerShellのウィンドウはこの後再利用するので開いたままにしておいてください。コマンドを一通り実行し終わると、SAML認証のIDプロバイダー設定に必要な情報が設定されている事がCitrix Studio上でも確認できます。

メタデータを読み込む以外に特に設定をしていませんが、YubiOn PortalのログインURLや証明書などが設定されています。

次に、StoreFront側の設定を納めたメタデータを取得します。先ほどコマンドを入力したPowerShellのウィンドウで、続けて以下のコマンドを実行します。

(New-Object System.Uri $Auth.Routing.HostbaseUrl, ($Auth.VirtualPath + "/SamlForms/ServiceProvider/Metadata")).ToString()

実行結果として、StoreFrontメタデータを取得できるURLが出力されますので、ブラウザなどでそのURLにアクセスしてファイルを取得しておきます。


■ YubiOn Portal側の設定②

StoreFrontのメタデータをYubiOn Portalに読み込ませます。YubiOn PortalのSSO設定画面でSPメタデータアップロードを行います。

先ほど取得したStoreFrontメタデータファイルを選択すると確認ダイアログが表示されますので、そのままアップロードを行います。

アプリケーション設定を確認すると、StoreFrontの情報が設定されている事がわかります。

次に、ユーザーID値設定を必要に応じて修正します。StoreFrontはユーザーID値(NameID)として、ADアカウントのUPN(ユーザープリンシパル名)を要求します。登録してあるメンバーのメールアドレスがそのままUPNなのであれば、「メンバー情報」の「メンバーメールアドレス」を設定しておけば問題ありません。もしUPNとは異なるメールアドレスで登録している場合は、メンバープロパティにUPNアドレスの項目を作るなどしてStoreFrontにUPNが送られるように設定してください。


最後に、SSOアプリを利用可能なメンバーの設定を行います。設定画面右下のメンバー割り当て・グループ割り当て機能で、必要な利用者がSSOアプリにアクセスできるように割り当てを行ってください。


■ 動作確認

それでは実際の動作を行っていきます。

なお、StoreFrontはIdP-Initiated(YubiOn Portalのアプリ一覧からSSOログインを行う方法)には対応しておりません。StoreFrontのWEBアクセスURL(デフォルトだとストアURLの後ろに「Web」が付いたURL)にアクセスします。

一度StoreFrontの画面が表示されますが、すぐにYubiOn Portalのログイン画面に遷移します。

メールアドレスを入力後、YubiOn PortalのログインパスワードとYubiKeyのOTPを入力します。

すると画面が切り替わり、StoreFrontのログイン後の画面が表示されます。

デスクトップを開くと前回同様YubiOn Portalのログオン画面が表示され、ログオン時の二要素認証を求められます。


■ まとめ

ここまでの2回のブログ記事にて、Citrix社のVDI製品に対してのYubiOn Portal利用方法をお伝えさせていただきました。あくまでラボ環境での実験ではありますが、参考になりましたら幸いです。VDI製品を導入されているお客様はセキュリティについても高い意識をもたれている方が多いのではないかと思われますが、YubiOn製品がそのような方々の助けになれば、と思います。