Kerberos 身份验证问题:站点在一段时间后自动停止工作
Kerberos authentication issue : Site stops working automatically after some time
有一个网站在 windows 身份验证上设置为 运行。该站点下有 3 个 Web 应用程序,每个应用程序都在自己的应用程序池中,但具有相同的域帐户。 ASP.NET 模拟、使用应用程序池凭据、使用内核模式身份验证设置为 true。
- 网站 DNS url 的 SPN 已用于应用程序池帐户。
- SQL 服务的 SPN 已到位。
- 应用程序池帐户设置为委托给 SQL 服务帐户。
通过上述设置,这三个应用程序可以正常工作一段时间。然后他们会自动停止连接到数据库并出现错误 "Login failed for user NT Authority\Anonymous Logon".
重置IIS后,这3个应用程序保持了一段时间,然后又停止连接到数据库,一个接一个。奇怪?
可能是什么问题?有什么指点吗?
简答:
- 创建单独的网站和应用程序池。
- 为三个网站创建 3 个 SPN。
- 为三个数据库创建 3 个 SPN。
长答案:
- 所有 3 个 Web 应用程序在同一个数据库服务器中都有自己的数据库。
- 为 URL 发出单个 kerberos 票证,只要命中 1 个应用程序就可以正常工作。
但是网站下面有 3 个 Web 应用程序。因此必须创建 3 个具有不同 URLs 的单独网站,具有单独的应用程序池,但使用相同的应用程序池标识。
- 为 3 个 DNS 条目设置了 SPN。
- 并且还必须为 3 个数据库创建 3 个唯一的 SPN。
以上都搞定了,就没有问题了!欢呼!
有一个网站在 windows 身份验证上设置为 运行。该站点下有 3 个 Web 应用程序,每个应用程序都在自己的应用程序池中,但具有相同的域帐户。 ASP.NET 模拟、使用应用程序池凭据、使用内核模式身份验证设置为 true。
- 网站 DNS url 的 SPN 已用于应用程序池帐户。
- SQL 服务的 SPN 已到位。
- 应用程序池帐户设置为委托给 SQL 服务帐户。
通过上述设置,这三个应用程序可以正常工作一段时间。然后他们会自动停止连接到数据库并出现错误 "Login failed for user NT Authority\Anonymous Logon".
重置IIS后,这3个应用程序保持了一段时间,然后又停止连接到数据库,一个接一个。奇怪?
可能是什么问题?有什么指点吗?
简答:
- 创建单独的网站和应用程序池。
- 为三个网站创建 3 个 SPN。
- 为三个数据库创建 3 个 SPN。
长答案:
- 所有 3 个 Web 应用程序在同一个数据库服务器中都有自己的数据库。
- 为 URL 发出单个 kerberos 票证,只要命中 1 个应用程序就可以正常工作。
但是网站下面有 3 个 Web 应用程序。因此必须创建 3 个具有不同 URLs 的单独网站,具有单独的应用程序池,但使用相同的应用程序池标识。
- 为 3 个 DNS 条目设置了 SPN。
- 并且还必须为 3 个数据库创建 3 个唯一的 SPN。
以上都搞定了,就没有问题了!欢呼!