更新 Microsoft 365 和 Microsoft Entra 標識符的同盟憑證

概觀

若要在 Microsoft Entra ID 與 Active Directory 同盟服務 (AD FS) 之間成功同盟,AD FS 用來將安全性令牌簽署至 Microsoft Entra ID 的憑證應該符合 Microsoft Entra ID 中所設定的專案。 任何不相符都可能導致信任受損。 Microsoft Entra ID 會確保這項資訊在您部署 AD FS 和 Web 應用程式 Proxy (適用於外部網路存取) 時保持同步。

注意

本文提供管理同盟憑證的相關信息。 如需緊急輪替的資訊,請參閱 AD FS 憑證的緊急輪替

本文提供您管理令牌簽署憑證的其他資訊,並在下列情況下與 Microsoft Entra ID 保持同步:

  • 您未部署 Web 應用程式 Proxy,因此無法在外部網路中使用同盟元數據。
  • 您不會使用AD FS的預設組態來簽署令牌憑證。
  • 您使用的是第三方識別提供者。

重要

Microsoft 強烈建議使用硬體安全性模組 (HSM) 來保護及保護憑證。 如需詳細資訊,請參閱 保護AD FS的最佳作法下的硬體安全性模組

令牌簽署憑證的AD FS預設設定

令牌簽署和令牌解密憑證通常是自我簽署憑證,而且適用於一年。 根據預設,AD FS 包含稱為 AutoCertificateRollover 的自動續約程式。 如果您使用 AD FS 2.0 或更新版本,Microsoft 365 和 Microsoft Entra ID 會在憑證到期之前自動更新。

來自 Microsoft 365 管理中心或電子郵件的續約通知

注意

如果您收到電子郵件要求您更新 Office 憑證,請參閱 管理令牌簽署憑證 的變更,以檢查是否需要採取任何動作。 Microsoft 知道可能導致傳送憑證更新通知的可能問題,即使不需要採取任何動作也是如此。

Microsoft Entra ID 會嘗試監視同盟元數據,並更新此元數據所指示的令牌簽署憑證。 在令牌簽署憑證到期前 35 天,Microsoft Entra ID 會輪詢同盟元數據來檢查是否有新的憑證可用。

  • 如果它可以成功輪詢同盟元數據並擷取新的憑證,則不會對用戶發出任何電子郵件通知。
  • 如果無法擷取新的令牌簽署憑證,可能是因為無法連線同盟元數據或未啟用自動憑證變換,Microsoft Entra ID 會發出電子郵件。

重要

如果您使用AD FS,以確保商務持續性,請確認您的伺服器有下列更新,以免發生已知問題的驗證失敗。 這樣可減輕此更新和未來續約期間的已知AD FS Proxy 伺服器問題:

Server 2012 R2 - Windows Server 2014 年 5 月匯總

Server 2008 R2 和 2012 - 透過 Proxy 的驗證在 Windows Server 2012 或 Windows 2008 R2 SP1 中失敗

檢查憑證是否需要更新

步驟 1︰檢查 AutoCertificateRollover 狀態

在 AD FS 伺服器上開啟 Powershell。 檢查 AutoCertificateRollover 值是否設定為 True。

Get-Adfsproperties

AutoCertificateRollover

注意

如果您使用 AD FS 2.0,請先執行 Add-Pssnapin Microsoft.Adfs.Powershell。

步驟 2︰確認 AD FS 和 Microsoft Entra ID 已同步

在您的 AD FS 伺服器上,開啟 MSOnline PowerShell 提示字元,然後連線到 Microsoft Entra ID。

注意

MSOL-Cmdlet 是 MSOnline PowerShell 模組的一部分。 您可以直接從 PowerShell 資源庫 下載 MSOnline PowerShell 模組。

Install-Module MSOnline

注意

自 2024 年 3 月 30 日起,Azure AD 和 MSOnline PowerShell 模組已被淘汰。 若要深入了解,請閱讀淘汰更新。 在此日期之後,對這些模組的支援僅限於對 Microsoft Graph PowerShell SDK 的移轉協助和安全性修正。 淘汰的模組將繼續運作至 2025 年 3 月 30 日。

我們建議移轉至 Microsoft Graph PowerShell 以與 Microsoft Entra ID (以前稱為 Azure AD) 互動。 如需了解常見的移轉問題,請參閱移轉常見問題注意:MSOnline 1.0.x 版可能會在 2024 年 6 月 30 日之後發生中斷。

使用 MSOnline PowerShell 模組連線至 Microsoft Entra ID。

Import-Module MSOnline
Connect-MsolService

檢查 AD FS 和 Microsoft Entra ID 信任屬性中針對指定網域所設定的憑證。

Get-MsolFederationProperty -DomainName <domain.name> | FL Source, TokenSigningCertificate

Get-MsolFederationProperty

如果這兩個輸出中的指紋相符,您的憑證便已與 Microsoft Entra ID 同步。

步驟 3︰檢查憑證是否即將到期

在 Get-MsolFederationProperty 或 Get-AdfsCertificate 的輸出中,檢查 “Not After” 底下的日期。如果日期少於 35 天,您應該採取動作。

AutoCertificateRollover 憑證與 Microsoft Entra ID 同步 可公開取得同盟中繼資料 有效期 動作
Yes .是 - 不需採取動作。 請參閱 自動更新權杖簽署憑證
- 小於 15 天 立即更新。 請參閱 手動更新權杖簽署憑證
No - - 少於 35 天 立即更新。 請參閱 手動更新權杖簽署憑證

[-]無關緊要

如果下列兩項都成立,您就不需要執行任何手動步驟:

  • 您已部署 Web 應用程式 Proxy,這可讓您從外部網路存取同盟元數據。
  • 您使用的是 AD FS 預設設定(已啟用 AutoCertificateRollover)。

請檢查下列專案,以確認憑證可自動更新。

1.AD FS 屬性 AutoCertificateRollover 必須設定為 True。 這表示AD FS會在舊令牌到期之前自動產生新的令牌簽署和令牌解密憑證。

2.可公開存取 AD FS 同盟元數據。 從公用因特網上的計算機流覽至下列URL,檢查您的同盟元數據是否可供公開存取(從公司網路關閉):

https://(your_FS_name)/federationmetadata/2007-06/federationmetadata.xml

其中 (your_FS_name) 會取代為貴組織所使用的同盟服務主機名,例如 fs.contoso.com。 如果您能夠成功驗證這兩個設定,則不需要執行任何其他動作。

範例: https://fs.contoso.com/federationmetadata/2007-06/federationmetadata.xml

手動更新令牌簽署憑證

您可以選擇手動更新令牌簽署憑證。 例如,下列案例可能更適合手動更新:

  • 令牌簽署憑證不是自我簽署憑證。 最常見的原因是您的組織會管理從組織證書頒發機構單位註冊的 AD FS 憑證。
  • 網路安全性不允許公開提供同盟元數據。
  • 您要將同盟網域從現有的同盟服務移轉至新的同盟服務。

重要

如果您要將現有的同盟網域移轉至新的同盟服務,建議遵循 AD FS 憑證的緊急輪替

在這些案例中,每次更新令牌簽署憑證時,您也必須使用PowerShell命令 Update-MsolFederatedDomain 來更新您的 Microsoft 365 網域。

步驟 1︰確認 AD FS 具有新的權杖簽署憑證

非預設組態

如果您使用 AD FS 的非預設組態(其中 AutoCertificateRollover 設定為 False),則可能使用自定義憑證(而非自我簽署)。 如需如何更新 AD FS 令牌簽署憑證的詳細資訊,請參閱 同盟伺服器的憑證需求。

同盟元數據無法公開使用

另一方面,如果 AutoCertificateRollover 設定為 True,但您的同盟元數據無法公開存取,請先確定 AD FS 已產生新的令牌簽署憑證。 請採取下列步驟,確認您有新的令牌簽署憑證:

  1. 確認您已登入主要AD FS 伺服器。

  2. 開啟 PowerShell 命令視窗並執行下列命令,以檢查 AD FS 中的目前簽署憑證:

    Get-ADFSCertificate -CertificateType Token-Signing

    注意

    如果您使用 AD FS 2.0,您應該先執行 Add-Pssnapin Microsoft.Adfs.Powershell

  3. 查看任何列出的憑證的命令輸出。 如果 AD FS 產生新的憑證,您應該會在輸出中看到兩個憑證:其中一個是 IsPrimary 值為 True,NotAfter 日期在 5 天內,其中一個 IsPrimaryFalse而 NotAfter 未來大約是一年。

  4. 如果您只看到一個憑證,且 NotAfter 日期在 5 天內,您需要產生新的憑證。

  5. 若要產生新的憑證,請在PowerShell命令提示字元中執行下列命令: Update-ADFSCertificate -CertificateType Token-Signing

  6. 再次執行下列命令來確認更新: Get-ADFSCertificate -CertificateType Token-Signing

現在應該列出兩個憑證,其中一個憑證的 NotAfter 日期在未來大約為一年,而IsPrimary值為 False

步驟 2︰更新 Microsoft 365 信任的新權杖簽署憑證

使用要用於信任的新令牌簽署憑證更新 Microsoft 365,如下所示。

  1. 開啟 Azure AD PowerShell 模組。
  2. 執行 $cred=Get-Credential。 當此 Cmdlet 提示您輸入認證時,請輸入您的雲端服務系統管理員帳戶認證。
  3. 執行 Connect-MsolService -Credential $cred。 此 Cmdlet 會將您連線到雲端服務。 在執行工具所安裝的任何其他 Cmdlet 之前,必須先建立將您連線到雲端服務的內容。
  4. 如果您在不是 AD FS 主要同盟伺服器的電腦上執行這些命令,請執行 Set-MSOLAdfscontext -Computer <AD FS primary server>,其中 <AD FS 主伺服器是主要 AD FS 伺服器> 的內部 FQDN 名稱。 此 Cmdlet 會建立讓您連線到 AD FS 的環境。
  5. 執行 Update-MSOLFederatedDomain -DomainName <domain>。 此 Cmdlet 會將 AD FS 中的設定更新為雲端服務,並設定兩者之間的信任關係。

注意

如果您需要支援多個最上層網域,例如 contoso.com 和 fabrikam.com,您必須搭配任何 Cmdlet 使用 SupportMultipleDomain 參數。 如需詳細資訊,請參閱 多個最上層網域的支援。

如果您的租使用者與多個網域同盟, Update-MsolFederatedDomain 則必須針對輸出中 Get-MsolDomain -Authentication Federated所列的所有網域執行 。 這可確保所有同盟網域都會更新為令牌簽署憑證。 您可以執行下列命令來達成此目的: Get-MsolDomain -Authentication Federated | % { Update-MsolFederatedDomain -DomainName $_.Name -SupportMultipleDomain }

使用 Microsoft Entra 連線 修復 Microsoft Entra 識別碼信任

如果您使用 Microsoft Entra 連線 來設定 AD FS 伺服器陣列和 Microsoft Entra ID 信任,您可以使用 Microsoft Entra 連線 來偵測是否需要對令牌簽署憑證採取任何動作。 如果您需要更新憑證,您可以使用 Microsoft Entra 連線 來執行此動作。

如需詳細資訊,請參閱 修復信任

AD FS 和 Microsoft Entra 憑證更新步驟

令牌簽署憑證是標準 X509 憑證,用來安全地簽署同盟伺服器發出的所有令牌。 令牌解密憑證是用來解密任何傳入令牌的標準 X509 憑證。

根據預設,AD FS 會設定為在初始設定時間和憑證接近到期日時自動產生令牌簽署和令牌解密憑證。

在目前憑證到期前 35 天,Microsoft Entra ID 會嘗試從同盟服務元數據擷取新的憑證。 如果當時無法使用新的憑證,Microsoft Entra ID 會繼續定期監視元數據。 一旦元數據中提供新的憑證,網域的同盟設定就會更新為新的憑證資訊。 您可以使用 Get-MsolDomainFederationSettings 來確認您是否在 NextSigningCertificate / SigningCertificate 中看到新的憑證。

如需AD FS中令牌簽署憑證的詳細資訊,請參閱 取得和設定AD FS的令牌簽署和令牌解密憑證