Intune でインポートした PKCS 証明書を構成して使用する

Microsoft Intune では、インポートした公開キー ペア (PKCS) 証明書の使用がサポートされます。これは通常、電子メール プロファイルを使用した S/MIME 暗号化に使用されます。 Intune 内の特定の電子メール プロファイルでは、S/MIME 署名証明書と S/MIME 暗号化証明書を定義できる S/MIME を有効にするオプションがサポートされています。

重要

この Microsoft Tech Community ブログで発表されているように、Azure Active Directory 認証ライブラリ (ADAL) のサポートは 2022 年 12 月に終了します。 PowerShell スクリプトまたはカスタム コードが引き続きユーザー PFX 証明書を Intune にインポートするには、 Microsoft 認証ライブラリ (MSAL) を利用するように更新する必要があります。 さらに、グローバル Intune アプリケーション ID は、 今後の認証の問題を防ぐために、Microsoft Entra ID に登録した後、アプリに割り当てられた一意のアプリケーション (クライアント) ID で更新する必要があります。

GitHub では、PFX 証明書のインポートを簡略化するためのサンプル PowerShell スクリプトが、MSAL と Microsoft Entra Application (クライアント) ID を参照するように更新されました。 この記事のスクリプト サンプルも、該当する場合は更新されます。

詳細については、GitHub で PFXImport PowerShell Project readme ファイルを表示し、更新されたサンプル スクリプトをダウンロードします。

電子メールは特定の証明書で暗号化されるため、S/MIME 暗号化は困難です。

  • 暗号化を解除できるように、電子メールを暗号化した証明書の秘密キーが電子メールを読んでいるデバイス上に必要です。
  • デバイス上の証明書の有効期限が切れる前に、新しい証明書をインポートして、デバイスが新しいメールの暗号化を解除できるようにする必要があります。 これらの証明書の更新はサポートされていません。
  • 暗号化証明書は定期的に更新されます。つまり、古いメールを引き続き暗号化解除できるように、デバイスに過去の証明書を保持することが必要な場合があります。

同じ証明書を複数のデバイスで使用する必要があるため、SCEP または PKCS 証明書プロファイルをこの目的で使用することはできません。これらの証明書配信メカニズムではデバイスごとに固有の証明書が提供されるからです。

Intune で S/MIME を使用する方法について詳しくは、S/MIME を使用した電子メールの暗号化に関する記事をご覧ください。

サポートされるプラットフォーム

Intune では、次のプラットフォーム用の PFX 証明書のインポートをサポートします。

  • Android デバイス管理者
  • Android Enterprise:
    • フル マネージド
    • 会社所有の仕事用プロファイル
    • 個人所有の仕事用プロファイル
  • iOS/iPadOS
  • macOS
  • Windows 10 または 11

重要

Microsoft Intune は、2024 年 12 月 31 日に Google Mobile Services (GMS) にアクセスできるデバイスでの Android デバイス管理者管理のサポートを終了します。 その日以降、デバイスの登録、テクニカル サポート、バグ修正、セキュリティ修正は利用できなくなります。 現在デバイス管理者管理を使用している場合は、サポートが終了する前に、Intune で別の Android 管理オプションに切り替えることを推奨します。 詳細については、「 GMS デバイスでの Android デバイス管理者のサポートの終了」を参照してください。

要件

インポートした PKCS 証明書を Intune で使用するには、次のインフラストラクチャが必要です。

  • Certificate Connector for Microsoft Intune:

    この証明書コネクタでは、特定のユーザーを対象にした S/MIME メールの暗号化のために Intune にインポートされる PFX ファイルに対する要求を処理します。 インストールする各コネクタから、アップロードした PFX ファイルのパスワードの暗号化に使用される秘密キーに確実にアクセスできるようにしてください。

    証明書コネクタについては、以下を参照してください。

  • Windows サーバー:

    証明書コネクタは、コネクタの前提条件を満たす Windows サーバーにインストールされます。

  • Visual Studio 2015 以上 (オプション):

    Visual Studio を使用して、Microsoft Intune に PFX 証明書をインポートするためのコマンドレットを含むヘルパー PowerShell モジュールを構築します。 ヘルパー PowerShell コマンドレットを入手するには、GitHub の PFXImport PowerShell プロジェクトに関するページをご覧ください。

しくみ

Intune を使用して、インポートした PFX 証明書をユーザーにデプロイする場合、デバイスに加えて次の 2 つのコンポーネントが役割を果たします。

  • Intune サービス: PFX 証明書を暗号化された状態で格納し、ユーザー デバイスへの証明書のデプロイを処理します。 証明書の秘密キーを保護するパスワードは、ハードウェア セキュリティ モジュール (HSM) または Windows 暗号化を使用してアップロード前に暗号化され、どの時点でも Intune が秘密キーにアクセスできないようにします。

  • Certificate Connector for Microsoft Intune: Intune にインポートされた PFX 証明書がデバイスによって要求されると、暗号化されたパスワード、証明書、およびデバイスの公開キーがコネクタに送信されます。 コネクタでは、オンプレミスの秘密キーを使用してパスワードが復号化され、Intune に証明書を戻す前に、デバイス キーを使用してパスワード (および iOS を使用している場合はすべての plist プロファイル) が再暗号化されます。 その後、Intune によってデバイスに証明書が配信され、デバイスではデバイスの秘密キーを使用してその暗号化を解除し、証明書をインストールします。

Intune への PFX 証明書のインポート

Microsoft Graph を使用して、ユーザーの PFX 証明書を Intune にインポートします。 GitHub のヘルパー PFXImport PowerShell プロジェクトでは、操作を簡単に行うためのコマンドレットが提供されています。

Graph を使用して独自のカスタム ソリューションを使用する場合は、userPFXCertificate リソースの種類を使用します。

"PFXImport PowerShell プロジェクト" コマンドレットの構築

PowerShell コマンドレットを使用するには、Visual Studio を使用してプロジェクトをご自身でビルドします。 そのプロセスは簡単で、サーバー上で実行できますが、ワークステーション上で実行することをお勧めします。

  1. GitHub 上の Intune-Resource-Access リポジトリのルートに移動し、Git を使用してリポジトリをコンピューターにダウンロードまたは複製します。

    GitHub のダウンロード ボタン

  2. .\Intune-Resource-Access-develop\src\PFXImportPowershell\ に移動し、PFXImportPS.sln ファイルを使用してプロジェクトを Visual Studio で開きます。

  3. 上部で、[デバッグ] から [リリース] に変更します。

  4. [ビルド] に移動し、[PFXImportPS のビルド] を選択します。 しばらくすると、Visual Studio の左下に [ビルドが成功しました ] 確認が表示されます。

    Visual Studio のビルド オプション

  5. ビルド プロセスによって、PowerShell モジュールを含む新しいフォルダーが .\Intune-Resource-Access-develop\src\PFXImportPowershell\PFXImportPS\bin\Release に作成されます。

    この Release フォルダーは次の手順で使用します。

暗号化公開キーの作成

PFX 証明書とその秘密キーを Intune にインポートします。 秘密キーを保護するパスワードは、オンプレミスに格納されている公開キーを使用して暗号化されます。 Windows 暗号化、ハードウェア セキュリティ モジュール、または別の種類の暗号化を使用して、公開キーと秘密キーのペアを生成し、格納することができます。 使用する暗号化の種類によっては、バックアップの目的で公開キーと秘密キーのペアをファイル形式でエクスポートできます。

PowerShell モジュールには、Windows 暗号化を使用してキーを作成するためのメソッドが用意されています。 他のツールを使用してキーを作成することもできます。

Windows 暗号化を使用して暗号化キーを作成するには

  1. Visual Studio によって作成された Release フォルダーを、Certificate Connector for Microsoft Intune をインストールしたサーバーにコピーします。 このフォルダーには、PowerShell モジュールが格納されています。

  2. サーバー上で、管理者として PowerShell を開き、PowerShell モジュールが格納されている Release フォルダーに移動します。

  3. モジュールをインポートするには、Import-Module .\IntunePfxImport.psd1 を実行してモジュールをインポートします。

  4. 次に、Add-IntuneKspKey -ProviderName "Microsoft Software Key Storage Provider" -KeyName "PFXEncryptionKey" を実行します

    ヒント

    PFX 証明書をインポートするときに、使用するプロバイダーをもう一度選択する必要があります。 Microsoft ソフトウェア キー記憶域プロバイダーを使用できますが、別のプロバイダーの使用もサポートされています。 キー名も例として提供されていますが、別のキー名を使用することもできます。

    ワークステーションから証明書をインポートする場合は、次のコマンドを使用してこのキーをファイルにエクスポートできます。 Export-IntunePublicKey -ProviderName "<ProviderName>" -KeyName "<KeyName>" -FilePath "<File path\Filename.PFX>"

    インポートした PFX 証明書を正常に処理できるように、Certificate Connector for Microsoft Intune をホストしている各サーバーに秘密キーをインポートする必要があります。

ハードウェア セキュリティ モジュール (HSM) を使用するには

ハードウェア セキュリティ モジュール (HSM) を使用して、公開キーと秘密キーのペアを生成し、格納することができます。 詳しくは、HSM プロバイダーのドキュメントをご覧ください。

PFX 証明書のインポート

次のプロセスでは、PFX 証明書をインポートする方法の例として、PowerShell コマンドレットを使用します。 ご自身の要件に応じて、さまざまなオプションを選択できます。

オプションは以下のとおりです。

  • 使用目的 (タグに基づいて証明書をグループ化):

    • 未割り当て
    • smimeEncryption
    • smimeSigning
  • パディング スキーム:

    • oaepSha256
    • oaepSha384
    • oaepSha512

キーの作成に使用したプロバイダーに一致するキー記憶域プロバイダーを選択します。

PFX 証明書をインポートするには

  1. プロバイダーのドキュメントに従って、任意の証明機関 (CA) から証明書をエクスポートします。 Microsoft Active Directory 証明書サービスの場合は、こちらのサンプル スクリプトを使用できます。

  2. サーバー上で、管理者として PowerShell を開き、PowerShell モジュール IntunePfxImport.psd1 が格納されている Release フォルダーに移動します。

    注:

    IntunePfxImport.psd1 を実行する前に、GCC High および DoD テナントに対して次の変更を行う必要があります。

    テキスト エディターまたは PowerShell ISE を使用してファイルを編集します。これにより、GCC High 環境のサービス エンドポイントが更新されます。 これらの更新により、URI のサフィックスが .com から .us に変更されることに注意してください。 IntunePfxImport.psd1 内には、合計 2 つの更新があります。 1 つは AuthURI に対して、もう 1 つは GraphURI に対してです。

    PrivateData = @{
        AuthURI = "login.microsoftonline.us"
        GraphURI = "https://graph.microsoft.us"
        SchemaVersion = "beta"
    
        ClientId = "00000000-0000-0000-0000-000000000000" # Client Id from Azure app registration
    
        ClientSecret = ""  # client secret from app registration when using application permissions to authenticate
    
        TenantId = "00000000-0000-0000-0000-000000000000" # TenantId is required when using client secret
        }
    

    変更内容を保存したら、PowerShell を再起動します。

  3. モジュールをインポートするには、Import-Module .\IntunePfxImport.psd1 を実行します

  4. Intune Graph を認証するには、Set-IntuneAuthenticationToken -AdminUserName "<Admin-UPN>" を実行します

    注:

    認証は Graph に対して実行されるので、AppID にアクセス許可を付与する必要があります。 このユーティリティを初めて使用する場合は、"全体管理者" が必要です。 PowerShell コマンドレットでは、PowerShell Intune サンプルで使用されるものと同じ AppID が使用されます。

  5. $SecureFilePassword = ConvertTo-SecureString -String "<PFXPassword>" -AsPlainText -Force を実行して、インポートする各 PFX ファイルのパスワードをセキュリティで保護された文字列に変換します。

  6. UserPFXCertificate オブジェクトを作成するには、$userPFXObject = New-IntuneUserPfxCertificate -PathToPfxFile "<FullPathPFXToCert>" $SecureFilePassword "<UserUPN>" "<ProviderName>" "<KeyName>" "<IntendedPurpose>" を実行します

    例: $userPFXObject = New-IntuneUserPfxCertificate -PathToPfxFile "C:\temp\userA.pfx" $SecureFilePassword "userA@contoso.com" "Microsoft Software Key Storage Provider" "PFXEncryptionKey" "smimeEncryption"

    注:

    コネクタがインストールされているサーバー以外のシステムから証明書をインポートする場合、キー ファイルのパスを含む次のコマンドを使用する必要があります: $userPFXObject = New-IntuneUserPfxCertificate -PathToPfxFile "<FullPathToPFX>" $SecureFilePassword "<UserUPN>" "<ProviderName>" "<KeyName>" "<IntendedPurpose>" "<PaddingScheme>" "<File path to public key file>"

    VPN は IntendedPurpose としてサポートされていません。

  7. Import-IntuneUserPfxCertificate -CertificateList $userPFXObject を実行して、UserPFXCertificate オブジェクトを Intune にインポートします

  8. 証明書がインポートされたことを確認するには、Get-IntuneUserPfxCertificate -UserList "<UserUPN>" を実行します

  9. Microsoft Entra トークン キャッシュの有効期限が切れるのを待たずにクリーンアップするベスト プラクティスとして、 Remove-IntuneAuthenticationToken

その他の使用可能なコマンドについて詳しくは、GitHub の PFXImport PowerShell プロジェクトにある readme ファイルをご覧ください。

PKCS のインポートされた証明書プロファイルを作成する

証明書を Intune にインポートした後、 PKCS インポートされた証明書 プロファイルを作成し、Microsoft Entra グループに割り当てます。

注:

PKCS のインポートされた証明書プロファイルの作成後は、プロファイルの [使用目的][キー記憶域プロバイダー] (KSP) 値は読み取り専用になり、編集できなくなります。 これらのいずれかの設定に別の値が必要な場合は、新しいプロファイルを作成して展開します。

  1. Microsoft Intune 管理センターにサインインします。

  2. [ デバイス>管理デバイス>Configuration>Create] を選択して移動します。

  3. 次のプロパティを入力します。

    • プラットフォーム: デバイスのプラットフォームを選択します。
    • プロファイル: [PKCS のインポートされた証明書] を選択します。 または、[テンプレート]>[PKCS のインポートされた証明書] を選択します。
  4. [作成] を選択します。

  5. [Basics]\(基本\) で次のプロパティを入力します。

    • 名前: プロファイルのわかりやすい名前を入力します。 後で簡単に識別できるよう、プロファイルに名前を付けます。 たとえば、「会社全体の PKCS のインポートされた証明書プロファイル」は適切な名前です。
    • 説明: プロファイルの説明を入力します。 この設定は省略可能ですが、推奨されます。
  6. [次へ] を選択します。

  7. [構成設定] で、次のプロパティを入力します。

    • 使用目的: このプロファイルに対してインポートされた証明書の目的を指定します。 管理者は、証明書をさまざまな使用目的でインポートできます (S/MIME 署名、S/MIME 暗号化など)。 証明書プロファイル内で選択された使用目的によって、証明書プロファイルは適切なインポートされた証明書と対応させられます。 使用目的は、インポートした証明書をグループ化するためのタグであり、そのタグを使用してインポートされた証明書が使用目的を満たすことを保証するものではありません。

    • キー格納プロバイダー (KSP): Windows では、デバイス上のキーを格納する場所を選択します。

  8. この手順は、フル マネージド、Dedicated、Corporate-Owned 仕事用プロファイルAndroid Enterprise デバイス プロファイルにのみ適用されます。

    [アプリ] で、証明書アクセス権を構成して、証明書アクセスがアプリケーションに付与される方法を管理します。 次から選択します。

    • アプリのユーザーの承認を要求する(既定値) – ユーザーはすべてのアプリケーションによる証明書の使用を承認する必要があります。
    • 特定のアプリに対してサイレントモードで許可する (他のアプリにユーザーの承認が必要) – このオプションを使用して、[ アプリの追加] を選択し、ユーザーの操作なしで証明書をサイレントに使用する 1 つ以上のアプリを選択します。
  9. [次へ] を選択します。

  10. [割り当て] で、プロファイルを受け取るユーザーまたはグループを選択します。 プロファイルの割り当ての詳細については、ユーザーおよびデバイス プロファイルの割り当てに関するページを参照してください。

    [次へ] を選択します。

  11. (Windows 10/11 のみに適用) [適用性ルール] で、適用性ルールを指定してこのプロファイルの割り当てを調整します。 デバイスの OS エディションまたはバージョンに基づいて、プロファイルを割り当てるかどうかを選択できます。

    詳細については、「Microsoft Intune でのデバイス プロファイルの作成」の「適用性ルール」を参照してください。

    [次へ] を選択します。

  12. [確認と作成] で、設定を確認します。 [作成] を選択すると、変更内容が保存され、プロファイルが割り当てられます。 また、ポリシーがプロファイル リストに表示されます。

サードパーティ パートナーのサポート

次のパートナーからは、PFX 証明書を Intune にインポートするために使用できるサポートされた方法またはツールが提供されています。

DigiCert

DigiCert PKI プラットフォーム サービスを使用する場合は、DigiCert の Intune S/MIME 証明書用インポート ツールを使用して、PFX 証明書を Intune にインポートすることができます。 このツールを使用すると、この記事で既に説明した「Intune への PFX 証明書のインポート」の手順に従う必要がなくなります。

ツールの入手方法など、DigiCert のインポート ツールの詳細については、DigiCert のサポート技術情報の https://knowledge.digicert.com/tutorials/microsoft-intune.html を参照してください。

EverTrust

スタンドアロンまたは既存の PKI に結合された PKI ソリューションとして EverTrust を使用する場合は、PFX 証明書をIntuneにインポートするように EverTrust Horizon を構成できます。 統合を完了すると、この記事で既に説明した「Intune への PFX 証明書のインポート」セクションの手順に従う必要はなくなります。

KeyTalk と Intune の統合の詳細については、https://evertrust.fr/horizon-and-intune-integration/ を参照してください。

KeyTalk

KeyTalk サービスを使用する場合、PFX 証明書を Intune にインポートするようにサービスを構成できます。 統合を完了すると、この記事で既に説明した「Intune への PFX 証明書のインポート」セクションの手順に従う必要はなくなります。

KeyTalk と Intune の統合の詳細については、KeyTalk のサポート技術情報の https://keytalk.com/support を参照してください。

次の手順

証明書に SCEP を使用する

Intune UI では、Microsoft Defender for Endpoint のセキュリティ管理シナリオで Windows クライアントとは異なる Windows Server デバイスが表示されます

Microsoft Defender for Endpoint (MDE セキュリティ構成) のセキュリティ管理シナリオをサポートするために、Intune は、Microsoft Entra ID の Windows デバイスを、Windows Server を実行するデバイスの場合は Windows Server、Windows 10 または Windows 11 を実行するデバイスの場合は Windows と区別します。

この変更により、Microsoft Defender for Endpoint セキュリティ構成のポリシー ターゲットを向上させることができます。 たとえば、Windows Server デバイスのみ、または Windows クライアント デバイス (Windows 10/11) のみで構成される動的グループを使用できます。