認証、承認、監査の問題のトラブルシューティング
aaad.debugモジュールを使用したCitrix ADCおよびCitrix Gateway の認証に関する問題のトラブルシューティング
Citrix Gateway での認証は、認証、承認、監査(AAA)デーモンによって処理されます。AAA デーモンが処理する raw 認証イベントは、 aaad.debug モジュールの出力を表示することで監視でき、有用なトラブルシューティングツールとして機能します。aaad.debug は、フラットファイルではなくパイプであり、結果を表示したりログに記録したりしません。したがって、cat コマンドを使用して aaad.debug の出力を表示できます。nsaaad.debug を使用して認証の問題をトラブルシューティングするプロセスは、通常「aaad のデバッグ」と呼ばれます。
このプロセスは、次のような認証問題のトラブルシューティングに役立ちます。
- 一般的な認証エラー
- ユーザー名/パスワードの失敗
- 認証ポリシーの構成エラー
- グループ抽出の不一致
注: このプロセスは、Citrix Gateway およびCitrix ADCアプライアンスに適用されます。
認証に関する問題のトラブルシューティング
aaad.debug モジュールを使用した認証のトラブルシューティングを行うには、次の手順を実行します。
-
PuTTYなどのセキュアシェル(SSH)クライアントを使用して、Citrix Gateway のコマンドラインインターフェイスに接続します。
- 次のコマンドを実行して、シェルプロンプトに切り替えます。
shell
- 次のコマンドを実行して、/tmp ディレクトリに移動します。
cd /tmp
- 次のコマンドを実行して、デバッグプロセスを開始します。
cat aaad.debug
- ユーザーログオンの試行など、トラブルシューティングが必要な認証プロセスを実行します。
- cat aaad.debug コマンドの出力を監視して、認証プロセスの解釈とトラブルシューティングを行います。
- Ctrl+Z キーを押して、デバッグプロセスを停止します。
- 次のコマンドを実行して、
aaad.debug
の出力をファイルに記録します。cat aaad.debug | tee /var/tmp/<debuglogname>
、/var/tmp
は必要なディレクトリパス、<debuglogname.log>
は必要なログ名です。
次のセクションでは、aaad.debug モジュールを使用して認証エラーをトラブルシューティングおよび解釈する方法の例を示します。
無効なパスワード
次の例では、ユーザーが間違ったRADIUSユーザ名を入力しています。
process_radius Got RADIUS event
process_radius Received BAD_ACCESS_REJECT for: <username>
process_radius Sending reject.
send_reject_with_code Rejecting with error code 4001
<!--NeedCopy-->
無効なユーザー名
次の例では、ユーザが間違った LDAP ユーザ名を入力しています。
/home/build/rs_121/usr.src/netscaler/aaad/ldap_drv.c[450]: receive_ldap_user_search_event 1-140: Admin authentication(Bind) succeeded, now attempting to search the user testusernew
/home/build/rs_121/usr.src/netscaler/aaad/ldap_drv.c[453]: receive_ldap_user_search_event 1-140: Number of entires in LDAP server response = 0
/home/build/rs_121/usr.src/netscaler/aaad/ldap_drv.c[459]: receive_ldap_user_search_event 1-140: ldap_first_entry returned null, user testusernew not found
/home/build/rs_121/usr.src/netscaler/aaad/naaad.c[4781]: send_reject_with_code 1-140: Not trying cascade again 4009
/home/build/rs_121/usr.src/netscaler/aaad/naaad.c[4783]: send_reject_with_code 1-140: sending reject to kernel for : testusernew
/home/build/rs_121/usr.src/netscaler/aaad/naaad.c[4801]: send_reject_with_code 1-140: Rejecting with error code 4009
<!--NeedCopy-->
グループ抽出結果の決定
次の例では、グループ抽出の結果を決定できます。AAAグループアクセスに関する多くの問題は、ユーザーがCitrix Gateway アプライアンスで割り当てられたグループに対して正しいセッションポリシーを選択できないことです。一般的な理由としては、アプライアンスの AD または Radius グループ名のスペルが正しくなく、ユーザーが AD または Radius サーバーのセキュリティグループのメンバーになっていないことが挙げられます。
/usr/home/build/rs_80_48/usr.src/usr.bin/nsaaad/../../netscaler/aaad/ldap_drv.c[40]:
start_ldap_auth attempting to auth scottli @ 10.12.33.216
/usr/home/build/rs_80_48/usr.src/usr.bin/nsaaad/../../netscaler/aaad/ldap_drv.c[291]:
/usr/home/build/rs_80_48/usr.src/usr.bin/nsaaad/../../netscaler/aaad/ldap_drv.c[551]: recieve_ldap_user_search_event built group string for scottli of:Domain Admins
<!--NeedCopy-->
aaad.debug モジュールのエラーコード
次の表に、 aaad.debug モジュールの各種エラーコード、エラーの原因、および解決方法を示します。
aaad.debug モジュールのエラーコード | エラーメッセージ | エラーの原因 | 解像度 |
---|---|---|---|
4001 | 認証情報/パスワードが正しくありません。再試行してください。 | 不正な認証情報が入力されました | 正しい認証情報を入力してください |
4002 | 許可されていません | これはキャッチオールエラーです。不正なユーザー資格情報以外の理由で ldapbind 操作が失敗したときに発生します。 | バインド操作が許可されていることを確認する |
4003 | サーバーに接続できません。数分後にもう一度接続してみてください。 | サーバがタイムアウト | Citrix ADCでLDAP/Radiusサーバーのタイムアウト値を大きくします(認証>LDAP/Radius>サーバー>タイムアウト値)。デフォルトのタイムアウト値は 3 秒です。 |
4004 | システム エラー | Citrix ADC/Citrix Gatewayの内部エラーまたはアプライアンス・ライブラリのランタイム・エラー | システムエラーの原因をチェックし、同じエラーを解決する |
4005 | ソケット エラー | 認証サーバーとの通信中にソケットエラーが発生しました | LDAP/RADIUSサーバーまたはその他の認証サーバーが、Citrix ADCで構成された認証操作に記載されているポートをリッスンできることを確認します。たとえば、Citrix ADC上のldapprofileがポート636/SSLを使用するように構成されているが、AD上で同じポートが開いていないという一般的なエラーシナリオがあります。 |
4006 | ユーザー名が正しくありません | nsaaad に渡されたユーザ名が不正な (形式) ユーザ名 (空のユーザ名) | 正しいユーザー名を入力してください |
4007 | 無効なパスワード | nsaaad に渡された不正な (フォーマット) パスワード | 正しいパスワードを入力してください |
4008 | パスワードが一致しません | パスワードが一致しません | 正しいパスワードを入力してください |
4009 | ユーザーが見つかりません | ユーザーが存在しません | ADに存在する有効なユーザーを使用してログインする |
4010 | 現在、ログオンするためのアクセス許可がありません | 制限付きログオン時間 | 制限時間外にログオンする |
4011 | AD アカウントが無効になっています | アカウント無効 | AD アカウントを有効化する |
4012 | パスワードの有効期限が切れました | パスワード期限切れ | パスワードをリセットする |
4013 | ログオンする権限がありません | ダイヤルイン権限がありません(RADIUS 固有)。これは、通常、ユーザーがサーバーでの認証を許可されていない場合に発生します。 | ネットワークアクセス権限の設定を変更する必要がある |
4014 | パスワードを変更できませんでした | パスワードの変更中にエラーが発生しました。これは多くの理由で発生する可能性があります。そのような理由の1つは、Citrix ADC上のldapprofileで提供されている非sslポートを使用してパスワードを変更しようとしている可能性があります。 | パスワードの変更にセキュア・ポートと秒タイプが使用されていることを確認する |
4015 | このアカウントは一時的にロックされています | ユーザー AD アカウントがロックされています | ADアカウントのロックを解除する |
4016 | パスワードを更新できません。パスワードは、ドメインの長さ、複雑さ、および履歴の要件を満たしている必要があります。 | パスワードの変更中にユーザパスワード要件が満たされない | パスワードを変更しながら必要な要件を満たす |
4017 | NAC プロセス | Microsoft Intune固有です。APIの障害または接続障害により、Citrix Gateway がデバイスを検証できません。 | Microsoft Intune 管理対象デバイスがCitrix Gateway にアクセスできるようにする |
4018 | NAC 準拠不履行について | Microsoft Intune は、このデバイスが準拠していないことを示す状態を返します。 | Microsoft Intune の管理対象デバイスがCitrix Gateway に準拠していることを確認する |
4019 | NAC アンマネージド | Microsoft Intune は、管理対象デバイスではないことを示す状態を返します。 | Microsoft Intune 固有の構成が適切であることを確認する |
4020 | 認証がサポートされていません | このエラーは、設定ミスの場合に発生します。たとえば、Citrix ADCでは認証タイプがサポートされていない場合や、Citrix ADCアプライアンスで認証プロファイルの設定が正しくない場合、または認証でアカウンティングアクション(radius)が試行された場合などです。 | Citrix ADC上の認証サーバーの[認証]チェックボックスをオフにすると、そのチェックボックスをオンにします。Citrix ADCで適切な認証アクションを使用します。 |
4021 | ユーザーアカウントの期限が切れています | ユーザーアカウントの有効期限が切れています | ユーザーアカウントを更新する |
4022 | ユーザーアカウントがCitrix ADCによってロックされている | ユーザーアカウントがCitrix ADCによってロックされている | aaa user <> コマンドでアカウントのロックを解除する |
4023 | OTP デバイスの最大制限に達しました | OTP を受信するためのデバイス制限に達しました | 不要な OTP デバイスの登録を解除するか、すでに登録されているデバイスを続行します。 |
Citrix ADC nFactor システムによって生成されるエラーメッセージのローカライズ
このトピックでは、Citrix ADC nFactor システムによって生成されるエラーメッセージのローカライズについて説明します。これらのメッセージには、拡張認証フィードバックの一部として取得される拡張認証エラー文字列が含まれます。
nFactor サブシステムによって送信されるデフォルトのエラー文字列については、英語版の /var/netscaler/ログオン/ログオンポイント/レシーバ/js/ローカライゼーション/js/ctxs.strings.js を参照してください。他の言語のエラー文字列は、/var/netscaler/ログオン/ログオンポイント/レシーバ/js/ローカライズ/内の対応するディレクトリにあります。
エラー・メッセージをローカライズするには、RfWeb UI に基づいてポータル・テーマを作成する必要があります。
コマンドプロンプトで入力します。
add portaltheme custom_error_theme -basetheme RfWebUI
bind authentication vserver av1 -portaltheme custom_error_theme
<!--NeedCopy-->
これらのコマンドが実行されると、/var/netscaler/logon/themes/<name>
に新しいディレクトリが作成されます。このディレクトリには、「strings.en.json」という名前のファイルが含まれています。このファイルは空のjsonファイルです。管理者は、古いエラー文字列と新しいエラー文字列で構成される名前と値のペアを追加できます。
たとえば、 { 「認証中にアクティブなポリシーはありません」:「認証中にアクティブなポリシーはありません。管理者に連絡してください」 }
上記の例では、左側のテキストが nFactor によって送信される既存のエラーメッセージです。右側のテキストがその代わりになります。管理者は、必要に応じてさらにメッセージを追加できます。
認証フィードバックの強化
認証プロセス中に拡張エラーメッセージを取得するには、EnhedAuthenticationFeedback 機能を有効にする必要があります。
コマンドプロンプトで入力します。
set aaa parameter –enableEnhancedAuthFeedback YES
<!--NeedCopy-->