Citrixフェデレーション認証サービスのログオン証拠の概要
はじめに
Federated Authentication Service(FAS)はActive Directory証明機関(CA)と統合して、Citrix環境内でのシームレスなユーザー認証を実現するCitrixコンポーネントです。FAS のアーキテクチャと展開については、「フェデレーション認証サービスのドキュメント」を参照してください。
パスワードやスマートカードを必要とせずに、ユーザーがVDA(または公開アプリ)にシングルサインオンできるようにFASを展開できます。FASログオン証拠機能は、Citrix Gateway およびStoreFront によってFASに渡されるログオン証拠を提供します。FASは証拠を検証して、信頼できるIDプロバイダ(IdP)によって発行されたことを確認できます。
この資料では、FASログオン証拠機能を構成する方法について説明します。
概要
FASトラスト
FASインフラストラクチャには、Citrix Gateway(NSG)、StoreFront(SF)、FASの間の「信頼チェーン」が含まれます。各矢印は、 信頼するコンポーネントから *信頼される コンポーネントを指しています* 。
これらの各コンポーネント間で信頼される重要なデータは、システムにアクセスするユーザーのユーザープリンシパル名 (UPN) です。UPN は、(矢印の反対方向に) リンクを通って流れます。UPN は、システム内を流れるように別の UPN に変換することもできますが、このトピックとは直接関係ありません。
ID プロバイダー (IdP) は、ユーザーが認証する場所です。IdP は、多くの場合、Okta や Azure などのサードパーティ Web サイトです。ユーザーは、認証情報のセット (パスワードやより複雑なものなど) を提供することによって IdP で認証されます。チェーンに沿ったコンポーネントは、コンポーネント間の信頼チェーンのために UPN が本物であることを受け入れます。
信頼は次の方法で確立されます。上の図では、1、2、3 というラベルが付いています。
(1)Citrix Gateway またはStoreFront は、署名された要求(ユーザーのUPNを示す要求)を含むプロトコルを使用してIdPを信頼します。信頼する側は、IdP によって行われた要求を検証できます。これは、署名の有効性を確認するために使用する証明書で構成されているためです。検証には、SAML (セキュリティーアサーションマークアップ言語) と OpenID Connect の 2 つの主要なプロトコルが使用されます。ログオン証拠機能は、現在 SAML のみをサポートしています。
(2)この信頼は、信頼されるCitrix Gateway の詳細を使用してStoreFront を構成することによって確立されます。これらのコンポーネント間のプロトコル「CitrixAgBasic」を使用すると、StoreFrontで、信頼されたCitrix Gateway から呼び出されていることを確認できます。
(3) この信頼は Kerberos を使用して確立されます。FASは、信頼されるStoreFront サーバーのリストを使用して構成されます。Kerberosは、呼び出し元のStoreFront サーバーのIDがこのリストに含まれていることを確認するために使用されます。
セキュリティ
セキュア認証は、正しく確立された信頼チェーンに依存します。信頼チェーンは、セキュアな認証の信頼のルートである IdP によって提供される証拠を検証することによって強化されます。信頼チェーンを介してFASに提供されるユーザー資格証明にはユーザー名(UPN)が含まれますが、FAS自体が検証できる秘密(パスワードなど)は含まれていないため、これは重要です。したがって、パスワードの公開は IdP に限定されます。ほとんどのフェデレーション認証システムは、FASを含むこの方法で動作します。
ログオンの証拠
FASログオン証拠機能は、FAS展開におけるセキュリティ保証を強化します。これにより、FASへのアクセスを許可または拒否するルールを定義できます。
ログオン証拠(または単に「証拠」)は、ユーザーの認証時に IdP によって作成されるデータです。このデータは UPN と共に、システム全体に流れます。VDAの起動時に、FASは証拠が有効であることを確認してから、起動を続行できます。
現在、SAML をサポートする IdP のみがサポートされています。証拠は SAML 応答であり、IdP によって署名された一連のクレームを含む XML ドキュメントです。(IdP は認証の信頼のルートです)。
FASプラグイン
FASには、ログオンの証拠が有効であることを確認する機能が組み込まれていません。代わりに、FASアサーションSDKを使用して独自のFASプラグインを作成する必要があります。プラグインは、提供された UPN と証拠 (SAML 応答) のチェックを担当します。
ログオン証拠収集を構成する
手順 1-配置を作成する
通常どおり、Citrix Gateway、StoreFront、およびFASを使用して展開を作成します。IdPに対してSAML認証を使用するように、Citrix Gateway またはStoreFront を構成します。
重要:
Citrix Gatewayを使用している場合は、Citrix Gatewayの詳細を使用してStoreFront を構成するときに、 コールバックURL を構成 する必要があります 。これは、ログオン証拠がコールバックを介して送信されるためです。
ログオンの種類 を「スマートカード」に設定することをお勧めします。これにより、ネイティブクライアントがSAML認証を実行しやすくなります。
配置が正しく機能していることを確認します。つまり、VDAで資格情報の入力を求められずにVDAセッションにログインして起動できることを確認します。
手順2-サンプルFASアサーションプラグインをインストールする
FAS Assertion SDKには、独自のプラグインのベースとして使用できるサンプルプラグインが含まれています。
注:
変更を加えずにサンプルプラグインをインストールすることを強くお勧めします。
プラグインのインストール手順については、FASアサーションSDKに付属の Readme.txtファイルを参照してください。
手順3-FASアサーションプラグインが動作していることを確認する
プラグインのインストール後、追加のイベントがFASサーバーのイベントログのWindowsログ/アプリケーションセクションに書き込まれます。ログとトレースの説明については、FASアサーションSDKを参照してください。
手順4-Citrix Gatewayで証拠収集を有効にする
認証にCitrix Gateway を使用している場合は、証拠がCitrix GatewayからStoreFront に送信されるように、証拠収集機能を有効にする必要があります。これを行うには、Citrix ADC管理コンソールを使用して、Gateway サーバーの「SAMLレスポンスの保存」オプションを有効にします。「SAML認証」を参照してください。
手順5-StoreFront で証拠収集を有効にする
注:
ログオン証拠を有効にする場合は、FASサーバー上にFASアサーションプラグインモジュールを展開する必要があります。
デフォルトでは、StoreFront はFASに証拠を送信しません(SAML認証が構成されている場合でも)。StoreFront でログオン証拠の使用を有効にするには、Storeという名前のストアに関連付けられた認証サービスで有効にします。
Get-Module "Citrix.StoreFront.* –ListAvailable | Import-Module
$StoreName = "Store" $StoreVirtualPath = "/Citrix/" + $StoreName $store = Get-STFStoreService –VirtualPath $StoreVirtualPath $auth = Get-STFAuthenticationService –StoreService $store
$auth.AuthenticationOptions.CollectFasEvidence = $true
$auth.Save()
<!--NeedCopy-->
手順6-サンプルFASアサーションプラグインの変更
サンプルプラグインのスケルトンコードは、証拠を受け入れます。サンプルのコードを更新して、提供されたログオン証拠 (SAML 応答) が有効であることを確認します。
提供された証拠が確認されていることを確認することは、お客様の責任です。次の点を考慮してください。
-
SAML クレームに暗号的に有効な署名があるかどうかの確認
-
SAML クレームが IdP の証明書で署名されていることの確認
-
SAML 要求内の UPN が、表示されている UPN に対応しているかどうかの確認
-
請求が許容可能な期間内に発行されたことを確認する(「許容可能」の判断はお客様次第です)
StoreFront認証SDK
StoreFront 認証SDKを使用して、証拠データの高度なカスタマイズを実行できます。詳しくは、SDK で提供されている、またはhttps://developer-docs.citrix.com/で入手可能なドキュメント「Custom Federated Logon Service Sample 1811.pdf」を参照してください。
関連情報
- Citrix フェデレーション認証サービスのドキュメント
- StoreFront のPowerShell SDKのドキュメント
- https://www.citrix.com/downloads/citrix-virtual-apps-and-desktops/のCitrix Federated Authentication Service Assertion SDK