RDPクライアントはスマートカードを認証に有効とみなさない

RDPクライアントはスマートカードを認証に有効とみなさない

私は持っている:

  • Windows 7 クライアント マシン。私はそのマシンの管理者ではありません。
  • リモート デスクトップを使用してセッションを開きたい Windows 2008R2 サーバー。
  • リモート デスクトップ ゲートウェイ、Windows 2008R2 も実行されています。
  • スマートカード。

サーバーはスマート カード ログオンを許可するように構成されています。ゲートウェイでもスマート カード認証が必要です。すべてのクライアントとサーバーは関連するすべての CA 証明書を認識して信頼しており、期限切れの証明書はなく、すべての CRL は適切な場所に公開されています。

重要なのはスマートカードの証明書には拡張キー使用法拡張キー使用証明書 (EKU) には、「スマート カード ログオン」OID は含まれていません。ただし、「クライアント認証」機能があります。サーバーとゲートウェイは、それでも証明書を受け入れるように構成されています。これは、「拡張キー使用証明書属性のない証明書を許可する」というポリシー設定です。そこには

問題

クライアントはサーバー名が指定された.rdpファイルを使用しますそしてゲートウェイ名。ゲートウェイはゲートウェイであり、実際のリモート デスクトップ サーバーではないため、表示される「ログイン画面」はありません。代わりに、スマート カード認証は、クライアント ( mstsc.exeWindows の標準 RD クライアント) によって処理される GUI に依存し、ユーザーがスマート カードを選択して PIN コードを入力できるようにします。ポップアップは次のようになります。

希望するスマートカード認証ポップアップ

(フランス語のポップアップが表示されて申し訳ありません。手元に英語版の Windows 7 がありません。)

残念ながら、ポップアップはこのようには表示されません。代わりに、次のメッセージが表示されます。

実際のスマートカード認証ポップアップ

分析

説明どおりここクライアント アプリケーション (mstsc.exe) は、OS (Windows 7) にスマート カードを「列挙」させます。OS は、いくつかの基準を満たす証明書を含むスマート カードを探します。特に、そのような証明書に含まれる EKU 拡張に「スマート カード ログオン」OID が含まれているかどうかが重要です。これは、最終的なターゲット サーバーはもちろん、ゲートウェイと実際に通信する前に行われます。ゲートウェイとサーバーは、私の証明書でまったく問題ありません。そのように構成されています。ただし、クライアント OS は、強制する独自の構成に従って、同じルールが適用されます。私の場合、Windows 7 では、ローカル セッションを開くためのスマート カードの使用がローカル ポリシーによって拒否されるため、使用できません (ローカル セッションを開こうとしていないにもかかわらず)。

これは、Windows XP クライアントでは機能していました。これは、Windows XP の「スマート カード選択ポップアップ」がこれらのチェックを実施しないためです (Windows XP は、EKU 拡張機能の不足を許容しないため、さらに制限された方法で EKU をチェックしますが、これらのチェックを実施するのは、実際にローカル セッションを開こうとするときのみであり、リモート セッションの証明書を選択するときは実施しません)。

使えない解決策

「通常の」解決策は、ローカル クライアント (Windows 7) をサーバーと同じ「拡張キー使用法の証明書属性のない証明書を許可する」に設定することです。こうすることで、スマート カード選択ポップアップでスマート カードの表示が受け入れられ、問題がなくなります。別のシステムでテストしました。ただし、ローカル ポリシーを変更するには管理者権限が必要ですが、私にはその権限がないため、ターゲット システムでは実行できません。同様に、ドメインの一部であるクライアントの場合、AD サーバー上の GPO から設定をプッシュできますが、適切な権限がないため、これもブロックされます。

このポリシー設定は、EKUに適切なOIDを持たない証明書を持つクライアントマシンへのログインを実際に許可しているとも言えるでしょう。これは望ましくない副作用であると考えられます。リモートサーバー; セッションを開くための条件を変更する必要はないはずですローカルクライアント

以前のバージョンの mstsc.exe (Windows XP から) では、クライアント認証を必要とせずにサーバーに接続できたようです。その場合、リモート サーバーはログイン画面 (「大きな青緑色の画面」) を表示し、スマート カードの列挙を自ら処理します。サーバーに適切なポリシーがあるため、これは機能します。ただし、次の 2 つの理由から、このようなソリューションは使用できません。

  • Windows 7 の mstsc.exe は、独自のポップアップを使用して認証を行うことを要求しているようです。
  • そこにはゲートウェイ最終的なターゲットサーバーとは異なり、表示される「ログイン画面」はありません。クライアントのスマートカード認証を必要とするゲートウェイを使用する場合、クライアントのスマートカードの選択しなければならないクライアントソフトウェアによって管理されます。

質問

質問です。この問題を解決する方法はあるのでしょうか?理想的には、mstsc.exeに何らかの構成設定(コマンドラインスイッチまたは.rdpファイル内の句)を設定し、mstsc.exeに指示を与えることです。ないOSのスマートカード選択ポップアップを使用するのではなく、列挙を独自に行うには、それなしEKU について何かを強制しようとしています。そのような機能の痕跡は見つかりませんでしたが、証拠がないことは存在しないことの証明にはなりません。単に見逃しただけかもしれません。

答え1

接続用の .rdp ファイルを作成し、.rdp ファイル内で enablecredsspsupport:i:0 を設定し、ローカル リソース マッピングのスマート カード オプションが有効になっていることを確認します (デフォルトではオンになっているため、明示的に設定を変更しない限り、既にオンになっているはずです)。

詳細については、次のエントリを参照してください。 http://blogs.msdn.com/b/rds/archive/2007/01/22/vista-remote-desktop-connection-authentication-faq.aspx#_When_to_use

私はそうではないとても中間にゲートウェイがあるため、これが問題の解決に役立つかどうかはわかりませんが、率直に言って、この問題に対する他の解決策は思いつきません。

関連情報