こんにちは、Citrixコンサルタントの滝澤です。

様々な要素を認証シーケンスに取り込んで多要素認証を構成する、Citrix ADCのnFactor機能を紹介します。

複雑な設定を思い浮かべた方もいらっしゃるかもしれません。今回は、nFactorの設定概念をできるだけシンプルにわかりやすく説明します。このブログがnFactorを触る方のまずは初めのとっかかりのお役に立てれば幸いです。

nFactorを実現する各認証要素の定義をPolicy Labelと言います。このPolicy Labelをつなぎ合わせることで、要素と要素を連結させて多要素認証が成り立ちます。

Policy Labelが全体構成の中のどこに位置するか、Citrix ADCの設定定義も含めて下図で見ていきましょう。Citrix Virtual Apps and Desktops環境にユーザーがアクセスする場合のCitrix Gatewayを構成例としています。

ユーザーは、Gateway Virtual Serverに紐づくAAA Virtual Serverで認証がなされます。

最初はAAA Virtual Serverに紐づくAuthentication Policy及びActionで認証が行われ、その認証をパスすると、ネクストファクターであるPolicy Label N2に遷移し第二要素の認証が始まります、そして第三要素に続いていきます、この流れが冒頭に触れた要素と要素をつなぎ合わせて多要素認証が成り立つ仕組みです。

本ブログでは、nFactorの基本的な構成について説明しますので、どのようなPolicyやActionがあるのかという事は深くは触れませんが、一例としてLDAP認証を取り上げます。

例えば第一要素でLDAP Actionを使用してAD連携から認証を行います。ユーザーが入力する画面イメージは下図になります。このログイン画面上でのユーザーの入力項目の構成をLogin Schemaと言います。

ユーザーによって入力された情報を元に、Citrix ADCはLDAPサーバーに問い合わせを行います。

では、このLogin Schemaは設定上どのように定義されるのか、見ていきます。

Login Schemaは、ユーザーが情報を入力する枠です。ユーザーが情報を入力するタイミング毎に入力情報の内容に適したLogin Schemaを紐づけます。

サンプルとして下図を説明します、ユーザーはCitrix GatewayにアクセスするとAAA Virtual Serverに紐づくLDAP認証の画面が見えます(Login Schema_LDAP)、その認証をパスすると次のPolicy Label N2に紐づく2要素目の認証の画面に遷移します(Login Schema_xxx)。

なお、Login Schemaは様々な認証要素に合わせて外観のカスタマイズが可能です。例えば、ユーザーが見る文言やアイコンなど細かに設定をすることもできます。

Policy Labelではユーザーから情報を得るだけでなく、得た情報の判別とその後のアクションの定義も可能です。ユーザー認証フローの中にその情報判別用のPolicy Labelを組み込みます。ここでは何か値を判別する式によってフローが処理されているだけであり、ユーザーには見えません。こういった場合にはLSCHEMA_INTというLogin Schemaなしを意味するPolicy Labelを使用します。このPolicy Labelはユーザーには見せない処理です。

イメージが付きにくいかもしれませんので、こちらも簡単に一例をご紹介します。

例えば、LDAP認証するユーザーの特定のアトリビュート(例:mobile属性)を入手するようにLDAP Actionに設定ができます。LDAPサーバーに格納されているmobile属性の値から電話番号を取得したとします。その電話番号の国番号(+81)の有無で次に進むべきPolicy Labelが変わる場合に、値判別のためのPolicy LabelとしてLSCHEMA_INTのPolicy Labelが有用です。

(併せてこちらのブログもご覧いただくと理解の助けになるかもしれません)

つまり、ユーザーから得る情報を判別、そしてその情報を元に認証フローを分岐させたい場合には、このLSCHEMA_INTを使い実装します。

nFactorが認証フローの中でどう定義されていてどのように働くかを紹介させていただきました。実際の案件例では、上記にて少し触れたLDAP認証+ネイティブOTPや、LDAP認証+E-mail OTP、Citrix Gatewayが受信するHTTPリクエストヘッダーからOS情報(WindowsかiPhone/iPad)を判別してその結果によりフローを分岐させる、などなど様々な環境の要件に対応しています。複雑な要件での安全な導入に向けて、是非弊社コンサルティングサービスの活用もご検討いただければ幸いです。