有人可以请解释Windows服务原则名称(SPNs),而不是简单化吗?

我已经和服务原理名称摔了几次了, 微软的解释是不够的。 我正在configuration一个IIS应用程序来处理我们的域,看起来我的一些问题与我需要在运行托pipe我的站点的应用程序池的windows服务帐户上configurationhttp特定的SPN有关 。

所有这一切使我意识到我只是没有完全得到服务types(MSSQL,http,主机,termsrv,wsman等),Kerberos身份validation,活动目录计算机帐户(PCName $),Windows服务帐户,SPN之间的关系,以及我用来尝试访问服务的用户帐户。

有人可以请解释Windows服务原则名称(SPNs),而不是简单的解释?

奖励积分的创造性比喻,会引起中等经验的系统pipe理员/开发人员的共鸣。

    服务主体名称是来自Kerberos的概念。 它是身份validation域内特定主机提供的特定服务的标识符。 SPN的常见forms是service class / fqdn @ REALM (例如IMAP/[email protected] / IMAP/[email protected] )。 还有用户主体名称 ,以user @ REALM (或user1 / user2 @ REALMforms标识用户,标识说话关系。 service class可以松散地被认为是服务的协议。 Microsoft的本文中列出了内置于Windows的服务类的列表。

    每个SPN必须在REALM密钥分发中心 (KDC)注册,并发布一个服务密钥 。 Windows安装介质上的\Support\Tools文件夹中提供的setspn.exe实用程序或作为资源工具包下载,操作SPN的计算机或AD中的其他帐户的分配。

    当用户访问使用Kerberos进行身份validation的服务(“Kerberized”服务)时,它们会显示从KDC(在Windows环境中是Active Directory域控制器)获得的encryption票证。 票证是使用服务密钥encryption的。 通过解密票证服务certificate它拥有给定的SPN的关键。 在Windows主机上运行的服务使用与AD计算机帐户相关联的密钥,但要与Kerberos协议兼容,必须将SPN添加到主机上运行的每个Kerberized服务的Active Directory上 – 除了上面提到的内置SPN。 在Active Directory中,SPN存储在主机计算机对象的servicePrincipalName属性中。

    有关更多信息,请参阅: 关于SPN的Microsoft TechNet文章 , Ken Hornstein的Kerberos常见问题

    yarek的回答非常好,我赞成,但是我也想给你一些关于这个主题的更多的Windows特定信息,或者更确切地说,来自一个更熟悉AD的人,而不仅仅是Kerberos。因为这是一个令我感兴趣的话题。

    我觉得这个人做了很好的解释,而且我build议你阅读他的文章,但是这里有一个特别简短的段落,正对你的问题:

    “服务主体名称”定义在帐户安全上下文下运行的服务,例如计算机可能具有的某些服务是文件服务器/ CIFS(通用Internet文件系统),如果它是域控制器,则它将具有LDAP SPN和Active Directory复制SPN以及FRS SPN,服务或应用程序在该用户的安全上下文下运行时,可以在用户帐户上定义服务主体名称,通常这些types的用户帐户被称为“服务帐户”。非常重要,您明白在整个Active Directory林中服务主体名称必须是唯一的。“

    整篇文章在这里: http : //blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx