共用方式為


更新 Microsoft 365 和 Microsoft Entra ID 的同盟憑證

概述

對於 Microsoft Entra ID 與 Active Directory 同盟服務 (AD FS) 之間的成功同盟,AD FS 用來簽署安全性權杖的憑證應該與在 Microsoft Entra ID 中設定的內容相符。 任何不相符都可能導致信任中斷。 Microsoft Entra 識別碼可確保當您部署 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 - 在 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 標識符同步

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

注意

MSOL-Cmdlets 是 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 的輸出中,檢查 "有效截止日" 底下的日期。如果日期在 35 天之內,您應該立即行動。

自動憑證更新 與 Microsoft Entra ID 同步的憑證 可公開存取同盟元數據 有效性 行動
是的 是的 是的 - 不需要採取任何動作。 請參閱 自動更新令牌簽署憑證。
是的 - 少於 15 天 立即更新。 請參閱 手動更新權杖簽署憑證
- - 少於35天 立即更新。 請參閱 手動更新權杖簽署憑證

[-]無所謂

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

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

請檢查下列項目,以確保憑證可自動更新。

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

2.可公開存取 AD FS 同盟元數據。 請從公用網路上的電腦瀏覽至以下網址,檢查您的聯盟元數據是否可供公開存取(請在離開公司網路後進行)。

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 天內;另一個是 IsPrimary,其值為 False,且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,您必須使用 SupportMultipleDomain 開關配合任何 cmdlet。 如需詳細資訊,請參閱 對多個頂級域名的支援

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

使用 Microsoft Entra Connect 修復Microsoft Entra ID 信任

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

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

AD FS 和 Microsoft Entra 憑證更新步驟

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

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

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

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