如果需要立即轮换 Active Directory 联合身份验证服务(AD FS)证书,可以按照本文中的步骤进行作。
重要
在 AD FS 环境中轮换证书会立即撤销旧证书,并且通常情况下联合合作伙伴使用新证书所需的时间也被跳过。 当信任更新以使用新证书时,此操作也可能会导致服务中断。 所有联合合作伙伴都拥有新证书后,中断问题应该能够得到解决。
备注
强烈建议使用硬件安全模块(HSM)以保护证书。 有关详细信息,请参阅保护 AD FS 最佳做法中的 硬件安全模块 节。
要吊销 AD FS 当前正在使用的旧令牌签名证书,需要确定令牌签名证书的指纹。 请执行以下操作:
在 PowerShell
Connect-MsolService
中运行,连接到 Microsoft Online Service。运行
Get-MsolFederationProperty -DomainName <domain>
以记录本地和云令牌签名证书指纹以及到期日期。复制该指纹。 稍后将使用它来删除现有证书。
还可以使用 AD FS 管理以获取指纹。 转到 服务>证书,右键单击证书,选择“ 查看证书”,然后选择“ 详细信息”。
默认情况下,AD FS 配置为自动生成令牌签名证书和令牌解密证书。 它会在初始配置期间和证书即将到期时执行此操作。
可以运行以下 PowerShell 命令:Get-AdfsProperties | FL AutoCert*, Certificate*
。
AutoCertificateRollover
属性描述 AD FS 是否配置为自动续订令牌签名证书和令牌解密证书。 执行以下操作之一:
- 如果
AutoCertificateRollover
设置为TRUE
,请生成新的自签名证书。 - 如果
AutoCertificateRollover
设置为FALSE
,请手动生成新证书。
在本节中,你会创建 两个 令牌签名证书。 第一个证书使用 -urgent
标志,该证书会立即替换当前的主要证书。 第二个证书会用作辅助证书。
重要
要创建两个证书,因为Microsoft Entra ID 保留上一个证书的相关信息。 通过创建第二个证书,您使 Microsoft Entra ID 公布旧证书的信息,并用第二个证书的信息进行替换。
如果未创建第二个证书并更新其 Microsoft Entra ID,旧令牌签名证书可能会对用户进行身份验证。
要生成新的令牌签名证书,请执行以下操作:
确保已登录到主 AD FS 服务器。
以管理员身份打开 Windows PowerShell。
通过在 PowerShell 中运行,确保将
AutoCertificateRollover
设置为True
:Get-AdfsProperties | FL AutoCert*, Certificate*
要生成新的令牌签名证书,请运行:
Update-ADFSCertificate -CertificateType Token-Signing -Urgent
运行以下命令以验证更新:
Get-ADFSCertificate -CertificateType Token-Signing
现在,运行以下命令以生成第二个令牌签名证书:
Update-ADFSCertificate -CertificateType Token-Signing
你可以再次运行以下命令来验证更新:
Get-ADFSCertificate -CertificateType Token-Signing
如果未使用默认自动生成的自签名令牌签名证书和令牌解密证书,必须手动续订和配置这些证书。 执行此操作涉及创建并导入两个新的令牌签名证书。 然后,将一个证书提升为主要证书,吊销旧证书,并将第二个证书配置为辅助证书。
首先,必须从证书颁发机构获取两个新证书,并将其导入到每个联合服务器的本地计算机个人证书存储中。 有关说明,请参阅 导入证书。
重要
要创建两个证书,因为Microsoft Entra ID 保留上一个证书的相关信息。 通过创建第二个证书,您使 Microsoft Entra ID 公布旧证书的信息,并用第二个证书的信息进行替换。
如果未创建第二个证书并更新其 Microsoft Entra ID,旧令牌签名证书可能会对用户进行身份验证。
接下来,将一个证书配置为辅助 AD FS 令牌签名或解密证书,然后将其提升为主要证书。
导入证书后,打开 AD FS 管理控制台 。
展开“服务”,然后选择“证书”。
在“操作”窗格中,选择“添加令牌签名证书”。
从已显示证书的列表中选择新证书,然后选择“确定”。
现在,你已在 AD FS 中导入并配置新证书,需要将其设置为主要证书。
打开“AD FS 管理”控制台。
展开“服务”,然后选择“证书”。
选择辅助令牌签名证书。
在 “操作”窗格中,选择设为主要。 在提示符下,选择“确定”。
将新证书提升为主要证书后,由于旧证书仍可使用,因此应将其删除。 有关详细信息,请参阅 “删除旧证书 ”部分。
现在,你已添加第一个证书,将其设为主要证书并删除旧证书后,便可导入第二个证书。 执行以下操作,从而将证书配置为辅助 AD FS 令牌签名证书:
导入证书后,打开 AD FS 管理控制台 。
展开“服务”,然后选择“证书”。
在“操作”窗格中,选择“添加令牌签名证书”。
从已显示证书的列表中选择新证书,然后选择“确定”。
打开 Azure AD PowerShell 模块。 或者,打开 Windows PowerShell,然后运行
Import-Module msonline
命令。通过运行以下命令连接到 Microsoft Entra ID:
Connect-MsolService -AzureEnvironment AzureChinaCloud
输入混合标识管理员凭据。
备注
如果在非主要联合服务器的计算机上运行这些命令,请先输入以下命令:
Set-MsolADFSContext -Computer <servername>
将 <servername> 替换为 AD FS 服务器的名称,然后,在提示符下输入 AD FS 服务器的管理员凭据。
(可选)通过检查 Microsoft Entra ID 中的当前证书信息来验证是否需要更新。 为此,请运行以下命令:
Get-MsolFederationProperty
。 出现提示时,输入联合域的名称。若要更新 Microsoft Entra ID 中的证书信息,请运行命令
Update-MsolFederatedDomain
,然后在出现提示时输入域名。备注
如果在运行此命令时收到错误,请运行
Update-MsolFederatedDomain -SupportMultipleDomain
,然后在提示符下输入域名。
如果因泄漏需要替换令牌签名证书,还应吊销并替换 AD FS 和 Web 应用程序代理(WAP)服务器的安全套接字层(SSL)证书。
必须在颁发 SSL 证书的证书颁发机构 (CA) 吊销该证书。 这些证书通常由第三方提供商(例如 GoDaddy)颁发。 示例请参见 吊销证书 | SSL 证书 - GoDaddy 帮助 US。 有关详细信息,请参阅 证书吊销的工作原理。
吊销旧的 SSL 证书并颁发新证书后,可以替换 SSL 证书。 有关详细信息,请参阅 替换 AD FS 的 SSL 证书。
替换旧证书后,由于其仍可使用,因此应将其删除。 为此,做以下事情:
确保已登录到主 AD FS 服务器。
以管理员身份打开 Windows PowerShell。
要删除旧的令牌签名证书,请运行:
Remove-ADFSCertificate -CertificateType Token-Signing -thumbprint <thumbprint>
如果已更新并配置新的令牌签名或令牌解密证书,必须确保所有联合合作伙伴都已获得新证书。 此列表包括资源组织或帐户组织合作伙伴,它们在 AD FS 中由信赖方信任和声明提供程序信任表示。
如果联合合作伙伴无法使用联合元数据,必须手动向其发送新的令牌签名/令牌解密证书的公钥。 将新证书公钥(如果要包括整个链,则为 .cer 文件或 .p7b)发送给所有资源组织或帐户组织合作伙伴(在 AD FS 中通过信赖方信任和声明提供程序信任表示)。 让合作伙伴在他们那边实施更改以信任新证书。
现在,要为可能具有刷新令牌的用户吊销这些令牌,并强制用户重新登录并获取新令牌。 这将使用户退出其手机、当前的网络邮件会话以及使用令牌和刷新令牌的其他位置。 有关详细信息,请参阅 Revoke-EntraUserAllRefreshToken。 另请参阅在 Microsoft Entra ID 中撤销用户访问权限。