はじめまして、Citrixコンサルティングサービスの衛藤と申します。
このBlogを読んでいただいている企業さまの中には、従業員に支給しているパソコンをよりセキュアに利用させるため、証明書を内蔵したスマートカードを使って、支給パソコンのWindowsへログオンを行っている、というケースがあるかと思います。
万が一パソコンが第三者の手に渡ったとしても、社員が携帯する物理的なスマートカードを挿入しない限りWindowsへのログオンができないため、IDとパスワードを使った認証方式より更に強固なセキュリティが期待できる仕組みです。
実際にユーザーがWindowsへログオンを行うときは、物理カードを挿入した上で、予め設定を行ったPINの入力を行うことで、パソコンを利用することが可能となります。
今回のBlogでは、Citrix Virtual Apps and Desktops環境において、そのようなスマートカードを利用したシングルサインオン(パススルー認証)について整理していきます。
まず、CitrixのVirtual Apps and Desktopsによる仮想化環境を導入した場合、ユーザーによる認証作業は一般的に以下の3回必要です。
1回目:クライアント端末(パソコン)へのログオン
2回目:
I.社内ネットワークからアクセスする場合:StoreFrontへのログオン
II.社外ネットワークからアクセスする場合:Citrix Gatewayへのログオン
3回目:仮想リソースを起動する際に行われる、仮想側Windowsへのログオン
※2回目の認証の際、アクセス元が社内ネットワーク経由か社外ネットワーク経由かによって、アクセスして認証を行うコンポーネントが異なります。本Blogではパススルー認証の検証を行うのが趣旨であり、社内ネットワークからのアクセスを前提としているため、シンプルなStoreFrontの構成を採用します。そのためCitrix Gatewayは対象外です。
これら3回のログオンを毎回ユーザーが手動で行うのは煩雑となるため、クライアント端末へのログオンを一度行うだけで、あとの2回目、3回目の認証は不要とする、パススルー認証を実現することが理想です。
また、Windowsのログオンにスマートカードを利用するために、Active Directoryのユーザープロパティーの設定で「対話型ログオン時にはスマートカードが必要」を有効としている場合があります。このときCitrixの仮想デスクトップや仮想アプリケーション(以下、仮想リソース)をユーザーが起動して利用する際の3回目の認証にもスマートカードが必要となる点が特に考慮すべきポイントとなります。
ここまでに記載した考慮点を踏まえて、スマートカードをご利用になる環境ではシングルサインオンとしての「パススルー認証」をどのように実現できるのか、検証結果をまとめていきます。
※本記事の結果は、弊社が準備を行った以下の環境により確認がとれた結果です。実際にご利用になる環境やスマートカードの種類などによって結果の差異が考えられるため、導入前には入念なPoCの実施を強く推奨致します。
<検証環境>
1.Active Directoryドメインに参加したWindows 10クライアント端末
2.Citrix Virtual Apps and Desktops 7 1912 LTSR
3.YubiKey(擬似的にスマートカードとして利用可能な製品)
→Windowsに特別なドライバーを入れることなく、スマートカードとして利用可能な製品を選択
→MicrosoftのEnterprise CAで発行したスマートカード証明書を利用
4.Windows10を使った仮想リソースの公開
<設定上の前提>
StoreFrontの設定で「ドメインパススルー」認証を有効とします。これにより、ドメインに参加した端末からのアクセスの場合、StoreFrontへの認証をSSO化することができ、StoreFrontに対するユーザーの手動ログオンが不要となります。
上記の環境を準備し、クライアント端末のWorkspace appから仮想リソースを起動した場合の挙動について、以下のパターンで確認しました。
結果は以下の通りです。
この結果からわかることを以下にまとめます。
- 仮想リソース起動時にスマートカードがクライアント端末に挿入されていれば、ユーザーはPINを再入力することなく仮想リソースを使用することが可能(パターン1,2の結果より)
- 仮想リソース起動時にスマートカードが挿入されていない場合、仮想リソースへのシングルサインオンは有効とならず、ユーザーは仮想リソース側の認証画面でスマートカードの再挿入とPINの再入力が必要(パターン3の結果より)
スマートカードを使ったパススルー認証の動作について整理をすると、クライアント端末へのログオン時に使ったPIN情報はCitrix Workspace app(以下、CWA)に格納され、仮想リソース起動時に格納されていたPINが仮想リソース側へ渡されます。
また、検証パターン3の仮想リソース起動時にカードが未挿入の場合ではログオンできない結果より、二つのことが分かります。まず、カードとPINはCitrixの処理の中ではセットで取り扱われるということです。そして次に、CWAは一度PIN情報を仮想リソース側に渡してしまうと、再びPIN情報を渡すことがなくなるため、再認証を行う際は改めてPINの入力が必要ということです。
以上、Citrix環境でスマートカードを利用する場合のパススルー認証の検証結果まとめでした。
パススルーを実現するには、仮想リソースを起動するタイミングでスマートカードが挿入されている状態である、ということが条件ということになりますが、複数回PINを再入力することが不要となるため、ユーザーのオペレーションの簡素化につなげることができるのではないでしょうか。ここまでご参考にしていただけますと幸いです。
参考URL:
- https://docs.citrix.com/ja-jp/citrix-virtual-apps-desktops/1912-ltsr/secure/smart-cards.html
- https://docs.citrix.com/ja-jp/citrix-virtual-apps-desktops/1912-ltsr/secure/smart-cards/smart-cards-deployments.html
- https://docs.citrix.com/ja-jp/citrix-virtual-apps-desktops/1912-ltsr/secure/smart-cards/smart-cards-pass-through-sso.html
- https://docs.citrix.com/ja-jp/citrix-workspace-app-for-windows/authentication.html