我正在设置Kerberos,我有一些奇怪的问题。 我正在testing两个用户谁拥有一个有效的SPN和信任委派(user1)和一个谁没有一个有效的SPN,不信任委派(user2)。 testing在服务器上和客户端上执行。 用户被设置在应用程序池级别。 这是目前的工作方式
From the server: Using IP to access Application running under user1: Negotiate and chooses NTLM Using domain name to access Application running under user1: Kerberos Using IP to access Application running under user2: Negotiate and chooses NTLM Using domain name to access Application running under user2: Negotiate and chooses NTLM From the client: Using IP to access Application running under user1: Kerberos Using domain name to access Application running under user1: Kerberos Using IP to access Application running under user2:Logon Process:Kerberos, Unknown user name or bad password Using domain name to access Application running under user2: Logon Process:Kerberos, Unknown user name or bad password
有没有可能解决这个问题,这样我只需要使用setspn来实际需要委派的用户,而让kerberos / NTLM和其他不需要委派的用户一起工作呢? 所以我可以使用setspn为需要委托的用户帐户,只需使用其他帐户,而不必configuration它们? 似乎Kerberos软件包没有find方法到服务器的用户,因为它正在使用NTLM,当我在服务器上testing,而不是当我从客户端testing时。
委派不适用于NTLM,并且要委派使用Kerberos,则需要为机器设置SPN(如果使用),则需要为用于托pipe应用程序池的服务帐户(如果使用的话)设置SPN。
通常,将SPN分配给托pipe应用程序的机器名称,以及用于与您的网站关联的IIS应用程序池的“标识”选项卡的用户帐户。 如果应用程序需要访问其他计算机上的资源时,通常需要在应用程序池的“标识”选项卡中使用非用户(服务)帐户,同时模拟login到IIS应用程序的用户。
只需简单地login和使用IIS应用程序的用户就不需要SPN和可信委派。
受信任委派的帐户可以模拟其他用户帐户,而无需其密码甚至安全令牌。 这是一个安全关键function,永远不应该为普通用户帐户完成。