社内のデバイス正常性構成証明(DHA)サーバーの構成

Sanket Mishra

オンプレミスのWindowsサーバーから、Windows 10モバイルデバイスのデバイス正常性構成証明(DHA)を有効化できます。オンプレミスでDHAを有効にするには、まずDHAサーバーを構成します。

DHAサーバーを構成したら、Endpoint Managementポリシーを作成してオンプレミスのDHAサービスを有効にします。詳細については、「デバイス正常性構成証明デバイスポリシー」を参照してください。

DHAサーバーの前提条件

  • Windows ServerのTechnical Preview 5以降が[デスクトップエクスペリエンス]のインストールオプションを使用してインストールされ、実行されているサーバー。
  • 1台以上のWindows 10クライアントデバイス。これらのデバイスには、最新バージョンのWindowsを実行するTPM 1.2または2.0が搭載されている必要があります。
  • 以下の証明書:
    • DHA SSL証明書。エクスポート可能な秘密キーを使用して、エンタープライズの信頼されたルートにチェーンされているx.509 SSL証明書です。この証明書により、サーバー間(DHAサービスとMDMサーバー)およびサーバーとクライアント間(DHAサービスとWindows 10デバイス)を含めて、DHAのデータ通信が保護されます。
    • DHA署名証明書。エクスポート可能な秘密キーを使用して、エンタープライズの信頼されたルートにチェーンされているx.509証明書です。DHAサービスでは、この証明書を使用してデジタル署名を行います。
    • DHA暗号化証明書。エクスポート可能な秘密キーを使用して、エンタープライズの信頼されたルートにチェーンされているx.509証明書です。DHAサービスでは、この証明書を暗号化にも使用します。
  • 次のいずれかの証明書検証モードを選択します。
    • EKCert。EKCert検証モードは、インターネットに接続されていない組織のデバイス向けに最適化されています。EKCert検証モードで実行されているDHAサービスに接続する場合、デバイスはインターネットに直接アクセスすることはありません。
    • AIKCert。AIKCert検証モードは、インターネットにアクセス可能な運用環境向けに最適化されています。AIKCert検証モードで実行されているDHAサービスに接続する場合、デバイスはインターネットに直接アクセスする必要があり、MicrosoftからAIK証明書を取得できます。

WindowsサーバーにDHAサーバーの役割を追加する

  1. Windowsサーバーで、サーバーマネージャーがまだ開かれていない場合は、[スタート][サーバーマネージャ] の順にクリックします。
  2. [役割と機能の追加] をクリックします。
  3. [始める前に] ページで [次へ] をクリックします。
  4. [インストールの種類の選択] ページで、[役割ベースまたは機能ベースのインストール] をクリックして、[次へ] をクリックします。
  5. [対象サーバーの選択] ページで、[サーバープールからサーバーを選択] をクリックして、[次へ] をクリックします。
  6. [サーバーの役割の選択] ページで、[デバイス正常性構成証明]チェックボックスをオンにします。
  7. オプション:[機能の追加] をクリックして、その他の必要な役割サービスと機能をインストールします。
  8. [次へ] をクリックします。
  9. [機能の選択] ページで、[次へ] をクリックします。
  10. [Web サーバーの役割(IIS)] ページで、[次へ] をクリックします。
  11. [役割サービスの選択] ページで、[次へ] をクリックします。
  12. [デバイス正常性構成証明サービス] ページで、[次へ] をクリックします。
  13. [インストールオプションの確認] ページで、[インストール] をクリックします。
  14. インストールが完了したら、[閉じる] をクリックします。

サーバーの証明書ストアにSSL証明書を追加する

  1. SSL証明書ファイルの場所に移動して選択します。
  2. ストアの保存場所として [現在のユーザー] を選択し、[次へ] をクリックします。

    Windows Server Managerの画像

  3. 秘密キーのパスワードを入力します。

  4. [すべての拡張プロパティを含める] インポートオプションが選択されていることを確認します。[次へ] をクリックします。

    Windows Server Managerの画像

  5. 以下のウィンドウが表示されたら、[はい] をクリックします。

    Windows Server Managerの画像

  6. 証明書がインストールされたことを確認します。

    1. [コマンド プロンプト]ウィンドウを開きます。

    2. mmc」と入力してEnterキーを押します。ローカルマシンのストア内の証明書を表示するには、管理者の役割に属している必要があります。

    3. [ファイル]メニューで、[スナップインの追加と削除] をクリックします。

    4. [追加] をクリックします。

    5. [スタンドアロン スナップインの追加]ダイアログボックスで、[証明書] を選択します。

    6. [追加] をクリックします。

    7. [証明書スナップイン]ダイアログボックスで、[ユーザーアカウント] を選択します(サービスアカウント所有者としてログインしている場合は、[サービスアカウント] を選択します)。

    8. [コンピュータの選択]ダイアログボックスで、[完了]をクリックします。

      Windows Server Managerの画像

  7. [サーバーマネージャ]>[IIS] の順に選択し、アイコンの一覧で [サーバー証明書] を選択します。

    Windows Server Managerの画像

  8. [アクション]メニューで [インポート…] を選択して、SSL証明書をインポートします。

    Windows Server Managerの画像

証明書の拇印を取得して保存する

  1. ファイルエクスプローラーの検索バーに「mmc」と入力します。
  2. [コンソールルート]ウィンドウで、[ファイル]>[スナップインの追加と削除…] の順にクリックします。

    Windowsファイルエクスプローラの画像

  3. [利用できるスナップイン]で[証明書]を選択し、[選択されたスナップイン]に追加します。

    Windowsのスナップインの追加と削除の画像

  4. [ユーザーアカウント] を選択します。

    Windowsのスナップインの追加と削除の画像

  5. 証明書を選択し、[OK] をクリックします。

    Windowsのスナップインの追加と削除の画像

  6. 証明書をダブルクリックして、[詳細] タブをクリックします。下方向にスクロールして、証明書の拇印を表示します。

    Windowsのスナップインの追加と削除の画像

  7. 拇印をファイルにコピーします。PowerShellコマンドで拇印を使用する場合は、スペースを削除します。

署名証明書と暗号化証明書をインストールする

以下のPowerShellコマンドをWindowsサーバーで実行して、署名証明書と暗号化証明書をインストールします。

プレースホルダーReplaceWithThumbprintを置き換えて、下に示すように二重引用符で囲みます。

$key = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Thumbprint -like "ReplaceWithThumbprint"}

$keyname = $key.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName

$keypath = $env:ProgramData + "\Microsoft\Crypto\RSA\MachineKeys" + $keyname icacls $keypath /grant IIS_IUSRS`:R

TPMルート証明書を抽出し、信頼できる証明書パッケージをインストールする

以下のコマンドをWindowsサーバーで実行します。

mkdir .\TrustedTpm

expand -F:* .\TrustedTpm.cab .\TrustedTpm

cd .\TrustedTpm

.\setup.cmd

DHAサービスを構成する

Windowsサーバー上で次のコマンドを実行して、DHAサービスを構成します。

プレースホルダーReplaceWithThumbprintを置き換えます。

Install-DeviceHealthAttestation -EncryptionCertificateThumbprint ReplaceWithThumbprint

-SigningCertificateThumbprint ReplaceWithThumbprint

-SslCertificateStoreName My -SslCertificateThumbprint ReplaceWithThumbprint

-SupportedAuthenticationSchema "AikCertificate"

以下のコマンドをWindowsサーバーで実行して、DHAサービスの証明書チェーンポリシーを設定します。

$policy = Get-DHASCertificateChainPolicy

$policy.RevocationMode = "NoCheck"

Set-DHASCertificateChainPolicy -CertificateChainPolicy $policy

以下のようにプロンプトに回答します。

  Confirm

    Are you sure you want to perform this action?

    Performing the operation "Install-DeviceHealthAttestation" on target "WIN-N27D1FKCEBT".

    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A

    Adding SSL binding to website 'Default Web Site'.

    Add SSL binding?

    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

    Adding application pool 'DeviceHealthAttestation_AppPool' to IIS.

    Add application pool?

    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

    Adding web application 'DeviceHealthAttestation' to website 'Default Web Site'.

    Add web application?

    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

    Adding firewall rule 'Device Health Attestation Service' to allow inbound connections on port(s) '443'.

    Add firewall rule?

    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

    Setting initial configuration for Device Health Attestation Service.

    Set initial configuration?

    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

    Registering User Access Logging.

    Register User Access Logging?

    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): Y

構成を確認する

DHASActiveSigningCertificateがアクティブであるかどうかを確認するには、サーバーで次のコマンドを実行します。

Get-DHASActiveSigningCertificate

証明書がアクティブな場合、証明書の種類(署名)と拇印が表示されます。

DHASActiveSigningCertificateがアクティブであるかどうかを確認するには、サーバーで次のコマンドを実行します。

プレースホルダーReplaceWithThumbprintを置き換えて、下に示すように二重引用符で囲みます。

Set-DHASActiveEncryptionCertificate -Thumbprint "ReplaceWithThumbprint" -Force

Get-DHASActiveEncryptionCertificate

証明書がアクティブな場合、拇印が表示されます。

最終チェックを行うには、次のURLにアクセスします。

https://<dha.myserver.com>/DeviceHeathAttestation/ValidateHealthCertificate/v1

DHAサービスが実行されている場合は、「メソッドは許可されていません」と表示されます。

DHAサービスの確認画像