ADC

最初の要素でWebAuthを使用し、2番目の要素でパスワードを変更してLDAPを使用するCitrix Gateway のnFactorを構成する

次の大まかな手順では、最初の要素でWebAuthを使用するCitrix Gateway のnFactorを構成し、2番目の要素でパスワードを変更してLDAPを構成しています。

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

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

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

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

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

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

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

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

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

  10. 次の要素として 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 です。

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

    [Citrix Gateway]>[仮想サーバー] に移動し、[追加] をクリックします。

    vpn 仮想サーバの追加

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

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

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

    認証プロファイルの設定

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

    アプリケーションエキスパート > 式 > 高度な式に移動します。

    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 本文を作成します。もう一方の(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-->
    
  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 ファクタの LoginSchema アクションを設定します。

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

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

    Citrix ADCには、いくつかのデフォルトのLoginSchema XMLがあります。これらは、NetScaler シェル上の/nsconfig/loginSchema/LoginSchemaの場所にあります。以前の場所にあるデフォルトの 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. 次の要素として LDAP ポリシーラベルを使用して、WebAuth ポリシーを認証仮想サーバにバインドします。

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

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

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

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

ここでの最初の要因は、Webauth に続いてパスワード変更オプションを有効にした LDAP です。

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

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

    nFactor フローを追加

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

    nFactor フローの名前

  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(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
最初の要素でWebAuthを使用し、2番目の要素でパスワードを変更してLDAPを使用するCitrix Gateway のnFactorを構成する