为 AD FS 获取并配置 TS 和 TD 证书
本文介绍可确保 AD FS 令牌签名证书和令牌解密证书保持最新状态的任务和过程。
令牌签名证书是标准 X509 证书,用于安全地对联合服务器颁发的所有令牌进行签名。 令牌解密证书是标准 X509 证书,用于对任何传入令牌进行解密。 这些证书也在联合元数据中发布。
有关详细信息,请参阅证书要求。
确定 AD FS 是否自动续订证书
默认情况下,AD FS 配置为自动生成令牌签名证书和令牌解密证书。 在初始配置期间和证书即将到期时都会生成证书。
你可以运行以下 Windows PowerShell 命令:Get-AdfsProperties
。
AutoCertificateRollover 属性描述 AD FS 是否配置为自动续订令牌签名证书和令牌解密证书。
如果 AutoCertificateRollover 设置为 True
,AD FS 证书将在 AD FS 中自动续订和配置。 配置新证书后,必须确保使用此新证书更新每个联合合作伙伴,以避免中断。 联合合作伙伴在 AD FS 场中由信赖方信任或声明提供方信任表示。
如果 AD FS 未配置为自动续订令牌签名证书和令牌解密证书(例如 AutoCertificateRollover 设置为 False
),AD FS 将不会自动生成或使用新的令牌签名证书或令牌解密证书。 必须手动执行这些任务。
如果 AD FS 配置为自动续订令牌签名证书和令牌解密证书(AutoCertificateRollover 设置为 True
),你可以确定何时续订这些证书:
CertificateGenerationThreshold 描述了将在证书的“Not After”(不晚于)日期之前的多少天生成新证书。
CertificatePromotionThreshold 确定了在生成新证书之后的多少天将该证书提升为主要证书。 AD FS 使用 CertificatePromotionThreshold 对其颁发的令牌进行签名,并解密来自标识提供者的令牌。
确定当前证书何时到期
可通过以下过程确定主要的令牌签名证书和令牌解密证书,并确定当前证书的到期时间。
可以运行以下 Windows PowerShell 命令:Get-AdfsCertificate –CertificateType token-signing
(或 Get-AdfsCertificate –CertificateType token-decrypting
)。 还可以在 MMC 中检查当前证书:“服务”->“证书”。
AD FS 使用 IsPrimary
值设置为的 True
证书。
“Not After”(不晚于)显示的日期是必须配置新的主要令牌签名证书或令牌解密证书的截至日期。
为了确保服务连续性,所有联合合作伙伴必须在此过期日期之前使用新的令牌签名证书和令牌解密证书。 联合合作伙伴在 AD FS 场中由信赖方信任或声明提供方信任表示。 应至少提前 60 天计划此过程。
在宽限期结束之前手动生成新的自签名证书
在宽限期结束之前,可以按照以下步骤手动生成新的自签名证书:
- 确保已登录到主 AD FS 服务器。
- 打开 Windows PowerShell,并运行如下命令:
Add-PSSnapin "microsoft.adfs.powershell"
。 - 可以检查 AD FS 中的当前签名证书。 为此,请运行以下命令:
Get-ADFSCertificate –CertificateType token-signing
。 浏览命令输出,查看列出的任何证书的“Not After”(不晚于)日期。 - 要生成新证书,请执行以下命令来续订并更新 AD FS 服务器上的证书:
Update-ADFSCertificate –CertificateType token-signing
。 - 再次运行以下命令来验证更新:
Get-ADFSCertificate –CertificateType token-signing
。 - 现在应列出两个证书。 一个证书的“Not After”(不晚于)日期大约是一年后。 另一个证书的 IsPrimary 值应为 False。
重要
为了避免服务中断,请使用有效的令牌签名证书更新 Microsoft Entra ID 中的证书信息。
如果不使用自签名证书
如果未使用默认自动生成的自签名令牌签名证书和令牌解密证书,则必须手动续订和配置这些证书。
首先,必须从证书颁发机构获取一个新证书,并将其导入到每个联合服务器上的本地计算机个人证书存储中。 有关说明,请参阅导入证书。
然后,必须将此证书配置为次要 AD FS 令牌签名证书或令牌解密证书。 将该证书配置为次要证书,以便联合合作伙伴有足够的时间使用这个新证书,然后将其提升为主要证书。
将新证书配置为辅助证书
- 打开 PowerShell 并运行
Set-ADFSProperties -AutoCertificateRollover $false
。 - 导入证书后, 打开“AD FS 管理”控制台。
- 展开“服务”,然后选择“证书”。
- 在“操作”窗格中,选择“添加令牌签名证书”。
- 从已显示证书的列表中选择新证书,然后选择“确定”。
- 打开 PowerShell 并运行
Set-ADFSProperties -AutoCertificateRollover $true
。
警告
确保新证书具有与之关联的私钥,并且 AD FS 服务帐户对该私钥具有“读取”权限。 请在每台联合服务器上验证是否满足这一要求。 为此,请在“证书”管理单元中右键单击新证书,选择“所有任务”,然后选择“管理私钥”。
联合合作伙伴通过拉取联合元数据或接收你发送的新证书的公钥来使用新证书。 在让联合合作伙伴有足够的时间使用你的新证书后,你必须将次要证书提升为主要证书。
将新证书从辅助证书升级为主证书
打开“AD FS 管理”控制台。
展开“服务”,然后选择“证书”。
选择辅助令牌签名证书。
在“操作”窗格中,选择“设置为主要证书”。 在出现确认提示时单击“是”。
更新联合合作伙伴
必须以不同的方式更新联合合作伙伴,具体取决于他们是否可以使用联合元数据。
可以使用联合元数据的合作伙伴
续订和配置新的令牌签名证书或令牌解密证书时,必须确保所有联合合作伙伴都已获得新证书。 联合合作伙伴包括资源组织或帐户组织合作伙伴,这些合作伙伴在 AD FS 中通过信赖方信任和声明提供方信任表示。
不可以使用联合元数据的合作伙伴
如果联合合作伙伴无法使用联合元数据,则必须手动向其发送新的令牌签名证书或令牌解密证书的公钥。 将新证书公钥(如果要包括整个链,则为 .cer 文件或 .p7b)发送给所有资源组织或帐户组织合作伙伴。 资源组织或帐户组织合作伙伴在 AD FS 中通过信赖方信任和声明提供方信任表示。 合作伙伴必须在其一端实施更改才能信任新证书。
提升为主要证书(如果 AutoCertificateRollover 为 False)
如果 AutoCertificateRollover 设置为 False
,AD FS 不会自动生成或使用新的令牌签名证书或令牌解密证书。 必须手动执行这些任务。 为所有联合合作伙伴提供足够的时间以使用新的次要证书后,请将此次要证书提升为主证书。 在 MMC 管理单元中,选择次要令牌签名证书,然后在“操作”窗格中,选择“设置为主要证书”。
更新 Microsoft Entra ID
AD FS 通过用户现有的 AD DS 凭据对用户进行身份验证,提供对 Office 365 等 Microsoft 云服务的单一登录访问。 有关详细信息,请参阅续订 Office 365 和 Microsoft Entra ID 的联合身份验证证书。