概要
この文書では、ICA Win32クライアントで発生するCitrixパススルー認証(シングルサインオン)の問題に対する、回避策および解決方法の概要について説明しています。
Web Interfaceでの設定については、CTX105991 - デスクトップアカウント情報によるパススルー機能のトラブルシューティングを参照してください。
一般的なトラブルシューティング
1. Citrixコネクション構成ツールの[コネクションの編集]の[詳細]で、[パスワードを要求]するがオンになっています。その際、Windows Server 2003がグレイ表示されている場合は、gpedit.mscを実行して、[ローカルコンピュータポリシー]-[コンピュータの構成]-[管理用テンプレート]-[ターミナルサービス]-[暗号化とセキュリティ]の順に展開して、ポリシー設定が[クライアントが接続するたびにパスワードを要求する]に設定されているかどうか確認します。
また、[(アカウントの設定を使用)]チェックボックスがオンになっているかどうか確認します。[(アカウントの設定を使用)]チェックボックスがオフになっている場合、基本的にログイン情報が空白の状態でサーバーにログインしています。
2. Citrixコネクション構成ツールの[コネクションの編集]の[詳細]で、[標準Windows認証を使う]がオンになっています。
3. RDP接続のセッション、またはICAのデスクトップ接続で、ドメイン上であらかじめ独立させた各Terminal Serverへ接続し、Terminal ServiceのRemote Control機能を使用して、Citrixサーバーではないサーバーへの接続テストを行います。
4. Winlogonのレジストリキー内のGinaDLLおよびCTXGinaDLLで、サードパーティ製のGinaで「連鎖」に関する問題が発生していないかどうか確認します。CTX105088 - [Document Not Found]の「GINAチェーンに影響するWindowsレジストリ」または、305971を参照してください。
5. イベントビューアで、1722および、NetLogonエラーがないかどうか確認します。Terminal Serverからドメインコントローラへの参照で、DNSに関する問題が発生している可能性があります。280766を参照してください。
6. サーバーコンソールにログオンして、違いがないかどうか確認します。
7. 221833:製品版 Windows でユーザー環境デバッグ ログ収集を有効にする
8. User Principal Name(UPN)が使用されていないかどうか確認します。
9. CTX105487 - [Document Not Found]
10. Kerberosが使用されていないかどうか確認します。CTX105384 - [Document Not Found]
11. Windows Server 2003、Windows XP、およびWindows 2000でKerberosにUDPではなくTCPを使用するように強制する方法
12. CTX110159 - [Document Not Found]
13. CTX109670 - Hotfix Rollup Pack MPSJ300W2KR05 - For Metaframe Presentation Server 3.0 for Windows 2000 Server
ドメインポリシーにより[対話型ログオン:ログオン時のユーザーへのメッセージのテキスト]および[対話型ログオン:ログオン時のユーザーへのメッセージのタイトル]が設定されているサーバーで、Kerberos認証によるパススルー認証が拒否されるという問題がありました。
[Hotfix MPSJ300R04W2K029より][#131589]
特定の現象
• MetaFrame XP Presentation Server, Feature Release 2/ Service Pack 2をクリーンインストールした環境で、パススルー認証に失敗する。
XJ102W024以降のHotfixを適用します。
• CTX104851 - [Document Not Found]
• CTX106182 - [Document Not Found]
• CTX103490 - [Document Not Found]
• CTX632027 - [Document Not Found]
• CTX114359 - [Document Not Found]
• CTX111880 - [Document Not Found]
• CTX115008 - [Document Not Found]
• CTX114366 - [Document Not Found]
• CTX118822 – Intel Credentials Managerを使用しているコンピュータ上でパススルー認証(SSONSVR.exe)が動作しない
• CTX118964 – [Document Not Found]
• CTX118962 – [Document Not Found]
• クライアントのバージョンをアップグレードまたはダウングレードして、問題がクライアントのバージョンに依存しないかどうか確認します。
• クライアントデバイスにNovell Clientがインストールされており、パススルー認証が使用されている場合、Program Neighborhoodエージェントが誤った認証を渡すことがあります
誤った認証によって、ユーザーはCitrix NFuseサーバーからアプリケーションの一覧を取得できません。クライアントデバイスで、Novell Directory Services(NDS)およびパススルー認証が使用されている場合、Program NeighborhoodエージェントはNDS認証をPresentation Serverへ送信します。Presentation Server上でNDSが設定されていない場合、認証に失敗します。新しいログオンメソッドでは、Program Neighborhoodエージェントが認証タイプの決定に使用するConfig.xmlに、NT_SSONが追加されました。NT_SSONが定義されている場合、サーバーとProgram NeightorhoodエージェントはWindows NT認証を使用できます。クライアントデバイスにNovellクライアントがインストールされている状態でパススルー認証でWindows NT認証を使用したい場合は、Config.xmlファイルのXMLタグ<LogonMethod>の値をNT_SSONに編集する必要があります。
Config.xmlファイルはInetpubwwwrootCitrixPNAgentディレクトリに格納されています。デフォルトのログオンメソッドはSSONです。
• Novell Clientがインストールされていると、Windows NT、Windows 2000、Windows XPのワークステーションまたはサーバーからのWindowsドメインアカウントのパススルー認証が機能しません
Citrix ICA Win32クライアントVersion 6.31.1050以降では、Appsrv.iniの[wfclient]セクションに「SONCredentialType=NT」が設定されていると、Windowsドメインアカウント情報の受け渡しに失敗します。
再現方法
1. Novell NetWare Client Version 4.83以降およびCitrix ICA Win32クライアントVersion 6.31.1050以降がインストールされているWindows NT、Windows 2000、Windows XPのワークステーションまたはサーバー、あるいはMetaFrameサーバーにログオンします。
2. パススルー認証を使用するようにCitrix ICA Win32クライアントを設定します。パススルー認証の使用が設定されていなかった場合は、いったんログオフして設定してからログオンし直す必要があります。
3. Windowsユーザー(Windows NTまたはActive Directory)に対してアプリケーションを公開します。
4. アプリケーションセットかカスタムICAコネクションを使用して、この公開アプリケーションへのコネクションを作成します。
5. 公開アプリケーションに接続します。
6. カスタムICAコネクションの場合は、Windows NT GINAが表示されます。アプリケーションセットコネクションの場合は、Program NeighborhoodのWindowsログオンボックスが表示されます。
回避策
Appsrv.iniファイル内の設定「SSONCredentialType=NT」を、[wfclient]セクションから[ApplicationServers]セクションに移動します。以下に、この設定の記述位置の例を示します。
[WFClient]
Version=2
[Smartcard]
[ApplicationServers]
Test=
[Test]
TransportDriver=TCP/IP
SSONCredentialType=NT
• Novell Clientがインストールされ、ワークグループに所属するWindows NT、Windows 2000 Windows XPのワークステーションまたはサーバーからのWindowsアカウントのパススルー認証が機能しない
ワークグループに所属しているWindows NT、Windows2000、Windows XPのワークステーションまたはサーバーからのWindowsアカウントのパススルー認証が機能しません。仕様によりワークグループ名が渡されます。
ICA Win32クライアントVersion 6.31.1051以降では、Win32クライアントがインストールされているコンピュータのレジストリを編集して、ワークグループ名を含むパススルー認証アカウント情報に、アプリケーションが公開されているドメインのドメイン名を含めることができます。追加したレジストリ値は、パススルー認証時にドメイン名として使用されます。
注:レジストリエディタの使用を誤ると、深刻な問題が発生する可能性があり、Windowsの再インストールが必要になることがあります。レジストリエディタは自己の責任と判断の範囲でご使用ください。レジストリを編集する前に、レジストリファイルのバックアップを作成してください。
1. レジストリエディタを開き、以下のレジストリキーを選択します
HKEY_LOCAL_MACHINESOFTWARECitrixICA Client
2. [編集]メニューの[値の追加]を選択し、以下の情報を入力します。
値の名前:Domain
データ型:REG_SZ
3. [OK]をクリックします。
4. [文字列]ボックスにサーバーのドメイン名を入力します。Presentation Serverのローカルユーザーの認証のみを設定してドメインユーザーの認証は設定しない場合は、サーバー名を入力します。
レジストリを変更すると、Novell Clientがインストールされているワークグループ内のワークステーションで、Windowsアカウントのパススルー認証を使用できるようになります。
• パススルー認証は、ドメインログオンとパスワードが異なる場合はWindows 9xデスクトップログオン情報をサポートしない
Windows 9xおよびWindows MEでは、ドメインコントローラへの認証とWindowsデスクトップログオンによるローカル認証の2つのログオン方式があります。Windows 9xおよびWindows MEワークステーションにログオンする場合、ドメインコントローラに対する認証を行ってからWindowsデスクトップのパスワードを入力すると、Citrixのパススルー認証機能はICAセッションへのログオン時に、Windowsデスクトップのパスワードを取得してそれをPresentation Serverに渡します。通常、ドメインのパスワードとWindowsデスクトップのパスワードは異なります。ただし、2つのパスワードが一致している場合は、パススルー認証が期待通りに機能します。これは、スタンドアロンのWindows NTまたはWindows 2000 Professionalのワークステーションとほぼ同じ状況です。パススルー認証が機能するには、ローカルのユーザー名とパスワードがドメインのユーザー名とパスワードに一致している必要があります。Presentation Serverのドメインに所属しているWindows NTまたはWindows 2000 Professionalのワークステーションの場合、ローカルのユーザー名とパスワードは既にMetaFrameサーバーのユーザー名とパスワードに一致するようになっています。
• Windows 2000 Server以降でCmd.exeへのアクセスが制限されている場合に、パススルークライアントでパススルー認証に失敗する
Windowsベースのシステムにログオンすると、ネットワークプロバイダとして実装されているPnsson.dllがWinlogon.exeによって起動されます。このモジュールは、Ssonsvr.exeプロセスを、3つある方法のいずれかで起動します。この場合、ユーザーが、MetaFrameがインストールされているWindows2000ベースのサーバーにログオンし、パススルークライアントを実行すると、Pnsson.dllは以下のコマンドライン文字列を作成してSsonsvr.exeを起動します。
CMD /C START...SSONSVR.EXE
コマンド文字列はWinlogon.exeに戻され、ログオンスクリプトとして実行されます。
これは仕様です。Cmd.exeにアクセスできないように設定されていると、Ssonsvr.exeが起動せず、クライアントがユーザーのアカウント情報を取得できません。このケースでは、ユーザーに最低でもCmd.exeに対する読み取り権限と実行権限が与えられている必要があります。
• HTMLファイルに埋め込まれているWin32クライアントを使用すると、Win32クライアントのバージョンにかかわらずパススルー認証が機能しない
MetaFrame 1.8の公開アプリケーションマネージャまたはMetaFrame XPのCitrix管理コンソールを使用して、ICAコネクションが埋め込まれたHTMLファイルを作成するときに、ユーザーがローカルアカウント情報をパススルー認証機能からWebブラウザ内のセッションに渡すことができません。
これは仕様です。Wfica32.exeは、ICAファイルによるコネクションを起動する前に、まず、Wfcrun32.exeがICAクライアントのディレクトリに存在しているかどうか、およびそれがWebブラウザから呼び出されているかどうかという2つの条件をチェックします。Webブラウザから呼び出されている場合は、Wfica32.exeがコネクションを直接起動します。Webブラウザから呼び出されていない場合は、Wfcrun32.exeが起動し、パラメータを渡してセッションを確立します。パススルー認証を使用するためには、Wfcrun32.exeがコネクションを起動する実行ファイルである必要があります。
Webブラウザとパススルー認証を使用する方法としては、このほかに、NFuse 1.7以降とデスクトップアカウント情報のパススルー機能を使用する方法もあります。
再現方法
1. 公開アプリケーションマネージャまたはCitrix管理コンソールを使用してHTMLファイルを作成し、埋め込み方法を選択します。
2. ICAファイルからパススルー認証を有効にする設定を、ICAファイルに追加します。後述の「ICAファイル内でパススルー認証を有効にする方法」を参照してください。
3. 作成したHTMLページを、ローカルまたはWebサーバーから起動します。Winlogonダイアログボックスが開きます。
4. ICAファイルを起動すると、アカウント情報のパススルーが自動的に行われます。
• ICAファイル内でパススルー認証を有効にする方法
Presentation ServerクライアントVersion 10.x以降を使用している場合は、以下の手順を実行しないでください。その場合は、CTX114366 - [Document Not Found]を参照してください。
注:以下の手順では、Windows 9x、Windows ME、Windows 2000、Windows XPオペレーティングシステムが動作しているクライアントワークステーションで、ユーザー固有のプロファイルが使用されていることを想定しています。
1. ユーザープロファイルのAppsrv.iniファイルで、[wfclient]セクションの末尾に以下の行を追加します。
SSOnUserSetting=On
EnableSSOnThruICAFile=On
2. 使用するICAファイルで、[Application]セクションに以下の行を追加します(このセクションには解像度や暗号化などのすべての設定が記述されています)。
UseLocalUserAndPassword=On
注:この変更は、各ユーザーのAppsrv.iniファイルに対して個別に行う必要があります。各ユーザーに対して、Program Neighborhoodクライアントがインストールされており、[ICA設定]メニューの[ローカルのユーザー名とパスワードを使用]チェックボックスがオンになっている必要があります。
例:
[ApplicationServers]
notepad1=
UseLocalUserAndPassword=On (incorrect location)
[notepad1]
Address=notepad1
InitialProgram=#notepad1
ClientAudio=On
AudioBandwidthLimit=2
Compress=On
TWIMode=On
DesiredHRES=640
DesiredVRES=480
DesiredColor=2
TransportDriver=TCP/IP
WinStationDriver=ICA 3.0
UseLocalUserAndPassword=On (correct location)
関連情報
この資料は米国のCitrix Knowledge Baseで提供している情報をもとに作成したものです。
Document ID:CTX368624
Troubleshooting Citrix Pass Through Authentication