最初の要素でWebAuthを使用し、2番目の要素でパスワードを変更してLDAPを使用するCitrix Gateway のnFactorを構成する
次の大まかな手順では、最初の要素でWebAuthを使用するCitrix Gateway のnFactorを構成し、2番目の要素でパスワードを変更してLDAPを構成しています。
-
IP がゼロの認証仮想サーバを設定します。認証仮想サーバーに証明書をバインドすることは必須ではありません。
-
認証仮想サーバー名を使用して認証プロファイルを構成します。
-
VPN 仮想サーバを設定します。
-
この VPN 仮想サーバーで認証プロファイルを設定します。
-
WebAuth アクションとポリシーを設定します。
-
LDAP アクションとポリシーを設定します。
-
LDAP ファクタのログインスキーマアクションを設定します。
-
LDAP ファクタのログインスキーマアクションを使用して、LDAP ファクタのポリシーラベルを設定します。
-
LDAP ポリシーを LDAP ポリシーラベルにバインドします。
-
次の要素として LDAP ポリシーラベルを使用して、WebAuth ポリシーを認証仮想サーバにバインドします。
機能
-
ユーザーがブラウザでCitrix Gateway のFQDNを入力すると、/logonpoint/tmindex.htmlページにリダイレクトされます。
-
このページには、認証仮想サーバーにバインドされているログイン・スキーマが表示されます。認証仮想サーバーにバインドされたログインスキーマがない場合(この設定など)、デフォルトのスキーマが表示されます。
-
ユーザーは、最初の要素(この場合は WebAuth)の資格情報を入力します。
-
Citrix Gateway は、WebAuthアクションをチェックし、WebAuthサーバーに接続します。これは、WebAuthサーバーにパラメータfullReqExprに記載されたHTTP要求を送信します。webAuth サーバの応答が、WebAuth アクションの successRule パラメータで指定された式を満たしている場合、このポリシーはパスします。
-
今、Citrix Gateway は、第二の要因に移動します. 次の要素としてバインドされているポリシーラベル LDAP_factor の設定をチェックします。このポリシーラベルにはloginSchemaが含まれているため、Citrix Gateway はそのXMLスキーマをクライアントに送信します。
-
クライアントはスキーマを受信し、2 番目の要素認証用の LDAP クレデンシャルを入力します。
-
Citrix Gateway は、LDAPサーバーにアクセスしようとし、クライアントの資格情報が正しいかどうかを検証します。正しい場合は、認証フェーズが完了し、設定された VPN モードにログインします。
次の図に、nFactor 認証シーケンスを示します。最初の要素は WebAuth で、2 番目の要素は LDAP です。
CLI を使用した設定
-
認証仮想サーバを設定します。
add authentication vserver auth1 ssl <!--NeedCopy-->
GUI で、[セキュリティ]>[AAA-アプリケーショントラフィック]>[仮想サーバ] に移動し、[追加] をクリックします。
-
認証プロファイルを設定します。
add authnProfile auth_profile –authnVsname auth1 <!--NeedCopy-->
GUIで、[セキュリティ]>[AAA-アプリケーショントラフィック]>[認証プロファイル] に移動し、[追加] をクリックします。
-
VPN 仮想サーバを設定します。
add vpn vserver vpn1 ssl 10.1.1.1 443 add ssl certkey ckp –cert test.cer –key test.key bind ssl vserver vpn1 –certKey ckp <!--NeedCopy-->
[Citrix Gateway]>[仮想サーバー] に移動し、[追加] をクリックします。
VPN 仮想サーバーが作成されたら、証明書を同じにバインドします。
VPN 仮想サーバーでの認証プロファイルの設定
set vpn vserver vpn1 –authnProfile auth_profile <!--NeedCopy-->
-
WebAuth アクションとポリシーを設定します。
アプリケーションエキスパート > 式 > 高度な式に移動します。
add policy expression post_data ""myusername=" + http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" + http.REQ.BODY(3000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")" <!--NeedCopy-->
add policy expression length_post_data "("myusername=" + http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("login=").BEFORE_STR("&") + "&mypassword=" + \http.REQ.BODY(1000).SET_TEXT_MODE(IGNORECASE).AFTER_STR("passwd=")).length" <!--NeedCopy-->
CLI を使用した Nfactor の設定:
add authentication webAuthAction webAuth_action -serverIP 10.102.39.132 -serverPort 443 -fullReqExpr q{"POST /customAuth.aspx HTTP/" + http.req.version.major + "." + http.req.version.minor + "\r\nAccept: \*/\*\r\nHost: 10.102.39.132\r\nUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)\r\nContent-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: " + length_post_data + "\r\nConnection: Keep-Alive\r\n\r\n" + post_data} -scheme https -successRule "http.RES.STATUS.EQ(200)" add authentication policy webAuth_policy –rule TRUE –action webAuth_action <!--NeedCopy-->
以前に設定された webAuth アクションでは、2 つのポリシー式が使用されます。1 つのポリシー式 (post_data) が POST 本文を作成します。もう一方の(length_post_data)は、POSTリクエストのコンテンツLengthヘッダーを入力するために使用されるPOST本体の長さを計算します。
POST 本体を作成するポリシー式は、ログイン要求を解析し、ユーザーが入力したユーザー名とパスワードを抽出します。次に、ログイン要求から抽出されたユーザー名パスワードを使用して、WebAuth サーバーが期待する形式で POST 本文を作成します。
最後に、WebAuthアクションは、WebAuthサーバに送信される以下の要求を作成します。
POST /customAuth.aspx HTTP/1.1 Accept: \*/\* Host: 10.102.39.132 Accept-Language: en-US User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) Content-Type: application/x-www-form-urlencoded Content-Length:43 Connection: Keep-Alive myusername=test_user&mypassword=test_passwd <!--NeedCopy-->
-
パスワード変更の LDAP アクションとポリシーを設定します。
add authentication ldapAction ldap_action -serverIP 10.102.39.133 -serverPort 636 -secType SSL -ldapBase "dc=domain,dc=com" -ldapBindDn administrator -ldapBindDnPassword password -ldapLoginName samAccountName -passwdChange ENABLED add authentication policy ldap_policy –rule TRUE –action ldap_action <!--NeedCopy-->
LDAP アクションは —passwdChange ENABLED を使用して設定されます。これにより、VPN ログイン後にユーザが開始したパスワードの変更が可能になります。
-
LDAP ファクタの LoginSchema アクションを設定します。
add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml <!--NeedCopy-->
LDAP 要素には、エンドユーザからのユーザ名とパスワードが必要です。エンドユーザーに表示される「ログイン」フォームには、ユーザー名とパスワードのフィールドが記載されている必要があります。
Citrix ADCには、いくつかのデフォルトのLoginSchema XMLがあります。これらは、NetScaler シェル上の/nsconfig/loginSchema/LoginSchemaの場所にあります。以前の場所にあるデフォルトの LoginSchema XML のいずれかを使用できます。
-
LDAP ファクタの LoginSchema アクションを使用して、LDAP ファクタのポリシーラベルを設定します。
add authentication policylabel LDAP_factor -loginSchema LDAP_schema <!--NeedCopy-->
-
LDAP ポリシーを LDAP ポリシーラベルにバインドします。
bind authentication policylabel LDAP_factor –policyName ldap_policy –priority 10 <!--NeedCopy-->
-
次の要素として LDAP ポリシーラベルを使用して、WebAuth ポリシーを認証仮想サーバにバインドします。
bind authentication vserver auth1 –policy webAuth_policy –nextFactor LDAP_factor –priority 10 <!--NeedCopy-->
前述のnFactor構成は、13.0ファームウェアバージョンから入手可能なCitrix ADC nFactorビジュアライザを使用して行うこともできます。
nFactor ビジュアライザーを使用した構成
ここでの最初の要因は、Webauth に続いてパスワード変更オプションを有効にした LDAP です。
-
セキュリティ > AAA アプリケーショントラフィック > nFactor ビジュアライザー > nFactor フローに移動し 、 追加をクリックします。
-
+ 記号をクリックして nFactor フローを追加します。
-
係数を追加します。この係数に入力するこの名前は、nFactor フローの名前です。
-
[ポリシーの追加] をクリックして、Webauth ポリシーと Webauth アクション/サーバーを追加します。
-
緑色の + 記号をクリックして、パスワード変更オプションを有効にした LDAP 認証である次の要素を追加します。
-
「 スキーマの追加」 をクリックして、LDAP 認証用のログインスキーマを追加します。
-
[ポリシーの追加] をクリックして、LDAP 認証ポリシーと LDAP アクション/サーバーを追加します。
LDAPアクション/サーバを作成するには、記事https://support.citrix.com/article/CTX219939を参照してください。
-
両方の要素を設定したら、フローを認証、認可、および監査仮想サーバにバインドする必要があります。
デバッグ — ログとカウンタ
ログは、WebAuth および LDAP を使用したログインに成功した後に表示されます。次のログの大部分を表示するには、監査ログレベルを ALL に設定して、デバッグログも表示されるようにします。
set audit syslogparams –loglevel ALL
<!--NeedCopy-->
注: 簡潔にするために、タイムスタンプはログから削除されます。
次のカウンタは、WebAuth および LDAP を使用したログインに成功すると増加します。
- pcp_hits authn(webAuth_policy)
- webauth_primary_auth
- aaa_tot_webauth_prim_auth_success
- Web auth_succ_thru
- pcp_hits authn(webAuth_policy)
- pcp_hits authn(ldap_policy)
- auth_succ