次の方法で共有


Windows Hello for Businessを使用したリモート デスクトップ サインイン

リモート デスクトップ プロトコル (RDP) のリダイレクトされたスマート カード機能を使用して、Windows Hello for Businessを使用してリモート デスクトップ セッションにサインインできます。 これは、ユーザーのデバイスに証明書を展開することで可能です。この証明書は、別の Windows デバイスへの RDP 接続を確立するときに指定された資格情報として使用されます。

この記事では、認証証明書を Windows Hello for Business コンテナーにデプロイする 2 つの証明書展開方法について説明します。

  • SCEP コネクタまたは PKCS コネクタでのMicrosoft Intuneの使用
  • Active Directory Certificate Services (AD CS) 登録ポリシーの使用

重要

Microsoft Intuneを使用して証明書を展開し、セキュリティで保護されたデスクトップで資格情報の入力を求めるユーザー アカウント制御が構成されている場合、実行機能を使用することはできません。 このようなシナリオでは、管理者特権でアプリケーションを実行し、Windows Hello for Business資格情報を選択しようとすると、エラー メッセージが表示されます: ユーザー名またはパスワードが正しくありません

ヒント

RDP サインインにWindows Hello for Businessではなく、リモート資格情報ガードを使用することを検討してください。 リモート Credential Guard は、Kerberos 認証を使用して RDP セッションにシングル サインオン (SSO) を提供し、証明書の展開を必要としません。 詳細については、「 リモート資格情報ガード」を参照してください。

動作のしくみ

Windows では、 キー ストレージ プロバイダー (KSP) と呼ばれるソフトウェア コンポーネントを使用して暗号化キーが生成され、格納されます。

  • ソフトウェア ベースのキーは、Microsoft ソフトウェア キー ストレージ プロバイダーを使用して作成および保存されます
  • スマート カード キーは、Microsoft スマート カード キー ストレージ プロバイダーを使用して作成および保存されます
  • Windows Hello for Businessによって作成および保護されたキーは、Microsoft Passport キー ストレージ プロバイダーを使用して作成および保存されます

スマート カードの証明書は、Microsoft Smart Card KSP を使用して非対称キー ペアを作成することから始まります。 Windows は、証明機関を発行している企業からキー ペアに基づいて証明書を要求します。これにより、ユーザーの個人用証明書ストアに格納されている証明書が返されます。 秘密キーはスマート カードに残り、公開キーは証明書と共に格納されます。 証明書 (およびキー) のメタデータには、キーの作成に使用されるキー ストレージ プロバイダーが格納されます (証明書に公開キーが含まれていることを覚えておいてください)。

キーは Microsoft Passport KSP を使用して作成される点を除き、Windows Hello for Businessにも同じ概念が適用されます。 ユーザーの秘密キーは、デバイスのセキュリティ モジュール (TPM) とユーザーのジェスチャ (PIN/生体認証) によって保護されたままです。 証明書 API は複雑さを隠します。 アプリケーションが証明書を使用する場合、証明書 API は保存されたキー ストレージ プロバイダーを使用してキーを見つけます。 キー ストレージ プロバイダーは、証明書に関連付けられている秘密キーを検索するために使用するプロバイダーの証明書 API を指示します。 これは、スマート カードが挿入されていないスマート カード証明書があることを Windows が認識し、スマート カードの挿入を求めるメッセージを表示する方法です。

Windows Hello for Businessは、アプリケーションの互換性のためにスマート カードをエミュレートし、Microsoft Passport KSP はユーザーに生体認証ジェスチャまたは PIN の入力を求めます。

生体認証を使用したリモート デスクトップは、 デュアル登録 や、ユーザーが代替の資格情報を提供するシナリオでは機能しません。

要件

Windows Hello for Businessで RDP サインインを有効にする要件の一覧を次に示します。

  • AD CS またはサード パーティに基づく PKI インフラストラクチャ
  • クライアントにデプロイWindows Hello for Business
  • 参加済みデバイスMicrosoft Entraサポートする予定の場合、ドメイン コントローラーには証明書が必要です。これは、クライアントの信頼のルートとして機能します。 証明書は、クライアントが不正なドメイン コントローラーと通信しないようにします

Microsoft Intuneを使用して証明書を展開する予定の場合は、次の要件が追加されます。

  • SCEP または PKCS のデプロイをサポートするインフラストラクチャがあることを確認する
  • ルート CA 証明書とその他の中間証明機関証明書を、信頼されたルート証明書ポリシーを使用して参加済みデバイスMicrosoft Entra展開する

証明書テンプレートを作成する

証明書テンプレートを作成するプロセスは、オンプレミスの Active Directory Certificate Services (AD CS) インフラストラクチャを使用するシナリオに適用できます。
最初に証明書テンプレートを作成し、そのテンプレートに基づいて証明書を Windows Hello for Business コンテナーにデプロイする必要があります。

証明書テンプレートの構成は、Microsoft Intuneまたは Active Directory 登録ポリシーを使用して証明書を展開するかどうかによって異なります。 ニーズに最適なオプションを選択します。

  1. 発行元証明機関 (CA) にサインインし、サーバー マネージャーを開きます

  2. [ ツール] > 証明機関] を選択します。 証明機関 Microsoft 管理コンソール (MMC) が開きます

  3. MMC で CA 名を展開し、[証明書テンプレート] > [管理] を右クリックします。

  4. [証明書テンプレート] コンソールが開きます。 すべての証明書テンプレートが詳細ウィンドウに表示されます

  5. Smartcard ログオン テンプレートを右クリックし、[テンプレートの複製] を選択します

  6. テンプレートを構成するには、次の表を使用します。

    タブ名 構成
    互換性
    • [結果の変更を表示チェック] ボックスをオフにする
    • 証明機関の一覧から [Windows Server 2012] または [Windows Server 2012 R2] を選択します
    • [認定受信者] の一覧から [Windows Server 2012] または [Windows Server 2012 R2] を選択します
    全般
    • テンプレートの表示名 (WHfB 証明書認証など) を指定する
    • 有効期間を目的の値に設定します
    • 後のテンプレート名を書き留めます。これは、テンプレート表示名からスペースを差し引いた名前 (この例では WHfBCertificateAuthentication ) と同じである必要があります。
    Extensions アプリケーション ポリシー拡張機能にスマート カード ログオンが含まれていることを確認します。
    サブジェクト名 要求で [供給] を選択します
    要求処理
    • [目的] を [署名] と [スマートカード ログオン ] に設定し、証明書の目的を変更するように求められたら [はい ] を選択します
    • [同じキーで更新] チェック ボックスを選択します
    • [登録中にユーザーにプロンプトを表示する] を選択します

    手記:PKCS プロファイルを使用して証明書を展開する場合は、[秘密キーのエクスポートを許可する] オプションを選択します
    Cryptography
    • [プロバイダー カテゴリ] を [キー ストレージ プロバイダー] に設定する
    • アルゴリズム名を RSA に設定する
    • 最小キー サイズを 2048 に設定する
    • [ 要求で次のいずれかのプロバイダーを使用する必要があります] を選択します
    • Microsoft Software Key Storage Provider を選択する
    • 要求ハッシュを SHA256 に設定する
    セキュリティ SCEP または PKCS 登録 アクセスに使用されるセキュリティ プリンシパルを追加する
  7. [ OK] を選択 して変更を完了し、新しいテンプレートを作成します。 新しいテンプレートが証明書テンプレートの一覧に表示されます

  8. 証明書テンプレート コンソールを閉じる

証明書テンプレートを発行する

  1. 証明機関コンソールで、[証明書テンプレート] を右クリックし、[発行する新しい>証明書テンプレート] を選択します。
  2. テンプレートの一覧から、前に作成したテンプレート (WHFB 証明書認証) を選択し、[ OK] を選択します。 テンプレートがすべてのサーバーにレプリケートされ、この一覧で使用可能になるまでに時間がかかる場合があります
  3. テンプレートがレプリケートされたら、MMC で証明機関の一覧を右クリックし、[ すべてのタスク] > [サービスの停止] を選択します。 CA の名前をもう一度右クリックし、[すべてのタスク] > [サービスの開始] を選択します

証明書を展開する

証明書を展開するプロセスは、Microsoft Intuneまたは Active Directory 登録ポリシーのどちらを使用するかによって異なります。 ニーズに最適なオプションを選択します。

このセクションでは、Intuneで SCEP ポリシーを構成する方法について説明します。 同様の手順に従って PKCS ポリシーを構成できます。

  1. Microsoft Intune管理センターに移動する

  2. [プロファイルの作成] > [デバイス>構成プロファイル] を選択します

  3. [プラットフォーム > Windows 10 以降] を選択し、[プロファイルの種類] > [テンプレート] > SCEP 証明書

  4. [作成] を選択します

  5. [基本] パネルで、[名前] を指定し、必要に応じて [説明] > [次へ] を指定します

  6. [ 構成設定 ] パネルで、次の表を使用してポリシーを構成します。

    設定 構成
    証明書の種類 ユーザー
    サブジェクト名の形式 CN={{UserPrincipalName}}

    注: ユーザー UPN サフィックスと Active Directory ドメイン FQDN の間に不一致がある場合は、代わりに CN={{OnPrem_Distinguished_Name}} を使用します。
    サブジェクトの別名 ドロップダウンから、値が の ユーザー プリンシパル名 (UPN) を選択します {{UserPrincipalName}}
    証明書の有効期間 選択した値を構成する
    キー ストレージ プロバイダー (KSP) Windows Hello for Businessに登録する(それ以外の場合は失敗)
    主な使用法 デジタル署名
    キー サイズ (ビット) 2048
    ハッシュ アルゴリズムの場合 SHA-2
    ルート証明書 [ +ルート証明書 ] を選択し、ルート CA 証明書用に先ほど作成した信頼された証明書プロファイルを選択します
    拡張キーの使用法
    • 名前:スマート カード ログオン
    • オブジェクト識別子:1.3.6.1.4.1.311.20.2.2
    • 定義済みの値:未構成

    • Name:Client Authentication
    • オブジェクト識別子:1.3.6.1.5.5.7.3.2
    • 定義済みの値:クライアント認証
    更新のしきい値 (%) 選択した値を構成する
    SCEP サーバー URL SCEP インフラストラクチャのデプロイ中に構成したパブリック エンドポイントを指定します
  7. [次へ] を選択します

  8. [割り当て] パネルで、構成するデバイスまたはユーザーをメンバーとして含むセキュリティ グループにポリシーを割り当て、[次へ] を選択します。

  9. [適用規則] パネルで、必要に応じて発行制限を構成し、[次へ] を選択します

  10. [確認と作成] パネルで、ポリシー構成を確認し、[作成] を選択します。

SCEP ポリシーを構成する方法の詳細については、「Intuneでの SCEP 証明書プロファイルの構成」を参照してください。 PKCS ポリシーを構成するには、「Intuneで PKCS 証明書を構成して使用する」を参照してください。

注意

Intune経由で証明書を展開し、グループ ポリシーを使用してWindows Hello for Businessを構成すると、デバイスは証明書の取得に失敗し、エラー コード0x82ab0011DeviceManagement-Enterprise-Diagnostic-Provider ログに記録されます。
このエラーを回避するには、グループ ポリシーではなく、Intuneを使用してWindows Hello for Businessを構成します。

Microsoft 以外の証明機関を使用する

Microsoft 以外の PKI を使用している場合は、オンプレミスの Active Directoryに発行された証明書テンプレートを使用できない可能性があります。 Intune/SCEP と Microsoft PKI 以外の展開の統合に関するガイダンスについては、「Microsoft Intuneで SCEP で Microsoft 以外の証明機関 (CA) を使用する」を参照してください。

SCEP を使用する代わりに、または以前にカバーされたソリューションが環境内で機能しない場合は、PKI に送信するための証明書署名要求 (CSR) を手動で生成できます。 この方法を支援するには、 Generate-CertificateRequest PowerShell コマンドレットを使用します。

Generate-CertificateRequest コマンドレットは、既存のWindows Hello for Business キーの.inf ファイルを生成します。 .infを使用して、certreq.exeを使用して証明書要求を手動で生成できます。 コマンドレットでは、証明書の PKI に送信できる .req ファイルも生成されます。

証明書がデプロイされていることを確認する

証明書がWindows Hello for Business コンテナーに正しくデプロイされていることを確認するには、次のコマンドを使用します。

certutil -store -user my

出力には、ユーザー ストアに格納されているキーと証明書が一覧表示されます。 CA から発行された証明書が Windows Hello for Business コンテナーにデプロイされている場合、Provider値がMicrosoft Passport Key Storage Providerの証明書が出力に表示されます。

以下に例を示します。

C:\Users\amanda.brady>certutil -store -user my
my "Personal"
================ Certificate 0 ================
Serial Number: 110000001f4c4eccc46fc8f93a00000000001f
Issuer: CN=Contoso - Issuing CA, DC=CONTOSO, DC=COM
 NotBefore: 12/8/2023 6:16 AM
 NotAfter: 12/7/2024 6:16 AM
Subject: CN=amanda.brady@contoso.com
Non-root Certificate
Template: 1.3.6.1.4.1.311.21.8.2835349.12167323.7094945.1118853.678601.83.11484210.8005739
Cert Hash(sha1): 63c6ce5fc512933179d3c0a5e94ecba98092f93d
Key Container = S-1-12-1-../../login.windows.net/../amanda.brady@contoso.com
Provider = Microsoft Passport Key Storage Provider
Private key is NOT exportable
Encryption test passed

ユーザー エクスペリエンス

ユーザーが証明書を取得したら、リモート デスクトップ接続 (mstsc.exe) を開くことで、ユーザーの Active Directory アカウントと同じ Active Directory フォレスト内の任意の Windows デバイスに RDP できます。 リモート ホストに接続するときに、証明書の秘密キーのロックを解除するためにWindows Hello for Businessを使用するように求められます。

参加済みデバイスMicrosoft Entra

ユーザーは、生体認証など、使用可能なWindows Helloロック解除ジェスチャを使用して認証できます。

ハイブリッド参加済みデバイスのMicrosoft Entra

資格情報プロンプトは、Windows Hello資格情報プロバイダーをセキュリティ デバイスの資格情報として識別します。 ユーザーは PIN 資格情報プロバイダーを使用してロックを解除する必要があります。

生体認証を使用したリモート デスクトップ接続認証プロンプトのスクリーンショット。

PIN を使用したリモート デスクトップ接続認証プロンプトのスクリーンショット。

指紋をロック解除要素として使用するMicrosoft Entra参加済みデバイスのユーザー エクスペリエンスを示す簡単なビデオを次に示します。

ユーザーは、リモート ホスト上のリモート デスクトップ ユーザー ローカル グループのメンバーであるなど、リモート デスクトップ プロトコルを使用してリモート サーバーに接続する権限を持っている必要があります。

互換性

ユーザーは生体認証の利便性を高く評価し、管理者はセキュリティを大切にしますが、アプリケーションやWindows Hello for Business証明書との互換性の問題が発生する可能性があります。 このようなシナリオでは、ポリシー設定を展開して、必要なユーザーの以前の動作に戻すことができます。

詳細については、「Windows Hello for Business証明書をスマート カード証明書として使用する」を参照してください。

既知の問題

RDP 経由でHello証明書を使用して TLS 1.3 クライアント認証を実行しようとすると、既知の問題があります。 認証が失敗し、 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILEDというエラーが表示されます。 Microsoft では、考えられる解決策を調査しています。