Microsoft Active Directory Kerberos 驗證顯示找不到 SPN,該如何排查?

Kelvin Chan 60 信譽點數
2026-11-05T01:13:55.2866667+00:00

使用者在存取 Microsoft Active Directory、IIS、SQL Server 或其他使用 Kerberos 驗證的服務時,收到「找不到 Service Principal Name (SPN)」相關錯誤。

我想確認 SPN 是否正確註冊到服務帳戶、服務帳戶設定是否正確、DNS Alias 是否造成驗證問題,以及 Active Directory 中是否存在重複的 SPN 或服務識別資訊。請問該如何進一步排查與解決此問題?

Windows for business | Windows 365 商務版
0 則留言 沒有留言

1 個回答

排序依據: 最實用
  1. HLBui 15,350 信譽點數 獨立顧問
    2026-11-05T02:09:05.0466667+00:00

    根据我的经验,当您在 Microsoft Active Directory、IIS、SQL Server 或其他使用 Kerberos 验证的服务中遇到 「找不到 Service Principal Name (SPN)」 或相关 Kerberos 验证错误时,我建议先确认 SPN 是否已正确注册到对应的服务账户。 您可以使用 setspn -L <ServiceAccount> 来检查目前已注册的 SPN,并确认其是否与实际存取的服务名称及主机名称相符。 同时,也建议执行 setspn -X 检查是否存在重复的 SPN,因为重复的 SPN 是导致 Kerberos 验证失败最常见的原因之一。

    另外,如果环境中使用了 DNS Alias(CNAME),也需要特别留意。 Kerberos 会根据客户端连线时所使用的名称来寻找对应的 SPN,因此如果使用者是透过 Alias 存取服务,通常需要另外为该 Alias 注册相应的 SPN。 对于 IIS 或 SQL Server 环境,也建议确认服务目前是以正确的网域服务帐户执行,并检查近期是否曾变更过帐户或密码,而相关设定尚未同步更新。

    如果上述设定都没有问题,可以使用 klist 工具检查 Kerberos Ticket,同时查看客户端与服务器上的 Security Event Log。 许多情况下,事件记录都能直接指出问题是来自缺少 SPN 对应、服务账户设置异常,还是存在重复的 SPN。 一般而言,只要移除重复的 SPN,并将正确的 SPN 注册到正确的服务帐户,Kerberos 验证通常便可恢复正常运作。

    希望以上资讯能够帮助您进一步缩小问题范围并解决问题。 如果这则回复对您有所帮助,还请协助点选 「Accept Answer」,让其他遇到相同问题的使用者也能更快速地找到有效的解决方案

    此回答有幫助嗎?

    0 則留言 沒有留言

您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。