我已经和服务原理名称摔了几次了, 微软的解释是不够的。 我正在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
@ REALM
forms标识用户,标识说话关系。 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