使用 Intune 設定及使用匯入的 PKCS 憑證

Microsoft Intune 支援使用匯入的公鑰組 (PKCS) 憑證,通常用於搭配 Email 配置檔的 S/MIME 加密。 Intune 中的某些電子郵件設置檔支援啟用 S/MIME 的選項,您可以在其中定義 S/MIME 簽署憑證和 S/MIME 加密憑證。

重要事項

本 Microsoft Tech Community 部落格所宣佈,Azure Active Directory 驗證連結庫 (ADAL) 的支援將於 2022 年 12 月終止。 若要讓PowerShell腳本或自定義程式代碼繼續將使用者 PFX 憑證匯入 Intune,必須更新它們,才能利用 Microsoft 驗證連結庫 (MSAL) 。 此外,在 Microsoft Entra ID 中註冊應用程式之後,應該使用指派給應用程式的唯一應用程式 (用戶端) 標識符來更新全域 Intune 應用程式識別碼,以防止未來的驗證問題

在 GitHub 上,用來協助簡化匯入 PFX 憑證的範例 PowerShell 腳本已更新為參考 MSAL 和 Microsoft Entra 應用程式 (用戶端) 標識符。 本文中的腳本範例也會在適用時更新。

如需詳細資訊,請檢視 GitHub 上的 PFXImport PowerShell 專案 自述檔,並下載更新的範例腳本。

S/MIME 加密是一項挑戰,因為電子郵件是以特定憑證加密:

  • 您必須擁有憑證的私鑰,該憑證會在您要讀取電子郵件的裝置上加密電子郵件,才能將它解密。
  • 在裝置上的憑證到期之前,您應該匯入新的憑證,讓裝置可以繼續解密新的電子郵件。 不支援更新這些憑證。
  • 加密憑證會定期更新,這表示您可能想要在裝置上保留過去的憑證,以確保可以繼續解密較舊的電子郵件。

因為需要跨裝置使用相同的憑證,所以無法基於此目的使用 SCEPPKCS 憑證配置檔,因為這些憑證傳遞機制會為每個裝置提供唯一的憑證。

如需搭配 Intune 使用 S/MIME 的詳細資訊, 請參閱使用 S/MIME 來加密電子郵件

支援的平台

Intune 支持匯入下列平臺的 PFX 憑證:

  • Android 裝置系統管理員
  • Android Enterprise:
    • 完全受控
    • Corporate-Owned 工作配置檔
    • Personally-Owned 工作配置檔
  • iOS/iPadOS
  • macOS
  • Windows 10/11

重要事項

Microsoft Intune 於 2024 年 8 月 30 日終止對可存取 Google 行動服務 (GMS) 之裝置上的 Android 裝置系統管理員管理支援。 在該日期之後,裝置註冊、技術支援、錯誤修正和安全性修正將無法使用。 如果您目前使用裝置系統管理員管理,建議您在支持結束之前,先切換至 Intune 中的另一個 Android 管理選項。 如需詳細資訊,請參閱 終止 GMS 裝置上的 Android 裝置系統管理員支援

需求

若要搭配 Intune 使用匯入的 PKCS 憑證,您需要下列基礎結構:

  • 適用於 Microsoft Intune 的憑證連接器

    憑證連接器會處理匯入至 Intune 的 PFX 檔案要求,以針對特定用戶進行 S/MIME 電子郵件加密。 確定您安裝的每個連接器都可存取用來加密已上傳 PFX 檔案密碼的私鑰。

    如需憑證連接器的相關信息,請參閱:

  • Windows Server

    憑證連接器會安裝在符合連接器 必要條件的 Windows Server 上。

  • Visual Studio 2015 或更新版本 (選擇性) :

    您可以使用 Visual Studio 建置協助程式 PowerShell 模組與 Cmdlet,以將 PFX 憑證匯入 Microsoft Intune。 若要取得協助程式PowerShell Cmdlet,請參閱 GitHub 中的 PFXImport PowerShell 專案

運作方式

當您使用 Intune 將匯入的 PFX 憑證 部署給使用者時,除了裝置之外,還有兩個正在播放的元件:

  • Intune 服務:將 PFX 憑證儲存在加密狀態,並處理將憑證部署至使用者裝置的作業。 保護憑證私鑰的密碼會先加密,再使用硬體安全性模組 (HSM) 或 Windows 密碼編譯來上傳,以確保 Intune 無法隨時存取私鑰。

  • 適用於 Microsoft Intune 的憑證連接器:當裝置要求匯入至 Intune 的 PFX 憑證時,加密的密碼、憑證和裝置的公鑰會傳送至連接器。 連接器會使用內部部署私鑰來解密密碼,然後在將憑證傳回 Intune 之前,使用 iOS) 搭配裝置金鑰,然後重新加密密碼 (和任何 plist 設定檔。 然後,Intune 會將憑證傳遞給裝置,而裝置會使用裝置的私鑰將憑證解密並安裝憑證。

將 PFX 憑證匯入 Intune

您可以使用 Microsoft Graph 將使用者 PFX 憑證匯入 Intune。 GitHub 的協助程式 PFXImport PowerShell 專案提供您 Cmdlet,讓您輕鬆執行作業。

如果您偏好使用 Graph 使用自己的自定義解決方案,請使用 userPFXCertificate 資源類型

建置 'PFXImport PowerShell 專案' Cmdlet

若要使用 PowerShell Cmdlet,您可以使用 Visual Studio 自行建置專案。 此程式是直接的,雖然它可以在伺服器上執行,但我們建議您在工作站上執行。

  1. 移至 GitHub 上 Intune-Resource-Access 存放庫的根目錄,然後使用 Git 將存放庫下載或複製到您的電腦。

    GitHub 下載按鈕

  2. 使用檔案PFXImportPS.sln,移至 .\Intune-Resource-Access-develop\src\PFXImportPowershell\ 並使用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>"

    私鑰必須在裝載憑證連接器的每部伺服器上匯入 Microsoft Intune,才能成功處理匯入的 PFX 憑證。

若要使用硬體安全性模組 (HSM)

您可以使用硬體安全性模組 (HSM) 來產生和儲存公開/私鑰組。 如需詳細資訊,請參閱 HSM 提供者的檔。

匯入 PFX 憑證

下列程式會使用 PowerShell Cmdlet 作為如何匯入 PFX 憑證的範例。 您可以根據需求選擇不同的選項。

選項包括:

  • 目的 (根據標記) 將憑證分組在一起:

    • 未指派
    • 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 內總共有兩個更新。 一個用於 AuthURI ,第二個用於 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 Cmdlet 使用的 AppID 與 搭配 PowerShell Intune 範例使用的 AppID 相同。

  5. 執行 ,將您要匯入之每個 PFX 檔案的密碼轉換為安全字串 $SecureFilePassword = ConvertTo-SecureString -String "<PFXPassword>" -AsPlainText -Force

  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. 執行 將 UserPFXCertificate 物件匯入至 Intune Import-IntuneUserPfxCertificate -CertificateList $userPFXObject

  8. 若要驗證已匯入憑證,請執行 Get-IntuneUserPfxCertificate -UserList "<UserUPN>"

  9. 最佳做法是清除 Microsoft Entra 令牌快取,而不等待它自行到期,請執行Remove-IntuneAuthenticationToken

如需其他可用命令的詳細資訊,請參閱 GitHub 的 PFXImport PowerShell 專案中的自述檔。

建立 PKCS 匯入的憑證配置檔

將憑證匯入 Intune 之後,請建立 PKCS 匯入的憑證配置檔,並將它指派給 Microsoft Entra 群組。

注意事項

建立 PKCS 匯入的憑證配置檔之後,配置檔中的預定 用途密鑰儲存提供者 (KSP) 值是唯讀的,而且無法編輯。 如果您需要上述任一設定的不同值,請建立並部署新的配置檔。

  1. 登入 Microsoft Intune 系統管理中心

  2. 選取並移至 [ 裝置>設定>建立]

  3. 輸入下列內容:

    • 平台:選擇裝置的平臺。
    • 配置檔:選取 [PKCS 匯入的憑證]。 或者,選取 [範本>PKCS 匯入的憑證]
  4. 選取 [建立]

  5. 在 [基本資訊] 中,輸入下列內容:

    • 名稱:輸入設定檔的描述性名稱。 為您的配置檔命名,以便稍後輕鬆地識別它們。 例如,良好的配置檔名稱是 整家公司的 PKCS 匯入憑證配置檔
    • 描述:輸入設定檔的描述。 這是選擇性設定,但建議進行。
  6. 選取[下一步]。

  7. 在 [ 組態設定] 中,輸入下列屬性:

    • 預定目的:指定針對此配置檔匯入之憑證的預定用途。 系統管理員可以匯入具有不同用途的憑證, (例如 S/MIME 簽署或 S/MIME 加密) 。 憑證配置檔中選取的預定目的,會符合憑證配置檔與正確匯入的憑證。 預定用途是將匯入的憑證群組在一起的標記,不保證使用該卷標匯入的憑證會符合預期的目的。

    • 密鑰儲存提供者 (KSP) :針對 Windows,選取要在裝置上儲存金鑰的位置。

  8. 此步驟僅適用於完全受控、專用和 Corporate-Owned 工作配置檔的Android Enterprise裝置配置檔。

    [應用程式] 中,設定 憑證存取 以管理如何將憑證存取權授與應用程式。 從下列項目中選擇:

    • 應用程式需要使用者核准 (預設) – 用戶必須核准所有應用程式使用憑證。
    • 針對特定應用程式以無訊息方式授與 (需要使用者核准其他應用程式) – 使用此選項,選取 [ 新增應用程式],然後選取一或多個應用程式以無訊息方式使用憑證,而不需要用戶互動。
  9. 選取 [下一步]

  10. 在 [ 指派] 中,選取將接收配置檔的使用者或群組。 如需指派設定檔的詳細資訊,請參閱指派使用者和裝置設定檔

    選取[下一步]。

  11. (僅適用於 Windows 10/11) 在適用規則中,指定適用性規則以精簡此配置檔的指派。 您可以選擇根據 OS 版本或裝置版本來指派或不指派設定檔。

    如需詳細資訊,請參閱在 Microsoft Intune 中建立裝置配置檔中的適用性規則

    選取[下一步]。

  12. 在 [檢閱 + 建立] 中,檢閱您的設定。 當您選取 [建立] 時,系統會儲存您的變更,然後指派設定檔。 原則也會顯示在設定檔清單中。

支援第三方合作夥伴

下列合作夥伴提供可讓您用來將 PFX 憑證匯入 Intune 的支援方法或工具。

DigiCert

如果您使用 DigiCert PKI 平台服務,您可以使用適用於 Intune S/MIME 憑證 的 DigiCert 匯入工具,將 PFX 憑證匯入 Intune。 使用此工具會取代遵循本文稍早所述將 PFX 憑證匯入 Intune 一節中的指示。

若要深入瞭解 DigiCert 匯入工具,包括如何取得工具,請參閱 https://knowledge.digicert.com/tutorials/microsoft-intune.html DigiCert 知識庫。

EverTrust

如果您使用 EverTrust 作為 PKI 解決方案、獨立或合併至現有的 PKI,您可以設定 EverTrust Horizon 將 PFX 憑證匯入 Intune。 完成整合之後,您不需要遵循本文稍早所述將 PFX 憑證匯入 Intune 一節中的指示。

若要深入瞭解 EverTrust 與 Intune 的整合,請參閱 https://evertrust.fr/horizon-and-intune-integration/

KeyTalk

如果您使用 KeyTalk 服務,您可以將其服務設定為將 PFX 憑證匯入 Intune。 完成整合之後,您不需要遵循本文稍早所述將 PFX 憑證匯入 Intune 至 Intune 一節中的指示。

若要深入瞭解 KeyTalk 與 Intune 的整合,請參閱 https://keytalk.com/support KeyTalk 知識庫。

後續步驟

針對憑證使用 SCEP

Intune UI 會針對適用於 適用於端點的 Microsoft Defender 案例的安全性管理,將 Windows Server 裝置顯示為不同於 Windows 用戶端

為了支援 適用於端點的 Microsoft Defender 安全性管理 ( MDE 安全性設定) 案例,Intune 很快就會將 Microsoft Entra ID 中的 Windows 裝置區分為執行 Windows Server 的裝置為 Windows Server或執行 Windows 10 或Windows 11。

透過這項變更,您將能夠改善 適用於端點的 Microsoft Defender 安全性設定的原則目標。 例如,您將能夠使用僅包含 Windows Server 裝置的動態群組,或僅包含 Windows 用戶端裝置 (Windows 10/11) 。