如果使用Kerberos保护IIS托pipe的站点,Linux机器可以连接到它吗?

我遇到了在使用Kerberos的testing环境中configurationIIS 7.0网站的问题。 我有安装了AD DS,AD RMS,DHCP,DNS和IISangular色的Windows Server 2008 R2试用版。 我已进入该网站的IIS安全设置并设置Windows身份validation以允许Kerberoslogin。

我遇到的问题是,它不是经常使用Kerberos的安全协议。 当我将IIS中的提供程序设置为“协商”时,Fiddler2指示标题将在50%的时间内返回NTLM标头,另外50%的时间将返回Kerberos标头。 如果我在IIS中将提供程序设置为“Negotiate:Kerberos”,则无法访问该站点,因为它会立即报告401错误。 此外,任何尝试使用Linux机器在任一configuration中连接到站点都会立即导致401安全错误。

任何人都可以提供一些见解或指导如何configuration? 我特别需要阻止任何回退到NTLM,除了启用Kerberos,无论我连接的机器。 到目前为止,我还没有find完全解决这个问题的任何technet或serverfault文章。

在Firefox中,您需要将其设置为在about:config network.negotiate-auth.trusted-urisnetwork.negotiate-auth.delegation-uris下使用Kerberos。

对于Chrome /铬铬铬浏览器-auth-server-whitelist =“company.com”

如果您想要设置一个Linux服务/应用程序来向IIS服务端点进行身份validation,则可以通过Linux框来对IIS托pipe的Windows站点进行身份validation,如下所示:

  1. 确保您的IIS站点Windows身份validation提供程序按照Windows身份validation的顺序设置:
    • NTLM
    • 谈判
  2. 为要validation的帐户创build一个委托人:
    • 使用kerberos工具(通常是AD服务器)login到域中的Windows服务器
    • 根据要authentication的帐户注册服务主体名称(SPN) ,同时生成Kerberos密钥表文件:
      • 使用ktpass为Linux生成一个keytab
      • ktpass -princ HTTP/[email protected] -ptype KRB5_NT_PRINCIPAL -mapuser myuser -pass mypassword -out c:\user.keytab
      • 注意:重要的是myiis.site.comurl与您将要myiis.site.com的端点匹配; 并且SITE.COM与您的域名组件相匹配。
    • 你可以用setspn -L myuser来检查你的SPN
    • 现在你已经有了一个映射到AD用户的SPN。 和一个Kerberos密钥表文件,用于Linux获得由KDC(AD服务器)发出的kerberos票据以使用协商提供者进行authentication。
  3. 根据Kerberos的风格,将您的密钥表导入到Linux框/应用程序中。 要查看密钥表中的凭证:
    • MIT Kerberos
      • klist -c -k user.keytab
    • Heimdal Kerberos(假设您将密钥表复制到/etc/heimdal/krb5.keytab
      • ktutil list