ADC

NetScaler GatewayのnFactorを第1要素にWebAuthを設定し、第2要素にパスワード変更を含むLDAPを設定します

NetScaler GatewayのnFactorを第1要素にWebAuthを設定し、第2要素でパスワード変更を伴うLDAPを構成するには、次の大まかな手順が必要です。

  1. IP アドレスがゼロの認証仮想サーバーを構成します。証明書を認証仮想サーバーにバインドすることは必須ではありません。

  2. 認証仮想サーバー名を使用して認証プロファイルを構成します。

  3. VPN 仮想サーバーを設定します。

  4. この VPN 仮想サーバーに認証プロファイルを設定します。

  5. WebAuth アクションとポリシーを設定します。

  6. LDAP アクションとポリシーを設定します。

  7. LDAP ファクターのログインスキーマアクションを設定します。

  8. LDAP ファクターのログインスキーマアクションを使用して、LDAP ファクターのポリシーラベルを設定します。

  9. LDAP ポリシーを LDAP ポリシーラベルにバインドします。

  10. 次の要素として LDAP ポリシーラベルを使用して WebAuth ポリシーを認証仮想サーバーにバインドします。

機能

  • ユーザーがブラウザでNetScaler Gateway FQDNを入力すると、/logon/logonpoint/tmindex.html ページにリダイレクトされます。

  • このページには、認証仮想サーバーにバインドされたログインスキーマが表示されます。(この構成のように)認証仮想サーバーにバインドされたログインスキーマがない場合は、デフォルトのスキーマが表示されます。

  • ユーザーは、最初の要素(この場合は WebAuth)の認証情報を入力します。

  • NetScaler GatewayはWeb認証アクションをチェックし、WebAuthサーバーに接続します。パラメータ FullReqExpr で指定された HTTP リクエストを WebAuth サーバに送信します。WebAuth サーバーのレスポンスが WebAuth アクションの SuccessRule パラメータに記載されている式を満たす場合、このポリシーが合格します。

  • これで、NetScaler Gatewayは第2のファクターに移行します。次のファクターとしてバインドされているポリシーラベル LDAP_Factor の設定を確認します。このポリシーラベルにはLoginSchemaが記載されているため、NetScaler GatewayはそのXMLスキーマをクライアントに送信します。

  • クライアントはスキーマを受け取り、2 段階認証用の LDAP 認証情報を入力します。

  • NetScaler GatewayはLDAPサーバーにアクセスしようとし、クライアントの資格情報が正しいかどうかを検証します。これらが正しければ、認証フェーズが完了し、ユーザは設定された VPN モードにログインします。

次の図は、最初の要素が WebAuth で、2 番目の要素が LDAP である nFactor 認証シーケンスを示しています。

Nfactor-auth-sequence

CLI を使用した設定

  1. 認証仮想サーバを設定します。

    add authentication vserver auth1 ssl
    <!--NeedCopy-->
    

    GUI で、[ セキュリティ] > [AAA-アプリケーショントラフィック] > [仮想サーバ ] に移動し、[ 追加] をクリックします。

    認証仮想サーバーの追加

  2. 認証プロファイルを設定します。

    add authnProfile auth_profile –authnVsname auth1
    <!--NeedCopy-->
    

    GUI で、[ セキュリティ] > [AAA-アプリケーショントラフィック] > [認証プロファイル ] に移動し、[ 追加] をクリックします。

    認証プロファイルの作成

  3. 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-->
    

    NetScaler Gateway > 仮想サーバーに移動し、「追加」をクリックします。

    VPN 仮想サーバーの追加

    VPN 仮想サーバーが作成されたら、そのサーバー上に証明書をバインドします。

    VPN 仮想サーバーでの認証プロファイルの設定

    set vpn vserver vpn1 –authnProfile auth_profile
    <!--NeedCopy-->
    

    認証プロファイルを設定

  4. WebAuth アクションとポリシーを設定します。

    Appexpert > エクスプレッション > アドバンスエクスプレッションに移動します

    Web 認証ポリシーの設定

    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 ボディが作成されます。もう 1 つの (length_post_data) は POST 本体の長さを計算します。この長さは POST リクエストの Content-Length ヘッダーの入力に使用されます。

    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-->
    
  5. パスワード変更の 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 ログイン後にユーザーがパスワードを変更できるようになります。

  6. LDAP ファクターのログインスキーマアクションを設定します。

    add authentication loginSchema LDAP_schema -authenticationSchema /nsconfig/loginschema/LoginSchema/SingleAuth.xml
    <!--NeedCopy-->
    

    LDAP ファクターには、エンドユーザーのユーザー名とパスワードが必要です。エンドユーザーに表示されるログインフォームには、ユーザー名とパスワードのフィールドが表示されている必要があります。

    NetScalerには、NetScalerシェルの/nsconfig/loginSchema/LoginSchema/LoginSchemaの場所にいくつかのデフォルトのログインスキーマXMLがあります。前の場所にあったデフォルトの LoginSchema XML のいずれかを使用できます。

  7. LDAP ファクターの LoginSchema アクションを使用して LDAP ファクターのポリシーラベルを設定します。

    add authentication policylabel LDAP_factor -loginSchema LDAP_schema
    <!--NeedCopy-->
    
  8. LDAP ポリシーを LDAP ポリシーラベルにバインドします。

    bind authentication policylabel LDAP_factor –policyName ldap_policy –priority 10
    <!--NeedCopy-->
    
  9. 次の要素として、WebAuth ポリシーを LDAP ポリシーラベルを使用して認証仮想サーバーにバインドします。

    bind authentication vserver auth1 –policy webAuth_policy –nextFactor LDAP_factor –priority 10
    <!--NeedCopy-->
    

    前述のnFactor構成は、ファームウェアバージョン13.0以降で使用可能なNetScalerのnFactorビジュアライザーを使用して行うこともできます。

nFactor ビジュアライザーを使用した構成

nfactor ビジュアライザーでの設定の表現

最初の要素は Webauth で、その後にパスワード変更オプションを有効にした LDAP が続きます。

  1. セキュリティ > AAA アプリケーショントラフィック > nFactor ビジュアライザー > nFactor フローに移動し追加をクリックします

  2. + 記号をクリックして nFactor フローを追加します。

    nファクターフローを追加

  3. 係数を追加します。このファクターに入力するこの名前は nFactor フローの名前です。

    nファクターフローの名前

  4. ポリシーを追加 」をクリックして、Webauth ポリシーと Webauth アクション/サーバーを追加します。

    「ポリシーを追加」をクリックします

    ポリシーを選択してください

    認証ポリシーの作成

  5. 緑色の+記号をクリックして 、次の要素、つまりパスワード変更オプションを有効にしたLDAP認証を追加します。

    次のファクター、つまり LDAP を追加します。

  6. スキーマの追加 」をクリックして、LDAP 認証用のログインスキーマを追加します。

    LDAP 認証用のスキーマの追加

  7. ポリシーを追加 」をクリックして、LDAP 認証ポリシーと LDAP アクション/サーバーを追加します。

    LDAP 認証のポリシーを追加

    LDAP アクション/サーバーを作成するには、記事を参照してください。 https://support.citrix.com/article/CTX219939

  8. 両方の要素を設定したら、フローを認証、承認、および監査仮想サーバーにバインドする必要があります。

    「認証サーバーにバインド」をクリックします

    ファクターを選択して認証サーバーにバインド

デバッグ — ログとカウンター

ログは、WebAuth と LDAP で正常にログインした後に表示されます。次のログのほとんどを表示するには、監査ログレベルを ALL に設定して、デバッグログも表示されるようにします。

set audit syslogparams –loglevel ALL
<!--NeedCopy-->

注: タイムスタンプは簡潔にするためにログから削除されています。

サンプルログ

WebAuth と LDAP で正常にログインすると、次のカウンタが増加します。

  • pcp_hits authn (ウェブ認証ポリシー)
  • aaa_tot_webauth_primary_auth
  • aaa_tot_webauth_prim_auth_success
  • aaa_tot_webauth_prim_succ_check_thru
  • pcp_hits authn (ウェブ認証ポリシー)
  • pcp_hits authn (ldap_policy)
  • succ
NetScaler GatewayのnFactorを第1要素にWebAuthを設定し、第2要素にパスワード変更を含むLDAPを設定します